jueves, 10 de noviembre de 2011

Unidad VIII: Sistemas Operativos. (Parte 3)


Estructura de los Sistemas Operativos
Se considera la organización interna de los S. O. y conforme a ella se los clasifica de la siguiente manera, destacándose sus principales características:
Sistemas monolíticos:
  • Es muy común: no existe estructura propiamente dicha o es mínima.
  • El S. O. es una colección de procedimientos que se pueden llamar entre si.
  • Cada procedimiento tiene una interfaz bien definida en términos de parámetros y resultados.
  • Para ejecutar los servicios del S. O. (llamadas al sistema).
    • Se solicitan colocando los parámetros en lugares bien definidos (registros o pilas).
    • Se ejecuta una instrucción especial de trampa: llamada al núcleo o llamada al supervisor.
    • La instrucción cambia la máquina del modo usuario al modo núcleo (o modo supervisor).
    • Se transfiere el control al S. O.
    • El S. O. examina los parámetros de la llamada para determinar cuál de ellas se desea realizar.
    • El S. O. analiza una tabla que contiene en la entrada “k” un apuntador al procedimiento que realiza la “k-ésima” llamada al sistema:
      • Identifica al procedimiento de servicio llamado.
    • La llamada al sistema termina y el control regresa al programa del usuario.

Sistemas con capas:
  • Es una generalización del modelo de estructura simple para un sistema monolítico.
  • Consiste en organizar el s. o. como una jerarquía de capas, cada una construida sobre la inmediata inferior.


5 - Operador
4 - Programas del Usuario
3 - Control de Entrada - Salida
2 - Comunicaciones Operador - Proceso
1 - Administración de la Memoria y del Disco
0 - Asignación del Procesador y Multiprogramación
Tabla 1.1: Estructura del S.O. en capas "THE".


El primer sistema con este esquema fue el “THE” (Holanda - Dijkstra -1968).
“THE”: Technische Hogeschool Eindhoven.
  • Capa 0:
    • Trabaja con la asignación del procesador.
    • Alterna entre los procesos cuando ocurren las interrupciones o expiran los cronómetros.
    • Proporciona la multiprogramación básica.
  • Capa 1:
    • Administra la memoria.
    • Asegura que las páginas (porciones de memoria) requeridas de los procesos lleguen a memoria cuando fueran necesarias.
  • Capa 2:
    • Administra la comunicación entre cada proceso y la consola del operador.
    • Por sobre esta capa, cada proceso tiene su propia consola de operador.
  • Capa 3:
    • Controla los dispositivos de e / s y almacena en buffers los flujos de información entre ellos.
    • Por sobre la capa 3 cada proceso puede trabajar con dispositivos abstractos de e / s en vez de con dispositivos reales.
  • Capa 4:
    • Aloja los programas del usuario.
    • Los programas. del usuario no tienen que preocuparse por el proceso, memoria, consola o control de e / s.
  • Capa 5:
    • Localiza el proceso operador del sistema.

Una generalización mas avanzada del concepto de capas se presento con “Multics” (MIT, Bell Labs y General Electric):
  • “Multics”: multiplexed information and computing service.
  • Presenta una estructura en anillos concéntricos, siendo los interiores los privilegiados.
  • Un procedimiento de un anillo exterior, para llamar a un procedimiento de un anillo interior, debe hacer el equivalente a una llamada al sistema.

Máquinas virtuales:

Se separan totalmente las funciones de multiprogramación y de máquina extendida.
Existe un elemento central llamado monitor de la máquina virtual que:
  • Se ejecuta en el hardware.
  • Realiza la multiprogramación.
  • Proporciona varias máquinas virtuales a la capa superior.

Las máquinas virtuales instrumentan copias “exactas” del hardware simple, con su modo núcleo / usuario, e / s, interrupciones y todo lo demás que posee una máquina real.
Pueden ejecutar cualquier S. O. que se ejecute en forma directa sobre el hardware.
Las distintas máquinas virtuales pueden ejecutar distintos S. O. y en general así lo hacen.
Soportan periféricos virtuales.
Ejemplo de S. O. representativo de esta estructura: “VM/370” de IBM.


Las m. v. generalmente utilizaran, entre otros, el S. O. “CMS”: Conversational Monitor System. 
Cuando un programa “CMS” ejecuta una llamada al sistema:

  • La llamada es atrapada por el S. O. en su propia m. v.; no pasa directamente al “VM/370”.
  • “CMS” proporciona las instrucciones de e / s en hardware para la lectura del disco virtual o lo necesario para efectuar la llamada.
  • “VM/370” atrapa estas instrucciones de e / s y las ejecuta sobre el hardware verdadero.


Modelo cliente - servidor:

Una tendencia en los S. O. modernos es la de explotar la idea de mover el código a capas superiores y mantener un núcleo mínimo, de manera similar al “VM/370”.
Implantar la mayoría de las funciones del S. O. en los procesos del usuario.
Para solicitar un servicio (por ej.: lectura de un bloque de cierto archivo) según el modelo cliente - servidor.

El proceso del usuario (proceso cliente) envía la solicitud a un proceso servidor:
Realiza el trabajo y regresa la respuesta.
El núcleo controla la comunicación entre los clientes y los servidores.
Se fracciona el S. O. en partes, cada una controlando una faceta:
Servicio a archivos, a procesos, a terminales, a memoria, etc., cada parte pequeña y más fácilmente controlable.
Los servidores se ejecutan como procesos en modo usuario:
  • No tienen acceso directo al hardware.
  • Se aíslan y acotan más fácilmente los problemas.

Se adapta para su uso en los sistemas distribuidos.

Si un cliente se comunica con un servidor mediante mensajes:
  • No necesita saber si el mensaje se atiende localmente o mediante un servidor remoto, situado en otra máquina conectada.
  • Envía una solicitud y obtiene una respuesta.

Algunas funciones del S. O., por ej. el cargado de comandos en los registros físicos del dispositivo de e / s, presentan problemas especiales y distintas soluciones:
  • Ejecución en modo núcleo, con acceso total al hardware y comunicación con los demás procesos mediante el mecanismo normal de mensajes.
  • Construcción de un mínimo de mecanismos dentro del núcleo manteniendo las decisiones de política relativas a los usuarios dentro del espacio del usuario.




Exokernels:
En la capa mas baja, ejecutanse en modo de kernel, esta un programa llamado exokernel. Su labor consiste en asignar recursos a las maquinas virtuales y luego examinar cualquier intento de usarlos para garantizar que ninguna maquina utilice los recursos de otra. Cada maquina virtual en nivel virtual puede ejecutar su propio sistema operativo.La ventaja del modelo de exokernel es que ahorra una capa de mapeo o correpondencia.

Leonela Cena, Alejandro Leyba  ( 2 "B")

No hay comentarios:

Publicar un comentario