La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

El núcleo o kernel.

Presentaciones similares


Presentación del tema: "El núcleo o kernel."— Transcripción de la presentación:

1 El núcleo o kernel

2 ¿Qué es el kernel? Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora. También se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado.

3 Acceder al hardware directamente es complejo, por lo que los núcleos implementan una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso para el programador.

4 Funciones más importantes
Administración de la memoria para todos los programas y procesos en ejecución. Administración del tiempo de procesador que los programas y procesos en ejecución utilizan. Es el encargado de que podamos acceder a los periféricos de nuestro ordenador de una manera cómoda.

5 Arquitecturas del kernel
Monolítico Microkernel Híbrido Exokernel

6 KERNEL MONOLÍTICO

7 El sistema operativo se escribe como una colección de procedimientos, enlazados entre sí en un solo programa binario ejecutable extenso. Cada procedimiento en el sistema tiene la libertad de llamar a cualquier otro. Al tener miles de procedimiento que se pueden llamar entre sí sin restricción, se produce un sistema poco manejable y difícil de comprender.

8 Para solicitar los servicios (llamadas al sistema) que proporciona el sistema operativo, los parámetros se colocan en un lugar bien definido (por ejemplo, una pila) y luego se ejecuta una instrucción trap. Esta instrucción cambia la máquina del modo usuario a modo kernel y transfiere el control al sistema operativo. Después el sistema operativo obtiene los parámetros y determina cuál es la llamada al sistema que se va a llevar a cabo

9 Luego la indiza en una tabla que contiene en la rutina k un apuntador al procedimiento que lleva a cabo la llamada al sistema k. Esta organización sugiere una estructura básica para el sistema operativo: Un programa principal invoca el procedimiento de servicio solicitado. Un conjunto de procedimientos de servicio que llevan a cabo las llamadas al sistema. Un conjunto de procedimientos utilitarios que ayudan a los procedimientos de servicio.

10 En este modelo para cada llamada al sistema hay un procedimiento de servicio que se encarga de la llamada y la ejecuta. Los procedimientos utilitarios hacen cosas que necesitan varios procedimientos de servicio, como obtener datos de los programas de usuario.

11

12 Un S. O. con núcleo monolítico concentra todas las funcionalidades posibles (planificación, sistema de archivos, redes, controladores de dispositivos, gestión de memoria, etc) dentro de un gran programa. El mismo puede tener un tamaño considerable, y deberá ser recompilado por completo al añadir una nueva funcionalidad. Todos los componentes funcionales del núcleo tienen acceso a todas sus estructuras de datos internas y a sus rutinas. Un error en una rutina puede propagarse a todo el núcleo. Rendimiento mayor que un micronúcleo.

13 Sistemas con núcleos monolíticos
Tipo UNIX Linux Unix BSD FreeBSD OpenBSD Solaris Tipo DOS MS DOS WINDOWS 9X (95, 98, 98SE, Me) Tipo Mac OS hasta OS 8.6 OpenVMS XTS-400

14 MICROKERNEL

15 Tipo de núcleo de S. O. que provee un conjunto de llamadas al sistema mínimas, para implementar servicios básicos como espacios de direcciones, comunicación entre procesos y planificación básica. Todos los otros servicios (gestión de memoria, sistema de archivos, operaciones de E/S, etc), que en general son provistos por el núcleo, se ejecutan como procesos servidores en espacio de usuario.

16 Principio de minimalismo de Liedkte:
Un elemento es aceptable dentro del kernel solamente si al moverlo afuera del kernel se pierde funcionalidad. IPC: Mecanismo para que los procesos se comuniquen entre ellos, generalmente por medio de mensajes. Permite trabajar en modalidad cliente/servidor. Comunicación sincrónica (se envía el mensaje y se espera la respuesta).

17 Ventajas Reducción de la complejidad.
Descentralización de fallos (un fallo en una parte del sistema no lo colapsaría por completo). Facilidad para crear y depurar controladores de dispositivos. Mejora la tolerancia a fallos y eleva la portabilidad entre plataformas de hardware.

18 Desventajas Complejidad en la sincronización de todos los módulos que componen el micronúcleo y su acceso a la memoria. Complejidad para la integración con otras aplicaciones. Los procesadores y arquitecturas modernas de hardware están optimizadas para sistemas de núcleo que pueden mapear toda la memoria. Mayor complejidad en el código, menor rendimiento, o limitaciones en diversas funciones. Un mapa de memoria es una estructura de datos (tablas) que indica cómo está distribuida la memoria. Contiene información sobre el tamaño total de memoria y las relaciones que existen entre direcciones lógicas y físicas. Suelen ser creados por el firmware para dar información al núcleo del sistema sobre cómo está distribuida la memoria.

