Sistemas operativos modernos
páginas que su mínimo o (en ciertas circunstancias) más que su máximo. Todos los procesos ini cian con el mismo mínimo y el mismo máximo, pero estos límites pueden cambiar con el tiem po. El mínimo inicial predeterminado está dentro del intervalo de 20 a 50 y el máximo inicial predeterminado está dentro del intervalo de 45 a 345, dependiendo de la cantidad total de RAM. El administrador del sistema puede modificar estos límites. Si se presenta un fallo de página y el conjunto de trabajo es más pequeño que el mínimo, se añade la página. En cambio, si se presenta un fallo de página y el conjunto de trabajo es más gran de que el máximo, se expulsa una página del conjunto de trabajo (pero no de la memoria) para que quepa la nueva página. Esto implica que Windows 2000 utiliza un algoritmo local para evi tar que un proceso perjudique a otros acaparando memoria. No obstante, el sistema trata de afi nar su funcionamiento hasta cierto punto. Por ejemplo, si el sistema se da cuenta de que ün proceso está paginando en forma frenética (y los demás no), podría incrementar el tamaño de su conjunto de trabajo máximo, así que, a largo plazo, el algoritmo es un híbrido de local y glo bal. Sin embargo, existe un límite absoluto para el tamaño del conjunto de trabajo: aunque só lo se esté ejecutando un proceso, no puede ocupar las últimas 512 páginas libres, para dejar espacio por si aparecen procesos nuevos. Hasta aquí vamos bien, pero la historia no ha terminado. Una vez por segundo, un sub proceso demonio dedicado al kemel, el administrador de conjuntos de equilibrio, verifica si hay suficientes páginas libres. Si no las hay, inicia el subproceso administrador de conjuntos de trabajo para que examine los conjuntos de trabajo y recupere más páginas. Lo primero que ha ce el administrador de conjuntos de trabajo es determinar en qué orden examinará los proce sos. Los procesos grandes que han estado inactivos durante mucho tiempo se examinan antes que los procesos pequeños acfivos, y el proceso de primer plano es el úlfimo que se examina. Luego, el administrador de conjuntos de trabajo comienza a inspeccionar los procesos en el orden escogido. Si el conjunto de trabajo actual de un proceso es menor que su mínimo, o si ha incurrido en más de cierto número de fallos de página desde la última inspección, no se ha ce nada. De lo contrario, se le quitan una o más páginas. El número de páginas a quitar es una función complicada del tamaño total de la RAM, de qué tanta escasez de memoria hay, de la relación entre el tamaño actual del conjunto de trabajo y los tamaños máximo y mínimo del proceso, y otros parámetros. Todas las páginas se examinan por tumo. En un uiüprocesador, si el bit de referencia de una página está apagado, se incrementa un conta dor asociado con la página. Si el bit de referencia está encendido, el contador se establece a cero. Una vez examinadas todas las páginas, las que tienen los valores más altos en su contador se retiran del conjunto de trabajo. El subproceso sigue examinando procesos hasta recuperar suficientes pá ginas, y luego se detiene. Si ya realizó una pasada completa por todos los procesos y todavía no ha recuperado suficientes páginas, efecmará otra pasada “recortando” de forma más agresiva e incluso podna reducir los conjuntos de trabajo por debajo de sus tamaños mínimos, si es necesario. En un multiprocesador de nada sirve examinar el bit de referencia porque, aunque la CPU actual no haya hecho referencia recientemente a la página, alguna otra podría haberlo hecho. Examinar los bits de referencia de otra CPU resulta demasiado costoso. Por tanto, no se exa mina el bit de referencia y tan sólo se eliminan las páginas más antiguas. Cabe señalar que, en lo que concierne al reemplazo de páginas, el sistema operativo mis mo se considera como un proceso: posee páginas y también tiene un conjunto de trabajo, que
RkJQdWJsaXNoZXIy MjI4NDcx