Sistemas operativos modernos
llamada, que da la dirección del procedimiento a invocar. Por tanto, no es posible saltar a cual quier punto de un segmento de código arbitrario que está en otro nivel. Sólo pueden usarse los puntos de ingreso oficiales. Los conceptos de niveles de protección y puertas de llamadas se usaron por primera vez en MULTICS, donde se veían como anillos de protección. En la figura 4-47 se sugiere un uso típico de este mecanismo. En el nivel Oencontramos al kernel del sistema operativo, que maneja E/S, administración de memoria y otros asuntos vita les. En el nivel 1 está el manejador de llamadas al sistema. Los programas de usuario pueden in vocar procedimientos ubicados aquí para que se ejecuten llamadas al sistema, pero sólo puede invocarse una lista específica y protegida de procedimientos. El nivel 2 contiene procedimien tos de biblioteca, quizá compartidos entre muchos programas en ejecución. Los programas de usuario pueden invocar estos procedimientos y leer sus datos, pero no pueden modificarlos. Por último, los programas de usuario se ejecutan en el nivel 3, que es el menos protegido. Las interrupciones de sistema y de dispositivo utilizan un mecanismo similar al de las puertas de llamadas. También hacen referencia a descriptores, no a direcciones absolutas, y di chos descriptores apuntan a procedimientos específicos a ejecutar. El campo Tipo de la figura 4-44 distingue entre segmentos de código, segmentos de datos y los diversos tipos de puertas. 4.9 INVESTIGACIONES SOBRE ADMINISTRACION DE MEMORIA La administración de memoria, y sobre todo los algoritmos de paginación, alguna vez fue un área de investigación fructífera, pero casi toda esta actividad parece haber cesado, al menos en el caso de los sistemas de aplicación general. Casi todos los sistemas reales usan alguna varia ción del algoritmo de reloj, pues es fácil de implementar y relativamente eficaz. Una excepción reciente, empero, es el rediseño del sistema de memoria virtual del BSD versión 4.4 (Cranor y Parulkar, 1999). Donde sí se siguen realizando investigaciones sobre paginación es en sistemas de aplica ción especial y en nuevos tipos de sistemas. Algunos de estos trabajos buscan formas de per mitir que los procesos de usuario manejen sus propios fallos de página y se encarguen de administrar su propia memoria, quizá de forma específica para la aplicación (Engler et al., 1995). Un área en la que las aplicaciones podrían tener que efectuar su propia paginación de manera especial es la de multimedia, y algunas investigaciones han estudiado esto (Hand, 1999). Otra área que tiene necesidades específicas es la de los comunicadores personales de bolsillo (Abutaleb y Li, 1997; Wan y Lin, 1997). Una última área es la de los sistemas con es pacios de direcciones de 64 bits compartidos por muchos procesos (Talluri et al., 1995). 4.10 RESUMEN En este capítulo examinamos la administración de memoria. Vimos que los sistemas más senci llos no efectúan intercambio ni paginación. Una vez que un programa se carga en la memoria,
RkJQdWJsaXNoZXIy MjI4NDcx