Vous êtes sur la page 1sur 8

Estructuras niveles o estratos de diseo

El nucleo o kernel se divide en 5 capas o niveles:


Nivel 1. Gestion de Memoria:Proporciona las facilidades de bajo nivel para la gestion de
memoria secundaria necesaria para la ejecucion de procesos.
Nivel 2. Procesador: Se encarga de activar los cuantums de tiempo para cada uno de los
procesos, creando interrupciones de hardware cuando no son respetadas.
Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los dispositivos de E/S
requeridos por los procesos.
Nivel 4. Informacion o Aplicacion o Interprete de Lenguajes: Facilita la comunicacion con los
lenguajes y el sistema operativo para aceptar las ordenes en cada una de las aplicaciones.
Ejecutando un programa el software de este nivel crea el ambiente de trabajo e invoca a los
procesos correspondientes.
Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a largo plazo y
manipulacion de archivos con nombre, va asignando espacio y acceso de datos en memoria.
El nucleo o kernel realiza diferentes funciones tales como:
Manejo de interrupciones.
Creacion y destruccion de procesos.
Cambio de estado de los procesos.
Despacho
Suspension y reanudacion de procesos.
Sincronizacion de procesos.
Comunicacion entre procesos.
Manipulacion de los bloques de control de procesos.
Apoyo para las actividades de entrada/salida.
Apoyo para asignacion y liberacion de memoria.
Apoyo para el sistema de archivos.
Apoyo para el mecanismo de llamada y retorno de un procedimiento.
Apoyo para ciertas funciones de contabilidad del sistema.
El nucleo y los procesos
Una definicion mas especifica de lo que es el nucleo ( Kernel ) de un sistema operativo es: un
conjunto de rutinas cuya mision es la de gestionar el procesador, la memoria, la entrada/salida y el
resto de procesos disponibles en la instalacion. Toda esta gestion la realiza para atender al
funcionamiento y peticiones de los trabajos que se ejecutan en el sistema.
El esquema general de la gestion del procesador, es el siguiente:
Definicion y concepto de proceso.
El Bloque de Control de Proceso (PCB) como imagen donde el sistema operativo ve el
estado del proceso.
Estados por los que pasa un proceso a lo largo de su existencia en la computadora.
Operaciones que se pueden realizar sobre un proceso.
Clasificacion de los procesos segun su forma de ejecucion, de carga, etc.
Por proceso debe entenderse: un programa en ejecucion junto con el entorno asociado
(registros, variables ,etc.).

1.5 Estructura (niveles o estratos de diseo).
Internamente los sistemas operativos estructuralmente de se clasifican segn como se hayan
organizado intrnamente en su diseo, por esto la clasificacin ms comn de los S.O. son:
Sistemas monolticos:
En estos sistemas operativos se escriben como un conjunto de procedimientos, cada uno de los
cuales puede llamar a cualquiera de los otros siempre que lo necesite. Cuando se emplea esta
tcnica, cada procedimiento del sistema tiene una interfaz bien definida en trminos de
parmetros y resultados, y cada una tiene la libertad de llamar a cualquiera otra, si la ltima ofrece
algn clculo til que la primera necesite.
Para construir el programa objeto real del sistema operativo cuando se usa este mtodo, se
compilan todos los procedimientos individuales a archivos que contienen los procedimientos y
despus se combinan todos en un solo archivo objeto con el enlazador.
En trminos de ocultamiento de informacin, esencialmente no existe ninguno; todo
procedimiento es visible para todos (al contrario de una estructura que contiene mdulos o
paquetes, en los cuales mucha informacin es local a un mdulo y slo pueden llamar puntos de
registro designados oficialmente del exterior del mdulo)
Esta organizacin sugiere una estructura bsica del sistema operativo:
1.- Un programa central que invoque el procedimiento de servicio solicitado (Shell o Kernel)
2.- Un conjunto de procedimientos de servicios que realice las llamadas al sistema.
3.- Un conjunto de procedimientos de uso general que ayude a los procedimientos de servicio
Sistemas en estratos:
Estos sistemas operativos se organizan como una jerarqua de estratos, cada uno construido arriba
del que est debajo de l. El primer sistema construido en esta forma fuel el sistema THE que se
fabric en Technische Hogeschool Eindhoven de Holanda por E. W Dijkstra (1968) y sus alumnos.
El sistema THE era un sistema de lote para una computadora alemana, la Electrolgica X8, que
tena 32K de palabras de 27 bits ( los bits eran costosos en aquellos das)
El sistema tena 6 estratos, estos se muestran en la siguiente tabla:
5
Operador de THE
4
Programas del usuario
3
Administracin de Entrada/Salida
2
Comunicacin entre el operador y el proceso
1
Administracin de la memoria y el tambor magntico
0
Distribucin del procesador y multiprogramacin

