Sistemas operativos modernos
permanece ahí hasta terminar. Algunos sistemas operativos sólo permiten un proceso a la vez en la memoria, mientras que otros manejan multiprogramación. El siguiente paso es el intercambio. Cuando se usa intercambio, el sistema puede manejar más procesos de los que caben en la memoria. Los procesos para los que no hay espacio se in tercambian al disco. Puede llevarse el control del espacio desocupado en la memoria y en el disco con un mapa de bits o una lista de huecos. Las computadoras modernas suelen tener alguna forma de memoria virtual. En su forma más sencilla, el espacio de direcciones de cada proceso se divide en bloques de tamaño uniforme, llamados páginas, que pueden colocarse en cualquier marco de página disponible en la memo ria. Hay muchos algoritmos de reemplazo de páginas; dos de los mejores son el de envejeci miento y WSClock. Los sistemas de paginación pueden modelarse abstrayendo la cadena de referencias a pá ginas del programa y utilizándola con diferentes algoritmos. Estos modelos pueden servir para hacer algunas predicciones respecto al comportamiento de la paginación. No basta escoger un algoritmo para lograr que los sistemas de paginación funcionen bien; hay que cuidar aspectos como la determinación del conjunto de trabajo, la política de asigna ción de memoria y el tamaño de las páginas. La segmentación ayuda a manejar estructuras de datos que cambian de tamaño durante la ejecución y simplifica el enlazado y el compartimiento. También facilita proporcionar protec ción específica a diferentes segmentos. A veces se combinan la segmentación y la paginación para crear una memoria virtual bidimensional. Los sistemas MULTICS y Pentium de Intel ma nejan segmentación y paginación. PROBLEMAS 1. Un sistema de cómputo tiene espacio para cuatro programas en su memoria principal. Estos programas están inactivos la mitad del tiempo esperando E/S. ¿Qué fracción del tiempo de CPU se desperdicia? 2. En la figura 4-21 vimos un ejemplo de cómo pueden ejecutarse múltiples trabajos en paralelo y termi nar antes que si se hubieran ejecutado de manera sucesiva. Suponga que dos trabajos, cada uno de los cuales necesita 10 minutos de tiempo de CPU, se inician en forma simultánea. ¿Cuánto tardará en ter minar el último si se ejecutan de manera sucesiva? ¿Cuánto tardará si se ejecutan en paralelo? Supon ga un 50% de espera por E/S. 3. Un sistema de intercambio elimina huecos mediante compactación. Suponiendo una distribución alea toria de muchos huecos y muchos segmentos de datos, y un tiempo de 10 ns para leer o escribir una palabra de memoria de 32 bits, ¿cuánto tiempo se necesitaría para compactar 128 MB? Por sencillez, suponga que la palabra Oforma parte de un hueco y que la palabra más alta en la memoria contiene datos válidos. 4. En este problema hay que comparar el espacio necesario para llevar el control de la memoria desocupa da, utilizando un mapa de bits, o bien, una lista enlazada. La memoria de 128 MB se asigna en unidades de n bytes. Para la lista enlazada, suponga que la memoria consiste en una sucesión alternante de seg mentos y huecos, cada uno de 64 KB. Suponga también que cada nodo de la lista enlazada necesita una
RkJQdWJsaXNoZXIy MjI4NDcx