Вы находитесь на странице: 1из 10

SISTEMAS OPERATIVOS

ESTRUCTURA DE LOS SISTEMAS


OPERATIVOS

ESTRUCTURA DE UN SISTEMA OPERATIVO


Los seis diseos son: sistemas monolticos, sistemas de capas, microkernels,
sistemas cliente-servidor, mquinas virtuales y exokernels.
SISTEMAS MONOLTICOS
Los sistemas monolticos son aquellos en los que su centro es un grupo de
estructuras fijas, las cuales funcionan entre s.
En los Sistemas Operativos Monolticos, existen mdulos grandes en el ncleo,
los cuales interactan entre s, para poder tener esta estructura, las diferentes
partes del kernel son compiladas por capas.
Un ncleo monoltico es un tipo de ncleo o kernel de un sistema operativo.
Como ejemplo de sistema operativo de ncleo monoltico estn UNIX, Linux y
FreeBSD.
Estos sistemas tienen un ncleo grande y complejo, que engloba todos los
servicios del sistema. Est programado de forma no modular, y tiene un
rendimiento mayor que un microncleo (agregar referencia). Sin embargo,
cualquier cambio a realizar en cualquier servicio requiere la recompilacin del
ncleo y el reinicio del sistema para aplicar los nuevos cambios.
Un

sistema

funcionalidades

operativo
posibles

con

ncleo

(planificacin,

monoltico
sistema

concentra
de

todas

archivos,

las

redes,

controladores de dispositivos, gestin de memoria, etc) dentro de un gran


programa. El mismo puede tener un tamao considerable, y deber ser
recompilado por completo al aadir una nueva funcionalidad. Todos los
componentes funcionales del ncleo tienen acceso a todas sus estructuras de
datos internas y a sus rutinas. Un error en una rutina puede propagarse a todo
el ncleo.
Esta organizacin sugiere una estructura bsica para el sistema operativo:
1. Un programa principal que invoca el procedimiento de servicio solicitado.
2. Un conjunto de procedimientos de servicio que llevan a cabo las llamadas al
sistema.

3. Un conjunto de procedimientos utilitarios que ayudan a los procedimientos


de servicio.
En este modelo, para cada llamada al sistema hay un procedimiento de servicio
que se encarga de la llamada y la ejecuta. Los procedimientos utilitarios hacen
cosas que necesitan varios procedimientos de servicio, como obtener datos de
los programas de usuario. Esta divisin de los procedimientos en tres niveles:

El sistema de capas.
Consiste en organizar el sistema operativo como una jerarqua de capas, cada
una construida sobre la inmediata inferior. El primer sistema construido de esta
manera fue el sistema THE (Technische Hogeschool Eindhoven), desarrollado
en Holanda por E. W. Dijkstra (1968) y sus estudiantes.

Capa 0: Asignacin del procesador y multiprogramacin

En esta capa se proporciona la multiprogramacin bsica de la CPU, esto


quiere decir que trabaja en la asignacin del procesador y tambin se alteran
los procesos cuando se ocurren las interrupciones o expiran los cronmetros.
Dichos sistemas constan de procesos secunciales, estos se pueden
programar sin importar que varios procesos se estn ejecutando en el mismo
procesador.

Capa 1: administracin de la memoria y el disco

Aqu se administra la memoria, al mismo tiempo se asignaba el espacio de


memoria principal para los diversos procesos y un depsito de palabras de
512K en el cual se utilizaba para almacenar partes de los procesos, en este
caso las paginas, ya que no exista un lugar en la memoria principal. En esta
capa no se debe de preocupar que los procesos que estn en memoria o en el
depsito, esto se debe que el software de esta capa se encarga de garantizar
que las paginas lleguen a la memoria cuando fueran necesarias.

Capa 2: comunicacin operador - proceso

En esta capa se encarga de la comunicacin entre el proceso y la consola de


usuario. Arriba de esta capa, cada proceso tiene su propia consola.

Capa 3: control de entrada y salida

En la capa 3 se controlan los dispositivos de E/S y tambin guarda en buffers


los flujos de informacin entre los diferentes dispositivos. Por encima de esta
capa, los procesos pueden trabajar con dispositivos especficos de E/S
teniendo propiedades adecuadas.

Capa 4: programas de usuario

Aqu se localizan los programas de los usuarios, estos no se preocupan por el


proceso, memoria, consola o control de E/S, que se tuvieran que utilizar.