- El estrato 0 trabajaba con la distribucin del procesador, cambiando entre procesos cuando
ocurran interrupciones o los relojes expiraban. Sobre el estrato 0, el sistema constaba de procesos
secuenciales, cada uno de los cuales poda programarse sin tener que preocuparse por el hecho de
que mltiples procesos estuvieran corriendo en un solo procesador. En otras palabras, el estarto 0
ofreca la multiprogramacin bsica de la CPU.
El estrato 1 realizaba el manejo de memoria. Este distribua espacio para procesos contenidos en
la memoria central y en un tambor de 512K palabras que se usaba para contener partes de
procesos (pginas) para las cuales no haba espacio en la memoria central. Sobre el estrato 1, los
procesos no tena que preocuparse de si estaban en la memoria o en el tambor; el software del
estrato 1 se haca cargo de asegurar que las pginas se trajeran a la memoria siempre que se
necesitaran.
El estrato 2 manejaba la comunicacin entre cada proceso y la consola de operador.
El estrato 3 se haca cargo de manejar los dispositivos de E/S y de separar la informacin en flujo
que entraba y sal de ellos. Sobre el estrato 3 cada proceso poda trabajar con dispositivos de E/S
abstractos con propiedades agradables, en vez de dispositivos reales con muchas peculiaridades
El estrato 4 era donde se encontraban los programas de los usuarios. No tenan que preocuparse
por el manejo de los procesos, memoria, consola o E/S. El proceso operador del sistema se
localizaba en el estrato 5.
En esta unidad examinaremos cuatro estructuras distintas que ya han sido probadas, con el fin de
tener una idea ms extensa de cmo esta estructurado el sistema operativo. Veremos brevemente
algunas estructuras de diseos de sistemas operativos.
Estructura modular.Tambin llamados sistemas monolticos. Este tipo de organizacin es con
mucho la mas comn; bien podra recibir el subtitulo de "el gran embrollo". La estructura consiste
en que no existe estructura alguna. El sistema operativo se escribe como una coleccin de
procedimientos, cada uno de los cuales puede llamar a los dems cada vez que as lo requiera.
Cuando se usa esta tcnica, cada procedimiento del sistema tiene una interfaz bien definida en
trminos de parmetros y resultados y cada uno de ellos es libre de llamar a cualquier otro, si este
ultimo proporciona cierto clculo til para el primero. Sin embargo incluso en este tipo de
sistemas es posible tener al menos algo de estructura. Los servicios (llamadas al sistema) que
proporciona el sistema operativo se solicitan colocando los parmetros en lugares bien definidos,
como en los registros o en la pila, para despus ejecutar una instruccin especial de trampa de
nombre "llamada al ncleo" o "llamada al supervisor".
Esta instruccin cambia la mquina del modo usuario al modo ncleo y transfiere el control al
sistema operativo, lo que se muestra en el evento (1) de la figura 1. El sistema operativo examina
entonces los parmetros de la llamada, para determinar cual de ellas se desea realizar, como se
muestra en el evento (2) de la figura 1. A continuacin, el sistema operativo analiza una tabla que
contiene en la entrada k un apuntador al procedimiento que realiza la k-esima llamada al sistema.
Esta operacin que se muestra en (3) de la figura 1, identifica el procedimiento de servicio, al cual
se llama. Por ultimo, la llamada al sistema termina y el control regresa al programa del usuario.
Figura 1. La forma en que debe hacerse una llamada al sistema: (1) el programa del usuario es
atrado hacia el ncleo. (2) el sistema operativo determina el nmero del servicio solicitado. (3) el
sistema operativo localiza y llama al procedimiento correspondiente al servicio. (4) el control
regresa al programa del usuario.
Esta organizacin sugiere una organizacin bsica del sistema operativo:
1.- un programa principal que llama al procedimiento del 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 al procedimiento de servicio.
En este modelo, para cada llamada al sistema existe un procedimiento de servicio que se encarga
de l. Los procedimientos utilitarios hacen cosas necesarias para varios procedimientos de
servicio, por ejemplo buscar los datos de los programas del usuario.

