Sistemas operativos modernos

proceso activo durante cierto número de segundos. Si encuentra procesos así, anula la fijación de sus pilas de kemel y sus páginas se pasan a las Ustas de reserva o modificadas; esto también se indica con ( 1 ). Otros dos subprocesos demonio, el escritor de páginas con correspondencia y el escri­ tor de páginas modificadas, se activan en forma periódica para ver si hay suficientes páginas limpias. Si no hay suficientes, toman páginas de la parte superior de la lista modificada, las es­ criben en disco y luego las pasan a la lista de reserva (4). Ei primer subproceso demonio se en­ carga de las escrituras a archivos con correspondencia, mientras que e! segundo maneja las escrituras a archivos de paginación. El resultado de estas escrituras es transformar páginas modificadas en limpias. El motivo por el que hay dos subprocesos escritores es que un archivo con corresponden­ cia podría tener que crecer como resultado de la escritura, y eso requiere acceso a las estructu­ ras de datos en el disco para asignar un bloque de disco libre. Si no hay espacio en memoria para traer tales estructuras cuando hay necesidad de escribir una página, podría presentarse un bloqueo irreversible. El otro subproceso puede resolver el problema escribiendo páginas en un archivo de paginación, que nunca crece. Nadie dijo que Windows 2000 fuera sencillo. Las otras transiciones de la figura 11-27 se efectúan como sigue. Si un proceso elimina la correspondencia de una página, ésta deja de estar asociada con un proceso y puede colocarse en la lista libre (5), siempre que no se trate de una página compartida. Si un fallo de página re­ quiere un marco de página para contener la página que va a leerse, el marco se toma de la lista libre ( 6 ), si es posible. No importa si la página todavía confiene información confidencial, por­ que va a sobrescribirse en su totalidad. La situación es distinta cuando crece una pila. En ese caso se necesita un marco de página vacío y las reglas de seguridad exigen que la página esté llena de ceros. Por este motivo, se ejecuta otro subproceso demonio del kemel, el subproceso de páginas en ceros, con la prioridad más baja (vea la figura 11-19), borrando las páginas que están en la lista libre y pasándolas a la lista de páginas en ceros (7). Siempre que la CPU está inactiva y hay páginas libres, más vale borrarlas porque una página en ceros po­ dría ser más úfil que una libre. La existencia de todas estas listas lleva a ciertas decisiones sutiles en cuesfión de políticas. Por ejemplo, supongamos que es necesario traer una página del disco y la lista libre está vacía. El sistema se verá obligado a escoger entre tomar una página limpia de la lista de reserva (que de otro modo podría haberse reufilizado más adelante), o bien, una página vacía de la lista de páginas en ceros (desperdiciando la labor que se invirtió en llenarla de ceros). ¿Qué es mejor? Si la CPU está inactiva una buena parte del fiempo y el subproceso de páginas en ceros se eje­ cuta a menudo, es mejor tomar una página en ceros porque habrá muchas. En cambio, si la CPU siempre está ocupada y el disco está inactivo una buena parte del tiempo, es mejor tomar una página de la lista de reserva para evitar el costo de CPU de tener que llenar de ceros otra página después, si crece una pila. Otro acertijo. ¿Qué tan agresivos deben ser los demonios que pasan páginas de la lista mo­ dificada a la lista de reserva? Es mejor contar con páginas limpias que con páginas modificadas (porque se pueden reufilizar al instante), pero una polífica de limpieza agresiva implica más E/S de disco y existe la posibilidad de que una página recién limpiada sea solicitada por un fallo de página y vuelva al conjunto de trabajo donde volverá a modificarse.

RkJQdWJsaXNoZXIy MjI4NDcx