Sistemas operativos modernos

que la mayor parte del administrador de memoria se ejecute como proceso en el nivel de usua­ rio. Semejante separación se efectuó por primera vez en Mach (Young et a i, 1987) y en MI- NIX (Tanenbaum, 1987). La explicación que sigue se basa a grandes rasgos en Mach. En la figura 4-34 se muestra un ejemplo sencillo de cómo se puede separar la política del mecanismo. Aquí el sistema de administración de memoria se divide en tres partes: 1. Un manejador de MMU de bajo nivel. 2. Un manejador de fallos de página que forma parte del kernel. 3. Un paginador externo que se ejecuta en espacio de usuario. Todos los detalles del funcionamiento de la MMU se encapsulan en el manejador de MMU, que es código dependiente de la máquina y debe rescribirse para cada plataforma nueva a la que se traslade el sistema operativo. El manejador de fallos de página es código independiente de la máquina y contiene la mayor parte del mecanismo para paginar. Este manejador, que se ejecu­ ta como proceso de usuario, determina en gran medida la política. Memoria principal 3. Solicitar página Espacio de^ usuario Espacio de^ kernel Disco Figura 4-34. Manejo de fallos de página con un paginador externo. Cuando se pone en marcha un proceso, se notifica de ello al paginador externo para que prepare el mapa de páginas del proceso y asigne almacenamiento de respaldo en el disco si es necesario. Conforme se ejecuta, el proceso podría hacer corresponder objetos nuevos con su espacio de direcciones, para volver a enviar una notificación al paginador externo. Cuando el proceso comience a ejecutarse, podría causar un fallo de página. El manejador de fallos determina cuál página virtual se necesita y envía un mensaje al paginador externo para de­ cirle el problema. A continuación el paginador externo lee la página requerida del disco y la coloca en su propio espacio de direcciones, después de lo cual le indica al manejador de fallos dónde está la página. El manejador de fallos anula entonces la correspondencia de la página con el espacio de direcciones del paginador externo y pide al manejador de MMU que la coloque en el espa­ cio de direcciones del usuario en el lugar correcto. Ahora ya puede reiniciarse el proceso de usuario.

RkJQdWJsaXNoZXIy MjI4NDcx