Sistemas operativos modernos

gistro, no hay manera de impedir que un programa construya una instrucción que lea o escri­ ba cualquier palabra en la memoria. En los sistemas multiusuario es indeseable dejar que los procesos lean y escriban en la memoria perteneciente a otros usuarios. La solución que IBM escogió para proteger la 360 fue dividir la memoria en bloques de 2 KB y asignar un código de protección de 4 bits a cada bloque. La palabra de estado del pro­ grama (PSW; program status word) contenía una clave de 4 bits. El hardware de la 360 atra­ paba cualquier intento de un proceso en ejecución por acceder a memoria cuyo código de protección difiriera de la clave en la PSW. Puesto que sólo el sistema operativo podía modifi­ car los códigos de protección y la clave, se impedía a los procesos de usuario interferir entre sí y con el sistema operativo mismo. Otra solución para los problemas, tanto de la reubicación como de la protección, consiste en equipar la máquina con dos registros especiales de hardware, llamados base y límite. Cuan­ do se calendariza un proceso, el registro base se carga con la dirección donde comienza su par­ tición, y el registro límite se carga con la longitud de la partición. Cada vez que se genera una dirección de memoria, se le suma en forma automática el contenido del registro base antes de enviarse a la memoria. Por ejemplo, si el registro base contiene el valor lOOK, una instrucción CALL 100 se transformará en una instrucción CALL lOOK + 100, sin que se modifique en sí la instrucción. También se comparan las direcciones con el registro límite para cuidar que no intenten hacer accesos a memoria fuera de la partición actual. El hardware protege los regis­ tros base y límite para evitar que los programas de usuario los modifiquen. Una desventaja de este esquema es la necesidad de efectuar una suma y una comparación cada vez que se hace referencia a la memoria. Las comparaciones pueden ser rápidas, pero las sumas son lentas debido al tiempo de propagación del acarreo, a menos que se utilicen circui­ tos especiales de suma. La CDC 6600 —la primera supercomputadora del mundo— utilizaba este esquema. La CPU Intel 8088, empleada en la primera PC de IBM, usaba una versión más débil de este es­ quema: registros base pero no registros límite. En la actualidad muy pocas computadoras usan este esquema (si no es que ninguna). 4.2 INTERCAMBIO En un sistema por lotes es fácil organizar de manera eficaz la memoria en particiones fijas. Cada trabajo se carga en una partición cuando llega a la cabeza de la cola, y se queda en la memoria hasta que termina. Mientras puedan mantenerse suficientes trabajos en la memoria como para que la CPU esté ocupada todo el tiempo, no habrá razón para utilizar un esquema más complicado. Con los sistemas de tiempo compartido o las computadoras personales orientadas a los grá­ ficos, la situación es distinta. A veces no hay suficiente memoria principal para contener todos los procesos que están activos, así que los procesos excedentes deben mantenerse en disco y traerse a la memoria en forma dinámica para que se ejecuten. Pueden usarse dos enfoques generales para la administración de memoria, dependiendo (en parte) del hardware disponible. La estrategia más sencilla, llamada intercambio (swap-

RkJQdWJsaXNoZXIy MjI4NDcx