Sistemas operativos modernos
pre que los conjuntos de trabajo combinados de todos los procesos exceden la capacidad de la memoria, cabe esperar hiperpaginación. Un síntoma de esta situación es que el algoritmo PFF indica que algunos procesos necesitan más memoria pero ninguno necesita menos. En este ca so, es imposible asignar más memoria a los procesos que la necesitan sin perjudicar a otros. La única solución real es deshacerse de algunos procesos de manera temporal. La forma de reducir el número de procesos que compiten por la memoria es intercambiar algunos de ellos al disco y liberar todas las páginas que tienen asignadas. Por ejemplo, es posi ble intercambiar a disco un proceso y repartir sus marcos de página entre otros procesos que están hiperpaginando. Si la hiperpaginación cesa, el sistema podrá operar durante un rato en es tas condiciones; de lo contrario, habrá que intercambiar a disco otro proceso, y así hasta que se detenga la hiperpaginación. Como puede ver, incluso con paginación sigue siendo necesario el intercambio, sólo que ahora se usa para reducir la demanda potencial de memoria, no con el fin de recuperar bloques de ella para uso inmediato. El intercambio de procesos a disco para aliviar la carga de la memoria se asemeja a la ca lendarización de dos niveles, en la que algunos procesos se colocan en disco y se ufiUza un calendarizador de corto plazo para los procesos restantes. Es evidente que las dos ideas pueden combinarse, intercambiando a disco apenas los procesos suficientes para lograr que la tasa de fallos de página sea aceptable. En forma periódica, algunos procesos se traerán del disco y otros se intercambiarán al disco. Sin embargo, otro factor que debemos considerar es el grado de muitiprogramación. Co mo vimos en la figura 4-4, cuando el número de procesos que están en la memoria principal es demasiado bajo, la CPU podría estar inactiva durante periodos considerables. Esta considera ción es un argumento a favor de considerar no sólo el tamaño de los procesos y la tasa de pa ginación al decidir cuáles procesos intercambiar a disco, sino también sus características (por ejemplo, si están dedicados a la CPU o a la E/S), así como las de los demás procesos. 4.6.3 Tamaño de página El tamaño de página suele ser un parámetro que puede escoger el sistema operafivo. Incluso si el hardware se diseñó con páginas de, por ejemplo, 512 bytes, el sistema operativo bien puede considerar las páginas Oy 1, 2 y 3, 4 y 5, etcétera, como páginas de 1 KB asignándoles siem pre dos marcos de página de 512 bytes consecutivos. La determinación del tamaño de página ópfimo requiere equilibrar varios factores opues tos. Por ello, no existe un tamaño óptimo para todos los casos. Por principio de cuentas, dos factores favorecen el uso de páginas pequeñas. Un segmento de texto, datos o pila cualquiera no llenará un número entero de páginas. En promedio, la mitad de la última página estará va cía, y ese espacio adicional se desperdicia. Este desperdicio se denomina fragmentación in terna. Si hay n segmentos en la memoria y las páginas son de p bytes, se desperdiciarán np/2 bytes por fragmentación interna. Este razonamiento nos lleva a escoger páginas pequeñas. Otro argumento en ese mismo sentido se hace evidente si consideramos un programa que consta de ocho fases sucesivas de 4 KB cada una. Con páginas de 32 KB, será necesario asig nar al programa 32 KB todo el tiempo. Con páginas de 16 KB, sólo necesitará 16 KB. Con pá
RkJQdWJsaXNoZXIy MjI4NDcx