Capa 5: el operador

En esta capa se localiza el proceso operador del sistema.


Microkernels.

Con el diseo de capas, los diseadores podan elegir en dnde dibujar el


lmite entre kernel y usuario. Tradicionalmente todas las capas iban al kernel,
pero eso no es necesario. La idea bsica detrs del diseo de microkernel es
lograr una alta confiabilidad al dividir el sistema operativo en mdulos
pequeos y bien definidos, slo uno de los cuales (el microkernel) se ejecuta
en modo kernel y el resto se ejecuta como procesos de usuario ordinarios, sin
poder relativamente.
En especial, al ejecutar cada driver de dispositivo y sistema de archivos como
un proceso de usuario separado, un error en alguno de estos procesos puede
hacer que falle ese componente, pero no puede hacer que falle todo el sistema.
As, un error en el driver del dispositivo de audio har que el sonido sea
confuso o se detenga, pero la computadora no fallar. En contraste, en un
sistema monoltico con todos los drivers en el kernel, un driver de audio con
errores puede hacer fcilmente referencia a una direccin de memoria invlida
y llevar a todo el sistema a un alto rotundo en un instante.
Modelo cliente-servidor
Una ligera variacin de la idea del microkernel es diferenciar dos clases de
procesos: los servidores, cada uno de los cuales proporciona cierto servicio, y
los clientes, que utilizan estos servicios. Este modelo se conoce como clienteservidor. A menudo la capa inferior es un microkernel, pero eso no es
requerido. La esencia es la presencia de procesos cliente y procesos servidor.
La comunicacin entre clientes y servidores se lleva a cabo comnmente
mediante el paso de mensajes. Para obtener un servicio, un proceso cliente
construye un mensaje indicando lo que desea y lo enva al servicio apropiado.
Despus el servicio hace el trabajo y enva de vuelta la respuesta. Si el cliente
y el servidor se ejecutan en el mismo equipo se pueden hacer ciertas
optimizaciones, pero en concepto estamos hablando sobre el paso de
mensajes.
Una generalizacin obvia de esta idea es hacer que los clientes y los
servidores se ejecuten en distintas computadoras, conectadas mediante una
red de rea local o amplia, Como los clientes se comunican con los servidores
mediante el envo de mensajes, no necesitan saber si los mensajes se manejan

en forma local en sus propios equipos o si se envan a travs de una red a


servidores en un equipo remoto. En cuanto a lo que al cliente concierne, lo
mismo ocurre en ambos casos: se envan las peticiones y se regresan las
respuestas. Por ende, el modelo cliente-servidor es una abstraccin que se
puede utilizar para un solo equipo o para una red de equipos.

Mquina Virtual.
Se trata de un tipo de sistemas operativos que presentan una interface a cada
proceso, mostrando una mquina que parece idntica a la mquina real
subyacente. Estos sistemas operativos separan dos conceptos que suelen
estar unidos en el resto de sistemas: la multiprogramacin y la mquina
extendida. El objetivo de los sistemas operativos de mquina virtual es el de
integrar distintos sistemas operativos dando la sensacin de ser varias
mquinas diferentes. El ncleo de estos sistemas operativos se denomina
monitor virtual y tiene como misin llevar a cabo la multiprogramacin,
presentando a los niveles superiores tantas mquinas virtuales como se
soliciten. Estas mquinas virtuales no son mquinas extendidas, sino una
rplica de la mquina real, de manera que en cada una de ellas se pueda
ejecutar un sistema operativo diferente, que ser el que ofrezca la mquina
extendida al usuario.

Exokernels
En vez de clonar la mquina actual, como se hace con las mquinas virtuales,
otra estrategia es particionarla; en otras palabras, a cada usuario se le
proporciona un subconjunto de los recursos. As, una mquina virtual podra
obtener los bloques de disco del 0 al 1023, la siguiente podra obtener los
bloques de disco del 1024 al 2047 y as sucesivamente.
En la capa inferior, que se ejecuta en el modo kernel, hay un programa llamado
exokernel (Engler y colaboradores, 1995). Su trabajo es asignar recursos a las
mquinas virtuales y despus comprobar los intentos de utilizarlos, para
asegurar que ninguna mquina trate de usar los recursos de otra. Cada
mquina virtual de nivel de usuario puede ejecutar su propio sistema operativo,
al igual que en la VM/370 y las Pentium 8086 virtuales, con la excepcin de que
cada una est restringida a utilizar slo los recursos que ha pedido y que le han
sido asignados.
La ventaja del esquema del exokernel es que ahorra una capa de asignacin.
En los otros diseos, cada mquina virtual piensa que tiene su propio disco,
con bloques que van desde 0 hasta cirt to valor mximo, por lo que el monitor
de la mquina virtual debe mantener tablas para reasignar las direcciones del
disco (y todos los dems recursos). Con el exokernel, esta reasignacin no es
necesaria.
El exokernel slo necesita llevar el registro para saber a cul mquina virtual se
le ha asignado cierto recurso. Este mtodo sigue teniendo la ventaja de separar
la multiprogramacin (en el exokernel) del cdigo del sistema operativo del

