Sistemas operativos modernos

También vale la pena señalar que, si alguna aplicación no necesita segmentación y se con­ forma con un solo espacio de direcciones paginado de 32 bits, puede usarse ese modelo. Pue­ de colocarse el mismo selector en todos los registros de segmento, con Base = O y Límite establecido al máximo. El desplazamiento de la instrucción será entonces la dirección lineal y sólo se usará un espacio de direcciones, al igual que en la paginación normal. De hecho, todos los sistemas operativos actuales para Pentium operan así. OS/2 fue el único que aprovechó to­ da la potencia de la arquitectura MMU de Intel. Tomando en cuenta todo, hay que reconocer la labor de los diseñadores del Pentium. Con­ siderando las metas poco compatibles de implementar paginación pura, segmentación pura y segmentos paginados, mantener la compatibilidad con el 286, y hacerlo todo de manera efi­ ciente, el diseño resultante es sorprendentemente sencillo y prolijo. Aunque hemos cubierto en forma somera toda la arquitectura de la memoria virtual del Pen­ tium, vale la pena hablar un poco de la protección, pues este tema está íntimamente relacionado con la memoria virtual. El esquema de memoria virtual sigue de cerca el modelo de MULTICS, y lo mismo sucede con el sistema de protección. Pentium maneja cuatro niveles de protección, siendo el nivel Oel más privilegiado y el nivel 3 el menos privilegiado. Éstos se muestran en la figura 4-47. En todo momento, un programa en ejecución está en un nivel dado, indicado por un campo de dos bits en su PSW. Cada segmento del sistema también tiene un nivel. Mientras un programa se limite a usar segmentos en su mismo nivel, todo funcionará bien. Se permiten los intentos de acceso a datos en un nivel más alto, pero los intentos de acceso a datos en un nivel más bajo están prohibidos y causan interrupciones de sistema. Los intentos de invocar procedimientos en un nivel distinto (más alto o más bajo) están permitidos, pero se controlan con cuidado. Para efectuar una llamada intemivel, la instrucción CALL debe conte­ ner un selector, no una dirección. Este selector designa un descriptor denominado puerta de

RkJQdWJsaXNoZXIy MjI4NDcx