domingo, 25 de noviembre de 2012

1.6.- Nucleo.

El Núcleo (o kernel) es una colección de módulos de software que se ejecutan en forma privilegiada –lo que significa que tienen acceso pleno a los recursos del sistema. El núcleo normalmente representa sólo una pequeña parte de lo que por lo general se piensa que es todo el sistema operativo, pero es tal vez el código que más se utiliza. Por esta razón, el núcleo reside por lo regular en la memoria principal, mientras que otras partes del sistema operativo son cargadas en la memoria principal sólo cuando se necesitan.

El núcleo de un sistema operativo normalmente el código necesario para realizar las siguientes funciones:

Manejo de interrupciones.
Creación y destrucción de procesos.
Cambio de estado de los procesos.
Despacho.
Suspensión y reanudación de procesos.
Sincronización de procesos.
Comunicación entre procesos.
Manipulación de los bloques de control de procesos.
Apoyo para las actividades de entrada/salida.
• Apoyo para asignación y liberación de memoria.
Apoyo para el sistema de archivos.
• Apoyo para el mecanismo de llamada y retorno de un procedimiento.
• Apoyo para ciertas funciones de contabilidad del sistema.

El Kernel consiste en la parte principal del código del sistema operativo, el cual se encargan de controlar y administrar los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos, este se divide en 5 capas:
 
Nivel 1. Procesador. (Núcleo)
 
Se encarga de activar los cuantum de tiempo para cada uno de los procesos, creando interrupciones de hardware cuando no son respetadas.Se introduce la noción de proceso como un programa en ejecución. Entre los requisitos fundamentales de un sistema operativo que ofrezca soporte para múltiples procesos se incluye la capacidad de suspender y reanudar los procesos.
Esto exige salvaguardar los registros del hardware, de modo que la ejecución pueda cambiar de un proceso a otro. Además, si los procesos necesitan cooperar, hace falta algún método de sincronización. Una de las técnicas más simples, pero un concepto importante en el diseño de sistemas operativos, es el semáforo.

Objetos→ proceso y semáforo
• Operaciones típicas→ crear, destruir, suspender, reanudar, señalizar y esperar

Nivel 2. Entrada/Salida.

Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos por procesos.
Tiene que ver con los dispositivos de almacenamiento secundario. En este nivel se sitúan las funciones de ubicación de las cabezas de lectura y escritura, y se producen las transferencias reales de bloques. Este nivel se apoya en el nivel anterior para planificar las operaciones y notificar al proceso que hizo la solicitud que la operación ha culminado.

Ø Objetos→ bloques de datos
Ø Operaciones típicas→ leer, escribir, asignar y liberar
Dispositivos de Entrada y Salida.

El código destinado a manejar la entrada y salida de los diferentes periféricos en un sistema operativo es de una extensión considerable y sumamente complejo. Resuelve las necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas al sistema para los programadores.

Nivel 4. Sistema de Archivos.

Proporciona la facilidad para el almacenamiento a largo plazo y manipulación de archivos con nombre, va asignando espacio y acceso de datos en memoria. Da soporte al almacenamiento a largo plazo de los archivos con nombre.
En este nivel, los datos del almacenamiento secundario se contemplan en términos de entidades abstractas de longitud variable, en contraste con el enfoque orientado al hardware del nivel de E/S básicas, en términos de pistas, sectores y bloques de tamaño fijo.
Objetos→ archivos dispositivos
• Operaciones típicas→ crear, destruir, abrir, cerrar, leer y escribir.

Nivel 5. Información o Aplicación o Intérprete de Lenguajes.

Facilita la comunicación con los lenguajes y el sistema operativo para aceptar las ordenes en cada una de las aplicaciones. Cuando se solicitan ejecutando un programa el software de este nivel crea el ambiente de trabajo e invoca a los procesos correspondientes.

Ofrece al usuario una interfaz con el sistema operativo. Se denomina shell y separa al usuario de los detalles, le presenta el sistema operativo como un simple conjunto de servicios. El shell acepta las órdenes del usuario o las sentencias de control de trabajos, las interpreta, crea y controla los procesos según sea necesario.
El intérprete de comandos representa la interfaz entre el usuario y el sistema operativo. Algunos sistemas operativos incluyen el intérprete en el kernel. Otros como el DOS o UNIX, poseen un programa especial para cumplir esta función que se ejecuta cuando se inicia el sistema.
Objetos→ datos del entorno
• Operaciones típicas→ sentencias del lenguaje de ordenes.

No hay comentarios:

Publicar un comentario