Macrokernel (históricamente nació)/Monokernel: El macrokernel ya era ineficiente y consumía muchos recursos de máquina.
Microkernel: Achicamiento del macrokernel, recursos específicos
Nanokernel: Tener lo esencial.
Exokernel: el SO no sea residente, funcionamiento de forma atomizada, hasta llegar al momento de no tener SO.
Arquitecutura microkernel
Ø Arquitectura de sistemas operativos microkernel
ü Proporciona solo un pequeño número de servicios
· Intenta tener un kernel pequeño y escalabe
ü Alto grado de modularidad
· Extensible, portable y escalable
ü Se incrementa el nivel de comunicación entre módulos
· Puede degradar el rendimiento del sistema
ü Fiasco, AIZ, AmigaOS, Amoeba, BeOS, Brainix, Chorus microkernel, Coyotos, EROS, Haiku, K42, L4, Mach, NEXSTEP, OPENSTEP,OSX, MERT, MINIX, MorphOS, Phoenix-RTOS, QNX. LSE/OS (nanokernel), KeyKOS (nanokernel).
Beneficios de una organización micronúcleo
Ø Interfaces uniformes en la peticiones realizadas por un proceso
ü Los procesos no necesitan diferenciar entre servicios a nivel de núcleo y a nivel de usuario
ü Todos los servicios se proporcionan a través de paso de mensajes
Ø Extensibilidad
Ø Flexibilidad
Ø Portabilidad
Ø Fiabilidad
Ø Soporte de sistemas
Exokernel
Ø Un Os se interpone entre las aplicaciones y el hw
Ø Elimina el concepto de abstracción sobre la cual corren las aplicaciones
Ø Se asegura de multiplexar el hw desnudo: a través de primitivas de hw, librerías a nivel de aplicación y servidores
Ø Ej. XOK con Exos (librería sos tipo unix) de MIT, Aegis, Nemesis (Cambridge)
Ø El servidor Cheetah se construye sobre XOK
Ø Es esencialmente la extensión de la filosofía de la arquitectura Risc en cpu al nivel del sistema operativo
Objetivos de diseño del sistema
Ø Objetivos de los usuarios: que el sistema operativo sea adecuado para su uso, fácil de aprender, confiable, seguro y rápido.
Ø Objetivos del sistema: El sistema operativo debe ser fácil de diseñar, implementar y mantener, de la misma forma que sea flexible, confiable, libre de errores y eficiente.
Jerqia de diseño de SO (Brown/Denning)
Nivel | Nombre | Objeto | Ejemplo de operaciones |
7 | Memoria virtual | Espacio direcciones lógicas, segmentos, páginas | Read, write, fetch |
6 | Almacenamiento secundario local | Bloques de dispositivos, canales de dispositivos | Read, write, allocate (espacio en disco duro), free |
5 | Procesos primitivos | Procesos primitivos, semáforos, lista de listos | Suspend, resume, wait. Signal |
4 | Programa de manejo de interrupciones | Manejo de interrupciones, guardar contexto | Invoke, mask, unmask |
3 | Procedimientos | Procedimientos, llamado a pila, presentación | Mark stack, cll return |
2 | Conjunto de instrucciones del procesador | Evaluación de la pila, interpretador de microprograma, datos escalares y arreglos | Load, sotre, add, subtract, branch |
1 | Electrónica de circuitos | Registros, compuertas, buses, etc. | Clear, transfer, activce, complement |
Nivel | Nombre | Objeto | Ejemplo operaciones |
13 | Shell | Ambiente de programación de usuario | Instrucciones en lenguaje Shell |
12 | Procesos de usuario | Procesos de usuario, espacio direcciones virtuales | Quit, kill, suspend, resume |
11 | Directorios | Directorios de usuario (agrupación lógica) | Create, destroy, attach, detach, search, list |
10 | Dispositivos | Dispositivos externos, impresoras, pantallas, teclados | Create, closer, read, write |
9 | Sistemas de archivos | Archivos | Create, destroy, open, close, read, write |
8 | Comunicaciones | Tuberías | Create, destroy, open, close, read, write |
Implementación del sistema
Ø Los sistemas operativos tradicionalmente se han escrito en ensamblador, ahora pueden ser escritos en lenguajes de alto nivel
Ø El código escrito en alto nivel:
ü Puede ser escrito más rápido
ü Es más compacto
ü Es fácil de entender y depurar
Ø Un sistema es más fácil de ser portable si está escrito en un lenguaje de alto nivel.
Ø Algunos lenguajes de alto nivel usados para escribir sistemas operativos: C(Unis, Os/2, Win NT), Fortran(Primos), algol(MCO(Master Control Program) Burrogs), Bliss (VMS DEC), PL/360, perl, PL1 (Multics) Pascal.
Generación sistema (SYSGEN)
Ø Los sistemas operativos se diseñan para correr en cualquier clase de máquinas; el sistema debe configurase para cada computador específico.
Ø El programa sysgen obtiene información relacionada con la configuración específica del hw del sistema
Ø Booting-arrancar un pc al cargar su kernel
Ø Boot program-códig almacenado en la ROM que es capaz de localizar el kernel, cargarlo en al memoria, e iniciar su ejecución.
No hay comentarios:
Publicar un comentario