Estructura de Un SO
Estructura de Un SO
Estructura de Un SO
Sistemas monolíticos
En este diseño, que hasta ahora se considera como la organización más común, todo
el sistema operativo se ejecuta como un solo programa en modo kernel. El sistema
operativo se escribe como una colección de procedimientos, enlazados entre sí en un
solo programa binario ejecutable extenso.
Sistemas de capas
Organizar el sistema operativo como una jerarquía de capas, cada una construida
encima de la que tiene abajo. El primer sistema construido de esta forma fue el sistema
THE, construido en Technische Hogeschool Eindhoven en Holanda por E. W. Dijkstra
(1968) y sus estudiantes. El sistema THE era un sistema simple de procesamiento por
lotes para una computadora holandesa, la Electrologica X8, que tenía 32K de palabras
de 27 bits (los bits eran costosos en aquel entonces).
Microkernels
La idea básica detrás del diseño de microkernel es lograr una alta confiabilidad al dividir
el sistema operativo en módulos pequeños y bien definidos, sólo uno de los cuales (el
microkernel) se ejecuta en modo kernel y el resto se ejecuta como procesos de usuario
ordinarios, sin poder relativamente.
Modelo cliente-servidor
Una ligera variación 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 cliente-servidor.
Una generalización 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 envío de
mensajes, no necesitan saber si los mensajes se manejan en forma local en sus
propios equipos o si se envían a través de una red a servidores en un equipo remoto.
En cuanto a lo que al cliente concierne, lo mismo ocurre en ambos casos: se envían las
peticiones y se regresan las respuestas. Por ende, el modelo cliente-servidor es una
abstracción que se puede utilizar para un solo equipo o para una red de equipos.
Cada vez hay más sistemas que involucran a los usuarios en sus PCs domésticas
como clientes y equipos más grandes que operan en algún otro lado como servidores.
De hecho, la mayor parte de la Web opera de esta forma. Una PC envía una petición
de una página Web al servidor y la página Web se envía de vuelta. Éste es un uso
común del modelo cliente-servidor en una red.
Máquinas virtuales
Este sistema, que en un principio se llamó CP/CMS y posteriormente cambió su
nombre a VM/370, estaba basado en una astuta observación: un sistema de tiempo
compartido proporciona (1) multiprogramación y (2) una máquina extendida con una
interfaz más conveniente que el hardware por sí solo. La esencia de VM/370 es separar
por completo estas dos funciones.
El corazón del sistema, que se conoce como monitor de máquina virtual, se ejecuta
en el hardware solamente y realiza la multiprogramación, proporcionando no una, sino
varias máquinas virtuales a la siguiente capa hacia arriba. Sin embargo, a diferencia de
otros sistemas operativos, estas máquinas virtuales no son máquinas extendidas, con
archivos y otras características adecuadas. En vez de ello, son copias exactas del
hardware, incluyendo el modo kernel/ usuario, la E/S, las interrupciones y todo lo
demás que tiene la máquina real.
Como cada máquina virtual es idéntica al verdadero hardware, cada una puede
ejecutar cualquier sistema operativo que se ejecute directamente sólo en el hardware.
Distintas máquinas virtuales pueden (y con frecuencia lo hacen) ejecutar distintos
sistemas operativos.
En el sistema VM/370 original, algunas ejecutaban OS/360 o uno de los otros sistemas
operativos extensos de procesamiento por lotes o de procesamiento de transacciones,
mientras que otros ejecutaban un sistema interactivo de un solo usuario llamado CMS
(Conversational Monitor System; Sistema monitor conversacional) para los usuarios
interactivos de tiempo compartido.
En los últimos años, se han combinado nuevas necesidades, nuevo software y nuevas
tecnologías para convertirla en un tema de moda.
La virtualización también es popular en el mundo del hospedaje Web. Sin ella, los
clientes de hospedaje Web se ven obligados a elegir entre el hospedaje compartido
(que les ofrece sólo una cuenta de inicio de sesión en un servidor Web, pero ningún
control sobre el software de servidor) y hospedaje dedicado (que les ofrece su propia
máquina, lo cual es muy flexible pero no es costeable para los sitios Web de pequeños
a medianos).
Cuando una compañía de hospedaje Web ofrece la renta de máquinas virtuales, una
sola máquina física puede ejecutar muchas máquinas virtuales, cada una de las cuales
parece ser una máquina completa. Los clientes que rentan una máquina virtual pueden
ejecutar cualesquier sistema operativo y software que deseen, pero a una fracción del
costo de un servidor dedicado (debido a que la misma máquina física soporta muchas
máquinas virtuales al mismo tiempo).
Otro uso de la virtualización es para los usuarios finales que desean poder ejecutar dos
o más sistemas operativos al mismo tiempo, por decir Windows y Linux, debido a que
algunos de sus paquetes de aplicaciones favoritos se ejecutan en el primero y algunos
otros en el segundo.