Sistemas operativos modernos

El cuerpo del ciclo invoca tres procedimientos, cada uno de los cuales trata de recuperar diferentes tipos de páginas. El valor de urgencia se pasa como parámetro con el fin de que el procedimiento sepa qué tanto debe esforzarse por recuperar algunas páginas. Por lo regular, es­ to se refiere al número de páginas a inspeccionar antes de darse por vencido. El efecto de este algoritmo es que primero se toman las páginas fáciles de cada categoría para después ir tras las difíciles. Cuando se han recuperado suficientes páginas, el demonio de páginas se duer­ me otra vez. El primer procedimiento trata de recuperar páginas del caché de paginación y del caché de búfer del sistema de archivos a las que no se ha hecho referencia últimamente, empleando un algoritmo tipo reloj. El segundo procedimiento busca páginas compartidas que al parecer ninguno de los usuarios esté utilizando mucho. El tercer procedimiento, que trata de recupe­ rar páginas de usuario ordinarias, es el más interesante así que lo examinaremos en forma somera. Primero se ejecuta un ciclo que abarca todos los procesos y determina cuál es el que más pá­ ginas tiene en memoria en ese momento. Una vez localizado ese proceso, se examinan todas sus entradas vm_area_struct y todas las páginas en orden por dirección virtual, partiendo del punto donde se quedó la última vez el procedimiento. Si una página no es válida, está ausente de la me­ moria, se comparte, está fija en la memoria o se está usando para DMA, se pasa por alto. Si la página tiene encendido su bit de referencia, éste se apaga y la página se pasa por alto. Si el bit de referencia está apagado, la página se desaloja, así que esta parte del algoritmo es similar al de reloj (excepto que las páginas no se examinan en orden FIFO). Si la página escogida para desalojarse no tiene modificaciones, se abandona de inmediato. Si está modificada y tiene una página de almacén de respaldo en el disco, se calendariza para una escritura en disco. Por último, si la página está modificada y no tiene almacén de respaldo, se coloca en el caché de paginación, de donde quizá se podría rescatar si se vuelve a utilizar an­ tes de ser paginada a disco. La idea de examinar las páginas en orden por dirección virtual se basa en la esperanza de que páginas cercanas entre sí en el espacio de direcciones virtual tien­ dan a usarse o no usarse de manera colectiva, así que se deben escribir en disco como grupo y después traer del disco como grupo. Otro aspecto del sistema de administración de memoria que no hemos mencionado aún es un segundo demonio, bdflush, que se activa en forma periódica (aunque en algunos casos se le activa de manera explícita) para que verifique si la fracción de páginas modificadas es dema­ siado grande. En tal caso, comenzará a escribirlas en disco. 10.5 ENTRADA/SALIDAENUNIX El sistema de E/S en UNIX es relativamente sencillo. En esencia, se hace que todos los dispo­ sitivos de E/S semejen archivos y se accede a ellos con las mismas llamadas al sistema read y write que se usan para el acceso a todos los archivos ordinarios. En algunos casos deben esta­ blecerse parámetros de dispositivo, y esto se hace con una llamada especial al sistema. Estu­ diaremos estos aspectos en las secciones siguientes.

RkJQdWJsaXNoZXIy MjI4NDcx