Kernel:
Definición
Parte fundamental de un sistema
operativo, que reside en memoria todo el tiempo y que provee los servicios
básicos. Es la parte del sistema operativo que está más cerca de la máquina y
puede activar el hardware directamente o unirse a otra capa de software que
maneja el hardware.
La tarea del Kernel es ejecutar procesos (Software, aplicaciones o
programas) y facilitarles a los mismos la tarea de interacción con el Hardware,
mediante la comunicación entre procesos y llamadas al sistema (system calls).
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.
Esta
organización sugiere una estructura básica para el sistema operativo:
1. Un
programa principal que invoca el procedimiento de servicio solicitado.
2. Un
conjunto de procedimientos de servicio que llevan a cabo las llamadas al
sistema.
3. Un
conjunto de procedimientos utilitarios que ayudan a los procedimientos de
servicio.
Sistemas
de capas
Organizar
el sistema operativo como una jerarquía de capas, cada una construida encima de
la que tiene abajo. 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 (los bits eran costosos en aquel
entonces).
El
sistema tenía seis capas:
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
(es decir, el usuario).
La capa 3
se encargaba de administrar los dispositivos de E/S.
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 (el microkernel) se ejecuta en modo kernel y el resto se ejecuta
como procesos de usuario ordinarios, sin poder relativamente.
Modelo
cliente-servidor
Una
ligera variación de la idea del microkernel es diferenciar dos clases de
procesos: los servidores, cada uno de los cuales proporciona cierto
servicio, y los clientes, que utilizan estos servicios. Este modelo se
conoce como cliente-servidor.
Cada vez
hay más sistemas que involucran a los usuarios en sus PCs domésticas como
clientes y equipos más grandes que operan en algún otro lado como servidores.
De hecho, la mayor parte de la Web opera de esta forma. Una PC envía una
petición de una página Web al servidor y la página Web se envía de vuelta. Éste
es un uso común del modelo cliente-servidor en una red.
Máquinas
virtuales
Este
sistema, que en un principio se llamó CP/CMS y posteriormente cambió su nombre
a VM/370, estaba basado en una astuta observación: un sistema de tiempo
compartido proporciona (1) multiprogramación y (2) una máquina extendida con
una interfaz más conveniente que el hardware por sí solo. La esencia de VM/370
es separar por completo estas dos funciones.
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. 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.
No hay comentarios:
Publicar un comentario