Está en la página 1de 4

ESTRUCTURA DE LOS SISTEMAS OPERATIVOS

Marvin Josue Aguilar Romero, UNAH


marvin.aguilar@unah.edu.hn

SISTEMAS OPERATIVOS MONOLÍTICOS, DE CAPAS, MÁQUINAS VIRTUALES Y


MODELO CLIENTE-SERVIDOR
Es preciso mantener presente a lo largo de estas unidades que el SO tiene dos funciones principales:
1. Proveer abstracciones a los programas de usuario.
2. Administrar los recursos de la computadora.
Y ya hemos ido viendo como se va logrando de manera funcional satisfacer estas dos funciones sin
embargo, así como existen diversos SO, existen diversos métodos para implementar estas
funciones, vamos a ver las principales de ellas.

SISTEMAS MONOLÍTICOS
Básicamente todo el SO se escribe como una colección de procedimientos enlazados entre sí en un
solo programa binario ejecutable extenso. Es el diseño más común de SO, todo el sistema se ejecuta
como un solo programa en modo kernel.
Para obtener el programa objeto se compilan todos los procedimientos y luego se vinculan
formando un solo ejecutable usando el enlazador del sistema. No hay ocultamiento de información
ya que todos los procedimientos son visibles para los demás procedimientos.
Éste modelo sugiere la siguiente estructura básica (figura 1):
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 unitarios que ayudan a los procedimientos de servicio.
Por cada llamada al sistema hay un procedimiento de servicio que se encarga de la llamada y lo
ejecuta, los procedimientos utilitarios hacen cosas que necesitan varios procedimientos de servicio.

Figura 1. Un modelo de estructuración simple para un sistema monolítico.


Además del núcleo del SO que se carga al arrancar la pc muchos SO soportan extensiones que se
pueden cargar como los drivers se los dispositivos de E/S y sistemas de archivos. Estos
componentes se cargan por demanda.

SISTEMAS DE CAPAS
Basado en el sistema monolítico éste diseño pretendía organizar los procedimientos utilitarios, de
servicio y principal en una jerarquía de capas donde cada capa se encargaba exclusivamente de una
función. El primer sistema construido de esta forma fue el THE (1968) por E. W. Dijkstra y sus
estudiantes el cual era un SO de procedimiento por lotes para una pc Holandesa la Electrogica X8
de 32K de palabras de 27 bits.
En la Tabla 1 se encuentran las capas propias del sistema THE con una breve descripción de cada
una.

Tabla 1. Estructura del SO THE


CAPA FUNCIÓN DESCRIPCIÓN
5 El operador Proceso operador del sistema.
4 Programas de usuario Las aplicaciones que usaban los operadores.
3 Administración de E/S Guardaba en búferes los flujos de información dirigidos
para y desde ellos. Permitía a las capas superiores abstraer
los dispositivos de E/S
2 Comunicación operador-proceso Permitía a cada proceso tener su propia consola de
operador.
1 Administración de memoria y tambor Aseguraba que las páginas se llevaran a memoria cuando
fuesen requeridas.
0 Asignación del procesador y multiprogramación Cambio de un proceso a otro, manejo de interrupciones

THE introdujo las primeras formas de segmentación de memoria por software, liberando a los
programadores de tener que direccionar sobre la memoria física,. THE sirvió como idea de diseño
MULTICS se basa en este principio solo que en lugar de capas presenta anillos con-céntricos donde
cuando un procedimiento de un anillo requería de la funcionalidad de otro hacía un trap y
completaba la llamada tras ser validado.
Microkernels
El diseño de capas permitió a los diseñadores poner un límite entre el kernel y el usuario, isn las
capas todo iba al kernel pero a partir de este diseño se coloca lo menos posible en el kernel y se
distribuyen las funcionalidades en las capas protegiendo al kernel que si llegase a fallar pararía todo
el sistema. De hecho se han hecho investigaciones y se estima que hay 10 errores por cada mil
líneas de código en un SO fácilmente puede encontrarse 50mil errores en el kernel por ello los
fabricantes incluyen un botón de reinicio cosa otros dispositivos como autos y televisores no
poseen.
Por ello el kernel se divide en módulos mas pequeños donde cada microkernel tiene una función
muy bien definida así en caso de fallar uno se interrumpe ese microkernel pero no todo el sistema,
solamente uno de ellos se ejecutará en modo kernel. En los sistemas monolíticos por ejemplo, todos
los drivers se cargaban en el kernel entonces si fallase un dispositivo de E/S se paraba todo el
sistema.
El microkernel MINIX solo tiene cerca de 3200 líneas de código en C y 800 en ensamblador para
las funciones muy a bajo nivel como atrapar interrupciones y conmutar procesos. En la figura 2
podemos la estructura de procesos de MINIX 3 SYS es el manejador de las llamdas al kernel y
CLOCK es el manejador del dispositivo del reloj y son los únicos en ejecutarse en modo kernel,
todo lo demás se ejecuta en modo usuario.

Figura 2. Estructura del sistema MINIX3


Un concepto importante relacionado al tener un kernel mínimo es colocar un mecanismo para hacer
algo en el kernel pero no la directiva, por ejemplo el kernel se programa para ejecutar las tareas en
orden de mayor a menor prioridad, ese es su mecanismo de funcionamiento pero, la directiva que
asigna las prioridades esta fuera del kernel, así el kernel solo recibe las tareas en orden y las ejecuta
pero no las gestiona.

MODELO CLIENTE-SERVIDOR
Tomando como base a los microkernels se hizo una pequeña distinción entre los procesos:
1. Aquellos que proporcionan ciertos servicios (Servidor).
2. Aquellos procesos que usan esos servicios (Cliente).
La comunicación entre el cliente y los servidores se lleva a cabo comúnmente mediante paso de
mensajes un cliente construye un mensaje indicando que es lo que desea, el servidor lo recibe y
envía el servicio apropiado que satisface al cliente.
Este modelo puede trabajar en un solo equipo o en diversos a través de una red (figura 3).

Figura 3. Modelo cliente-servidor en una red.

MÁQUINAS VIRTUALES
Éste diseñado permite explotar el mismo hardware por diversos sistemas operativos en la misma
computadora, nace a partir de la necesidad de desarrollar otras actividades con entornos mas
amigables sobre un mismo equipo, aunque no lo parezca esto supone muchísimas ventajas y es
popular en servidores ya que sobre un mismo hardware se puede montar diversos equipos que se
encargan del correcto funcionamiento de la red en lugar de tener equipos diferentes para cada tarea.
La virtualización también es popular en le hospedaje web ya que sin ella los clientes deben o
comprar un servidor propio o compartir uno con otros usuarios impidiendo el control sobre el
software del servidor.
Otro atractivo es poder dentro de un SO poder ejecutar aplicaciones de un SO diferente sin cerrar
sesión o necesitar de otro equipo.
El problema de las máquinas virtuales se encuentra en su implementación ya que cuando un SO
virtual requiere hacer trap el SO huésped puede ignorar o impedir la llamada.
Java extendió el uso de las máquinas virtuales con su JVM que le permíte ejecutar programas javas
sobre cualquier arquitectura liberando a los programadores de ésta preocupación haciendo
sumamente portable sus aplicaciones.

También podría gustarte