Estructura por microkernel.Las funciones centrales de un SO son controladas por el ncleo (kernel)
mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte ms
importante del DOS es un programa con el nombre "COMMAND.COM" Este programa tiene dos
partes. El kernel, que se mantiene en memoria en todo momento, contiene el cdigo mquina de
bajo nivel para manejar la administracin de hardware para otros programas que necesitan estos
servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el interprete de
comandos
Las funciones de bajo nivel del SO y las funciones de interpretacin de comandos estn separadas,
de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario
diferente. Esto es exactamente lo que sucede cuando cargas Microsoft Windows, el cual toma el
lugar del shell, reemplazando la interfaz de lnea de comandos con una interfaz grfica del usuario.
Existen muchos "shells" diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o
inclusive el mismo SO MS-DOS a partir de la versin 5.0 incluy un Shell llamado DOS SHELL.
Estructura por anillos concntricos (capas).
El sistema por "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.
El sistema tenia 6 capas, como se muestra en la figura 3. La capa 0 trabaja con la asignacin del
procesador y alterna entre los procesos cuando ocurren las interrupciones o expiran los
cronmetros. Sobre la capa 0, el sistema consta de procesos secunciales, cada uno de los cuales
se podra programar sin importar que varios procesos estuvieran ejecutndose en el mismo
procesador, la capa 0 proporcionaba la multiprogramacin bsica de la CPU.
La capa 1 realizaba la administracin de la memoria. Asignaba el espacio de memoria principal
para los procesos y un recipiente de palabras de 512K se utilizaba para almacenar partes de los
procesos (pginas) para las que no exista lugar en la memoria principal. Por encima de la capa 1,
los procesos no deban preocuparse si estaban en la memoria o en el recipiente; el software de la
capa 1 se encargaba de garantizar que las pginas llegaran a la memoria cuando fueran necesarias.
La capa 2 se encargaba de la comunicacin entre cada proceso y la consola del operador. Por
encima de esta capa, cada proceso tiene su propia consola de operador.
La capa 3 controla los dispositivos de E/S y guarda en almacenes (buffers) los flujos de informacin
entre ellos. Por encima de la capa 3, cada proceso puede trabajar con dispositivos exactos de E/S
con propiedades adecuadas, en vez de dispositivos reales con muchas peculiaridades. La capa 4 es
donde estaban los programas del usuario, estos no tenan que preocuparse por el proceso,
memoria, consola o control de E/S. el proceso operador del sistema se localizaba en la capa 5
Una generalizacin mas avanzada del concepto de capas se presento en el sistema MULTICS. En
lugar de capas, MULTICS estaba organizado como una serie de anillos concntricos, siendo los
anillos interiores los privilegiados. Cuando un procedimiento de un anillo exterior deseaba llamar a
un procedimiento de un anillo interior, debi hacer el equivalente a una llamada al sistema
Mientras que el esquema de capas de THE era en realidad un apoyo al diseo, debido a que todas
las partes del sistema estaban ligadas entre si en un solo programa objeto, en MULTICS, el
mecanismo de anillos estaba mas presente durante el tiempo de ejecucin y era reforzado por el
hardware. La ventaja del mecanismo de anillos es su facilidad de extensin para estructurar
subsistemas del usuario.
5
El operador
4 Programas del usuario
3 Control de entrada/salida
2 Comunicacin operador-proceso
1 Administracin de la memoria y del disco
0 Asignacin del procesador y multiprogramacin

