lunes, 28 de mayo de 2012

7.1 VAX/VMS



El sistema operativo VMS, desarrollado para la familia VAX-11 de Digital,
introducida a finales de los 70, proporciona un entorno unificado para hardware con
diferentes niveles de rendimiento. La gestión de memoria se encontraba muchas
veces con un soporte hardware muy limitado. Aunque prácticamente en desuso, su
estudio tiene interés por razones históricas, como veremos.
El VAX-11 proporcionaba un espacio de direccionamiento virtual de 32 bits,
repartidos entre usuario y sistema. Las direcciones eran paginadas, con un tamaño de
página de 512 bytes. Un programa de usuario disponía de tres regiones (segmentos),
cada uno con una tabla de páginas con registros de base y de longitud asociados.
Como soporte para memoria virtual, cada entrada de las tablas de páginas contaba,
al menos, con un bit de validez y un conjunto de bits para protección de acceso.
Las principales características de la gestión de la memoria virtual en VMS son las
siguientes:
Asignación de páginas local. Existe un límite máximo en el número de páginas residentes
por proceso (su  working-set, en terminología VAX/VMS). Los procesos pueden ser
expulsados de memoria para evitar la sobrepaginación. Cuando un proceso vuelve a
memoria lo hace con el mismo conjunto de páginas residentes con que fue expulsado.
Paginación con reemplazo FIFO y buffer de marcos global. El paginador mantiene un
número adicional de marcos de página que no están asignados a los conjuntos
residentes de cada proceso. Este buffer de marcos se compone de dos listas: lista de
marcos modificados y lista de marcos libres. Un marco elegido como víctima se
añade a una de estas listas dependiendo de si la página ha sido o no modificada.
Cuando un proceso hace referencia a una página que  no está en su conjunto
residente, la rutina de fallo de página busca primero en estas listas; si lo encuentra, lo
añade a su conjunto residente sin necesidad de acceder a memoria secundaria. Sólo
cuando el número de marcos libres alcanza un límite mínimo se produce realmente

una expulsión de página al eliminarse elementos de la lista con disciplina FIFO
. En el caso de la lista de marcos modificados, éstos se escriben conjuntamente en disco.
Agrupamiento de páginas. El pequeño tamaño de la página del VAX causaría un
rendimiento muy pobre si éstas se transfirieran individualmente entre memoria y
disco. Para evitarlo, las páginas de un proceso se  agrupan para transferirse
conjuntamente. En el caso de lectura, por ejemplo,  se transfieren las páginas del
conjunto residente de un proceso. En el caso de escritura, se transfieren las de la lista
de modificadas. Swapping. En determinadas circunstancias, la única forma de recuperar marcos libres
es sacando de memoria el working-set completo de uno o más procesos, para lo que
se tiene en cuenta la prioridad y un quantum de memoria de los procesos.

No hay comentarios:

Publicar un comentario