19 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. En especial al ejecutar cada driver de dispositivo y sistema de archivos como un proceso de usario separado, un error en alguno de estos procesos puede hacer que falle ese componente, pero no puede hacer que falle todo el sistema.

20 Así, un error en el driver del dispositivo de audio hará que el sonido sea confuso o se detenga, pero la computadora no fallará. En contraste, en un sistema monolítico con todos los drivers en el kernel, un driver de audio con errores puede fácilmente hacer referencia a una dirección de memoria inválida y llevar a todo el sistema a un alto rotundo en un instante.

21 Sistemas con microkernels
Minix L4 QNX Mach En la práctica son menos eficientes que los kernels monolíticos Suelen usarse en robótica embebida o computadoras médicas, ya que la mayoría de los componentes del sistema operativo residen en su propio espacio de memoria privado y protegido; o en situaciones en que no se puede permitir que haya fallos de software, lo que incluye desde brazos robóticos en naves espaciales, hasta máquinas que pulen cristal donde un pequeño error podría costar mucho dinero.

22 Caso de ejemplo MINIX 3 El microkernel de MINIX 3 tiene solo 3200 líneas de C y 800 líneas de ensambador, para las funciones de muy bajo nivel, como las que se usan para atrapar interrupciones y conmutar procesos. El código de C se encarga de la comunicación entre procesos y ofrece un conjunto de 35 llamadas al kernel para permitir que el resto del S.O. realice su trabajo.

23 Las llamadas al kernel realizan funciones tales como asociar los drivers a las interrupciones, desplazar datos entre espacios de direcciones e instalar nuevos mapas de memoria para los procesos recién creados. Los manejadores de las llamadas al kernel se etiquetan como Sys. El manejador de dispositivo para el reloj también está en el kernel, ya que el planificador interactúa con él. Todos los demás controladores se ejecutan como procesos de usuario separados.

24 Fuera del kernel, el sistema se estructura como tres capas de procesos, todos se ejecutan en modo usuario. La capa inferior contiene los Drivers de dispositivos. Encima hay otra capa que contiene los servidores, que realizan la mayor parte del trabajo del sistema operativo. El servidor de reencarnación comprueba si otros servidores y drivers están funcionando bien. En caso que se detecte uno defectuoso se reemplaza automáticamente sin intervención del usuario. Así el sistema es autocorregible y muy confiable.

25 Estructura del sistema MINIX 3

26 KERNEL HÍBRIDO

27 Son micronúcleos que tienen algo de código “no esencial”, en espacio de núcleo para que éste se ejecute más rápido de lo que lo haría si estuviera en espacio de usuario. La mayoría de los S. O. modernos entran en esta categoría siendo el más popular MS Windows NT.

28 El núcleo híbrido usa conceptos de arquitectura tanto del diseño monolítico como del micronúcleo, específicamente el paso de mensajes y la migración de código no esencial hacia el espacio de usuario, pero manteniendo cierto código no esencial en el propio núcleo por razones de rendimiento.

29 Sistemas con núcleos híbridos
Microsoft Windows NT, usado en todos los sistemas que usan el código base de Windows NT XNU (usado en Mac OS X) DragonFly BSD ReactOS

30 Exokernels

31 También conocidos como S. O
También conocidos como S.O. verticalmente estructurados, representan una aproximación radicalmente nueva al diseño de sistemas operativos. La idea subyacente es permitir que el desarrollador tome todas las decisiones relativas al rendimiento del hardware. Los exonúcleos son extremadamente pequeños, ya que limitan expresamente su funcionalidad a la protección y el multiplexado de los recursos. Se llaman así porque toda la funcionalidad deja de estar residente en memoria y pasa a estar fuera, en librerías dinámicas.

32 Los diseños de núcleos clásicos (tanto el monolítico como el micronúcleo) abstraen el hardware, escondiendo los recursos bajo una capa de abstracción del hardware, o detrás de los controladores de dispositivo. En los sistemas clásicos, si se asigna memoria física, nadie puede estar seguro de cuál es su localización real. La finalidad de un exonúcleo es permitir a una aplicación que solicite una región específica de la memoria, un bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidos están disponibles, y que el programa tiene derecho a acceder a ellos.

33 Debido a que el exonúcleo sólo proporciona una interfaz al hardware de muy bajo nivel, careciendo de todas las funcionalidades de alto nivel de otros sistemas operativos, éste es complementado por una «biblioteca de sistema operativo». Esta biblioteca se comunica con el exonúcleo subyacente, y facilita a los programadores de aplicaciones las funcionalidades que son comunes en otros sistemas operativos.

34 Actualmente, los diseños exonúcleo están fundamentalmente en fase de estudio y no se usan en ningún sistema popular. Un concepto de sistema operativo es Nemesis, creado por universidades y organizaciones europeas.


Descargar ppt "El núcleo o kernel."

Presentaciones similares


Anuncios Google