Sistemas operativos modernos

varias 370 virtuales en su totalidad no es tan sencillo (sobre todo si se quiere hacer con eficien­ cia razonable). Una tendencia en los sistemas operativos modernos consiste en llevar más lejos aún la idea de subir código a capas superiores y quitar lo más que se pueda del modo de kemel, dejando un mícrokernel mínimo. El enfoque acostumbrado es implementar casi todo el sistema opera­ tivo en procesos de usuario. Para solicitar un servicio, como la lectura de un bloque o un archi­ vo, un proceso de usuario (que ahora se denomina proceso cliente) envía la solicitud a un proceso servidor, que realiza el trabajo y devuelve la respuesta. Proceso cliente Proceso cliente Servidor de procesos Servidor de terminales Servidor de archivos Servidor de memoria ^ ^ Microkernel \ Modo de usuario Modo de kernel El cliente obtiene servicio enviando mensajes a procesos servidores Figura 1-27. El modelo cliente-servidor. En este modelo, que se muestra en la figura 1-27, lo único que hace el kemel es manejar la comunicación entre clientes y servidores. Al dividir el sistema operativo en partes, cada una de las cuales se encarga sólo de una faceta del sistema, como el servicio de archivos, el servi­ cio de procesos, el servicio de terminal o el servicio de memoria, cada parte puede ser peque­ ña y manejable. Además, dado que todos los servidores se ejecutan como procesos en modo de usuario, no en modo de kemel, no tienen acceso directo al hardware. Por ello, si se activa un error en el servidor de archivos, el servicio de archivos podri'a fallar, pero generalmente no ha­ rá que se detenga toda la máquina. Otra ventaja del modelo cliente-servidor es su adaptabilidad para usarse en sistemas dis­ tribuidos (vea la figura 1-28). Si un cliente se comunica con el servidor enviándole mensajes, no necesita saber si el mensaje se maneja en forma local en su propia máquina, o si se le envió por una red a un servidor en una máquina remota. En lo que al cliente concierne, en ambos ca­ sos sucede lo mismo: se envió una solicitud y se recibió una respuesta. La descripción anterior de un kemel que sólo se encarga de transmitir mensajes de clien­ tes a servidores y de regreso, no es del todo realista. Algunas funciones del sistema operativo (como la carga de comandos en los registros físicos del dispositivo de E/S) son difíciles de efectuar, si no imposibles, desde programas en espacio de usuario. Hay dos formas de resolver este problema. Una es hacer que algunos procesos servidores cruciales (por ejemplo, contro­ ladores de dispositivos) se ejecuten realmente en modo de kemel, con acceso total a todo el hardware, pero que se sigan comunicando con otros procesos, empleando el mecanismo nor­ mal de mensajes. La otra forma es incorporar un mínimo de mecanismo en el kemel pero dejar las decisio­ nes de política a los servidores en espacio de usuario (Levin et a l, 1975). Por ejemplo, el ker-

RkJQdWJsaXNoZXIy MjI4NDcx