Este documento define y explica los diferentes tipos de sistemas operativos, incluyendo núcleos monolíticos, micronúcleos, híbridos y exonúcleos. Los núcleos monolíticos contienen todas las funciones en un solo programa, mientras que los micronúcleos dividen las funciones en módulos más pequeños que se ejecutan en modo usuario. Los núcleos híbridos son una mezcla de ambos tipos. Los exonúcleos permiten a las aplicaciones controlar directamente el hardware.
2. DEFINICIÓN DE
SISTEMA OPERATIVO
Una serie de programas trabajando en conjunto
(sistema) en modo supervisor (administrador o kernel),
con la finalidad de proporcionar a los programadores de
aplicaciones (y a los usuarios de programas de
aplicaciones) un conjunto abstracto de recursos
simples, en vez de complejos conjuntos de hardware y
administrar estos recursos en el tiempo y en el espacio
3.
4. KERNEL (NÚCLEO)
El Software más importante del
Sistema Operativo, que está en
contacto directo con el Hardware, a
través de los controladores (drivers)
de dispositivos y que cumple con
estas tareas:
6. SHELL
Es el intérprete de comandos
Una capa de software que está
entre el usuario, las aplicaciones
y el Kernel.
Facilita el acceso a las funciones
del núcleo
Personalizable y Programable
13. Un compilador está al tope de la cola de listos, con
máxima prioridad, ha estado esperando recibir tiempo
de procesador mientras otros procesos se
ejecutaban, finalmente recibe su turno para
ejecutarse, pero apenas unos milisegundos después
de que empezó es expulsado del procesador porque
llegó una interrupción por un proceso que estaba
esperando E/S, así que tiene que volver a esperar.
¿Quién decide qué proceso se va a ejecutar?
14. Un usuario (que no es administrador
del sistema) decide ver los archivos
que hay en su carpeta, por lo que
hace doble click en el directorio
correspondiente. ¿quién le muestra
sus archivos?
15. Las computadoras modernas tienen varios niveles
de memorias, hay de varios tipos, entre ellos las
hay volátiles (se borran cuando se corta el
suministro eléctrico) y las no volátiles (por ejemplo
las memorias flash). Las que son volátiles son
además escasas y los procesos compiten por tener
el máximo de memoria disponible. En este
momento hay 4 procesos corriendo al mismo
tiempo y alguien tiene que dividir la memoria RAM.
¿quién lo hace?
16. Un usuario, decide instalar un programa nuevo,
en Linux, los programas se guardan en un
directorio que se llama /opt, al cual solo tienen
acceso los administradores. Pero debe hacerlo
en las 25 máquinas del laboratorio. Para eso
utiliza un Shell script que el mismo escribió y
que automatiza la tarea ¿ese programa corre
sobre la Shell o sobre el Kernel?
17. ESTRUCTURA DEL KERNEL
Los sistemas operativos y sus núcleos han ido evolucionando a lo
largo de todos estos años
La manera en que se construyen y se reparten entre sus
componentes las diferentes funciones que deben cumplir nos
proporciona una clasificación que vamos a estudiar hoy
Los núcleos pueden ser:
•Monolíticos
•Micronúcleos
•Híbridos
•Exonúcleos
18. NÚCLEO MONOLÍTICO
•Una colección de procedimientos enlazados en un solo programa
binario ejecutable y muy extenso
•Cada procedimiento (función) del sistema tiene la libertad de
llamar a cualquier otro procedimiento del sistema
•Las llamadas no tienen restricciones
•Son sistemas poco manejables
•Son sistemas poco comprensibles
19. NÚCLEO MONOLÍTICO
•Todos los procedimientos y archivos se compilan en un solo
archivo ejecutable.
•Todos los procedimientos y variables son visibles para todo el
mundo.
•No hay ocultamiento de la información (programación orientada a
objetos)
•Se utilizan instrucciones TRAPS para reconocer llamadas al
sistema
20. NÚCLEO MONOLÍTICO
•Una mejora en los núcleos monolíticos fueron los sistemas en
capas
•THE y MULTICS
•En estos sistemas, cada capa implementa una parte del sistema
operativo y las pone a disposición de las capas superiores que no
tienen necesidad de conocer cómo trabajan las abstracciones ya
implementadas
22. NÚCLEO MONOLÍTICO
•Capa 0: Administra al procesador (planificación y
multiprogramación)
•Capa 1: Administra la memoria (incluyendo la virtual)
•Capa 2: Comunicación entre procesos y consola de operador
•Capa 3: E/S
•Capa 4: Aplicaciones de usuarios
•Capa 5: Usuario mismo
23. NÚCLEO MONOLÍTICO
•Todas las funciones están dentro de un solo gran programa
•Planificación, sistema de archivos, drivers, memoria
•Cada vez que se modifica (se añade un componente) se debe
volver a compilar todo el núcleo
•Un simple error en un procedimiento puede hacer caer todo el
sistema
•Es mucho más rápido que otras estructuras
25. MICROKERNEL
•En este tipo de estructura se dividen las funciones del SO en
módulos más pequeños
•El núcleo solo contiene:
•Planificación
•Comunicación entre procesos (IPC)
•Espacios de direcciones
•Los demás servicios (gestión de memoria, sistemas de archivos,
drivers, E/S) se ejecutan en modo usuario
26. MICROKERNEL
•Ventajas
•Es una estructura más confiable
•Una falla en un módulo no hace caer todo el sistema
•Es menos complejo
•Es más sencillo de depurar
•Es más tolerante a fallos
•Mejora la portabilidad entre diferentes plataformas de HW
27. MICROKERNEL
•Desventajas
•Es más difícil de construir (porque cada módulo debe encajar
con los otros
•Mayor complejidad en el código
•Es más difícil programar aplicaciones
•Menor rendimiento
28. MICROKERNEL
•Minix
•El núcleo solo tiene 3200 líneas en C y 800 en ensamblador
•Solo 35 llamadas al sistema que son utilizadas por el resto del
SO
•Los controladores (con excepción del reloj y el planificador)
están fuera del núcleo
•Fuera del núcleo el resto de las aplicaciones se ejecutan en
modo usuario y por capas (la primera es la de drivers)
29. MICROKERNEL
•Minix
•Re-encarnación: Cuando se comprueba que un driver o un
servicio no está funcionando correctamente, se reemplaza en
caliente, automáticamente
•Permite una recuperación rápida
•Sistema autocorregible y confiable
30. KERNEL HÍBRIDO
•Muchos SO modernos tienen esta estructura
•Es un micronúcleo con algunos servicios no esenciales incluidos
en el núcleo para que el SO funcione más rápidamente
•Es una mezcla de núcleo monolítico y micronúcleo
•Windows NT
•DragonFly BSD
31. EXOKERNELS
•Es un concepto nuevo y muy diferente de los anteriores
•Aquí se permite a los programadores de aplicaciones que tomen
verdadero control del HW, en lugar de pedirle permiso al SO
•El exonúcleo es muy pequeño, sólo se ocupa del multiplexado de
los recursos y de la protección entre aplicaciones
•Todas las funciones están en librerías en lugar de estar residentes
en memoria
32. EXOKERNELS
•En los sistemas tradicionales el HW está escondido detrás de la
interfaz que presenta el SO
•Tenemos una imagen de la memoria y del disco, pero en realidad
no trabajamos con la memoria y el disco, sino con abstracciones
(no sabemos la dirección física real de un dato)
•El exonúcleo permite que una aplicación reclame una parte de la
memoria (o del disco) y si está disponible y tiene derecho, se le
brinda