Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Analizaremos seis estructuras distintas que se han probado, para poder darnos una idea
del espectro de posibilidades. Los seis diseños son: sistemas monolíticos, sistemas de
capas, microkernels, sistemas cliente-servidor, máquinas virtuales y exokernels.
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. Cuando se utiliza esta técnica, cada
procedimiento en el sistema tiene la libertad de llamar a cualquier otro, si éste proporciona
cierto cómputo útil que el primero necesita. Al tener miles de procedimientos que se
pueden llamar entre sí sin restricción, con frecuencia se produce un sistema poco manejable
y difícil de comprender.
Sistemas de capas. - 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.
El sistema tenía seis capas, como se muestra en la figura 1-25. El nivel 0 se encargaba de la
asignación del procesador, de cambiar entre un proceso y otro cuando ocurrían
interrupciones o expiraban los temporizadores.
La capa 1 se encargaba de la administración de la memoria.
La capa 2 se encargaba de la comunicación entre cada proceso y la consola del operador.
La capa 3 se encargaba de administrar los dispositivos de E/S y de guardar en búferes los flujos de
información dirigidos para y desde ellos.
La capa 4 era en donde se encontraban los programas de usuario.
El proceso operador del sistema se encontraba en el nivel 5.
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 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á.
Modelo cliente-servidor. - La comunicación entre clientes y servidores se lleva a cabo comúnmente
mediante el paso de mensajes. Para obtener un servicio, un proceso cliente construye un mensaje indicando lo
que desea y lo envía al servicio apropiado. Después el servicio hace el trabajo y envía 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.
Máquinas virtuales. - 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.
Exokernels. - En vez de clonar la máquina actual, como se hace con las máquinas virtuales, otra estrategia
es particionarla; en otras palabras, a cada usuario se le proporciona un subconjunto de los recursos. Así, una
máquina virtual podría obtener los bloques de disco del 0 al 1023, la siguiente podría obtener los bloques de
disco del 1024 al 2047 y así sucesivamente.
La ventaja del esquema del exokernel es que ahorra una capa de asignación. En los otros diseños, cada
máquina virtual piensa que tiene su propio disco, con bloques que van desde 0 hasta cierto valor máximo, por
lo que el monitor de la máquina virtual debe mantener tablas para reasignar las direcciones del disco (y todos
los demás recursos).
Enlace dinámico. – Un módulo de núcleo puede cargarse y enlazarse al núcleo mientras el núcleo
esta en memoria y ejecutándose como así también puede desenlazarse y eliminarse en cualquier
momento. Este enlace dinámico facilita la configuración y reduce el uso de memoria del núcleo.
Módulos apilables. – Estos se gestionan como una jerarquía. Los módulos individuales sirven como
bibliotecas cuando los módulos clientes se referencian a módulos de la parte inferior de la jerarquía.
Silberschatz, A., Galvin, P., y Gagne, G. (2013). Operating Systems Concepts. Estados Unidos:
Wiley.
https://ayudalinux.com/estructura-sistema-linux/
https://prezi.com/vkrxuuckxsj1/estructura-del-sistema-operativo-linux/
https://es.scribd.com/doc/103987454/Estructura-Del-Sistema-Operativo-
Linux
https://es.slideshare.net/JesusJimenez123/android-estructura-del-
sistema-operativo
http://edsonjosueal5991.blogspot.com/2014/08/estructura-general-de-
windows.html
Bibliografía