usuario (en espacio de usuario), pero con menos sobrecarga, ya que todo lo
que tiene que hacer el exokernel es mantener las mquinas virtuales
separadas unas de las otras.

CLASIFICACION DE LOS SISTEMAS OPERATIVOS.

Monousuarios
Los sistemas operativos monousuarios son aqullos que soportan a un usuario
a la vez, sin importar el nmero de procesadores que tenga la computadora o
el nmero de procesos o tareas que el usuario pueda ejecutar en un mismo
instante de tiempo. Las computadoras personales tpicamente se han
clasificado en este rengln.
Multiusuarios
Los sistemas operativos multiusuarios son capaces de dar servicio a ms de un
usuario a la vez, ya sea por medio de varias terminales conectadas a la
computadora o por medio de sesiones remotas en una red de comunicaciones.
No importa el nmero de procesadores en la mquina ni el nmero de procesos
que cada usuario puede ejecutar simultneamente.
Monotareas
Los sistemas monotarea son aquellos que slo permiten una tarea a la vez por
usuario.
Puede darse el caso de un sistema multiusuario y monotarea, en el cual se
admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar
haciendo solo una tarea a la vez.
Multitareas
Un sistema operativo multitarea es aqul que le permite al usuario estar
realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando
el cdigo fuente de un programa durante su depuracin mientras compila otro
programa, a la vez que est recibiendo correo electrnico en un proceso en
background. Es comn encontrar en ellos interfaces grficas orientadas al uso
de mens y el ratn, lo cual permite un rpido intercambio entre las tareas para
el usuario, mejorando su productividad.
Uniproceso
Un sistema operativo uniproceso es aqul que es capaz de manejar solamente
un procesador de la computadora, de manera que si la computadora tuviese
ms de uno le sera intil. El ejemplo ms tpico de este tipo de sistemas es el
DOS y MacOS.
Multiproceso

Un sistema operativo multiproceso se refiere al nmero de procesadores del


sistema, que es ms de uno y ste es capaz de usarlos todos para distribuir su
carga de trabajo.
Generalmente

estos

sistemas

trabajan

de

dos

formas:

simtrica

asimtricamente.
Cuando se trabaja de manera asimtrica, el sistema operativo selecciona a uno
de los procesadores el cual jugar el papel de procesador maestro y servir
como pivote para distribuir la carga a los dems procesadores, que reciben el
nombre de esclavos. Cuando se trabaja de manera simtrica, los procesos o
partes de ellos (threads) son enviados indistintamente a cualesquiera de los
procesadores disponibles, teniendo, tericamente, una mejor distribucin y
equilibrio en la carga de trabajo bajo este esquema.
Se dice que un thread es la parte activa en memoria y corriendo de un proceso,
lo cual puede consistir de un rea de memoria, un conjunto de registros con
valores especficos, la pila y otros valores de contexto. Us aspecto importante a
considerar en estos sistemas es la forma de crear aplicaciones para
aprovechar los varios procesadores. Existen aplicaciones que fueron hechas
para correr en sistemas monoproceso que no toman ninguna ventaja a menos
que el sistema operativo o el compilador detecte secciones de cdigo
paralelizable, los cuales son ejecutados al mismo tiempo en procesadores
diferentes. Por otro lado, el programador puede modificar sus algoritmos y
aprovechar por s mismo esta facilidad, pero esta ltima opcin las ms de las
veces es costosa en horas hombre y muy tediosa, obligando al programador a
ocupar tanto o ms tiempo a la paralelizacin que a elaborar el algoritmo inicial.

Bibliografa.
Sistemas Operativos - 3 edicin-Andrew S. Tanenbaum
Sistemas Operativos - 2 D.M Dhamdhere