Sistemas operativos modernos
4.6.4 Espacios de instrucciones y de datos separados Casi todas las computadoras tienen un solo espacio de direcciones que contiene tanto progra mas como datos, como se muestra en la figura 4-30a. Si este espacio de direcciones es lo bas tante grande, todo funciona de maravilla. Sin embargo, en muchas ocasiones es demasiado pequeño, y ello obliga a los programadores a hacer malabarismos para que todo quepa en el es pacio de direcciones. Datos Programa Espacio de direcciones único 232 Espacio I Espacio D } Página no usada Datos Figura 4-30. a) Un espacio de direcciones, b) Espacios de direcciones I y D separados. Una solución, que se usó por primera vez en la PDP-11 (de 16 bits), es tener espacios de direcciones distintos para las instrucciones (texto del programa) y los datos. Estos se llaman espacio I y espacio D, respectivamente. Cada espacio de direcciones va desde Ohasta algún máximo, por lo regular - 1 o 23^ - 1 . En la figura 4-30b se muestran ambos espacios. El enlazador debe estar enterado del uso de espacios I y D separados, porque en tal caso los da tos se reubican en la dirección virtual Oen vez de comenzar después del programa. En una computadora con este diseño, ambos espacios de direcciones pueden paginarse aparte. Cada uno tiene su propia tabla de páginas, con su propia correspondencia entre páginas virtuales y marcos de página físicos. Cuando el hardware quiere traer una instrucción, sabe que debe usar el espacio I y la tabla de páginas del espacio I. Asimismo, las referencias a los da tos deben pasar por la tabla de páginas del espacio D. Fuera de esta distinción, tener espacios I y D separados no introduce complicaciones especiales y sí duplica el espacio de direcciones disponible. 4.6.5 Páginas compartidas Otro aspecto del diseño es el compartimiento. En los sistemas multiprogramados grandes es común que varios usuarios estén ejecutando el mismo programa al mismo tiempo. Es a todas luces más eficiente compartir las páginas, en vez de tener varias copias de la misma página al mismo tiempo en la memoria. Un problema es que no todas las páginas pueden compartirse. En particular, las páginas que sólo pueden leerse, como el texto de programa, sí pueden com partirse, pero las páginas de datos no.
RkJQdWJsaXNoZXIy MjI4NDcx