Figura 3. Estructura del sistema operativo THE.
Estructura cliente servidor
Una tendencia de los sistemas operativos modernos es la de explotar la idea de mover el cdigo a
capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un ncleo
mnimo. El punto de vista usual es el de implantar la mayora de las funciones del sistema
operativo en los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de
cierto archivo, un proceso del usuario (denominado proceso cliente) enva la solicitud a un proceso
servidor, que realiza entonces el trabajo y regresa la respuesta. En este modelo, que se muestra en
la figura 4, lo nico que hace el ncleo es controlar la comunicacin entre los clientes y los
servidores. Al separar el sistema operativo en partes, cada una de ellas controla una faceta del
sistema, como el servicio a archivos, servicios a procesos, servicio a terminales o servicio a la
memoria, cada parte es pequea y controlable. Adems como todos los servidores se ejecutan
como procesos en modo usuario y no en modo ncleo, no tienen acceso directo al hardware. En
consecuencia si hay un error en el servidor de archivos, ste puede fallar, pero esto no afectar en
general a toda la mquina.


Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptacin para su uso en los
sistemas distribuidos
Si un cliente se comunica con un servidor mediante mensajes, el cliente no necesita saber si el
mensaje se maneja en forma local, en su mquina, o si se enva por medio de una red a un
servidor en una mquina remota. En lo que respecta al cliente, lo mismo ocurre en ambos casos:
se envi una solicitud y se recibi una respuesta.

Sistemas Operativos por su Estructura (Visin Interna).
Segn, se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los
cuales son:
Requisitos de usuario: Sistema fcil de usar y de aprender, seguro, rpido y adecuado al uso al que
se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de
operacin, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.
A continuacin se describen las distintas estructuras que presentan los actuales sistemas
operativos para satisfacer las necesidades que de ellos se quieren obtener.
Estructura Monoltica.
Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo
programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede
llamar a cualquier otra. Las caractersticas fundamentales de este tipo de estructura son:
Construccin del programa final a base de mdulos compilados separadamente que se unen a
travs del ligador.
Buena definicin de parmetros de enlace entre las distintas rutinas existentes, que puede
provocar mucho acoplamiento.
Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los
recursos de la computadora, como memoria, disco, etc.

Generalmente estn hechos a medida, por lo que son eficientes y rpidos en su ejecucin y
gestin, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o
tipos de aplicaciones.
Estructura Jerrquica.A medida que fueron creciendo las necesidades de los usuarios y se
perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del software, del sistema
operativo, donde una parte del sistema contena subpartes y esto organizado en forma de niveles.
Se dividi el sistema operativo en pequeas partes, de tal forma que cada una de ellas estuviera
perfectamente definida y con un claro interface con el resto de elementos.
Se constituy una estructura jerrquica o de niveles en los sistemas operativos, el primero de los
cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra, que se utiliz con
fines didcticos. Se puede pensar tambin en estos sistemas como si fueran `multicapa'. Multics y
Unix caen en esa categora.

En la estructura anterior se basan prcticamente la mayora de los sistemas operativos actuales.
Otra forma de ver este tipo de sistema es la denominada de anillos concntricos o "rings".

En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por
donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas ms internas
del sistema operativo o ncleo del sistema estarn ms protegidas de accesos indeseados desde
las capas ms externas. Las capas ms internas sern, por tanto, ms privilegiadas que las
externas.
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

Cliente-Servidor(Microkernel).El tipo ms reciente de sistemas operativos es el denominado
Cliente-servidor, que puede ser ejecutado en la mayora de las computadoras, ya sean grandes o
pequeas.
Este sistema sirve para toda clase de aplicaciones por tanto, es de propsito general y cumple con
las mismas actividades que los sistemas operativos convencionales.
El ncleo tiene como misin establecer la comunicacin entre los clientes y los servidores. Los
procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicacin
normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar
una operacin de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede
actuar como servidor para otro." [Alcal92]. Este paradigma ofrece gran flexibilidad en cuanto a los
servicios posibles en el sistema final, ya que el ncleo provee solamente funciones muy bsicas de
memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayora que el
usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y
proteccin que, a su vez, sern filtrados por el ncleo que controla el hardware. Actualmente se
est trabajando en una versin de UNIX que contempla en su diseo este paradigma.