Sistemas operativos modernos
20K 16K - 12K - Tabla de símbolos 8K - 4K - OK 16K 12K 12K - 8K - Arbol de análisis sintáctico 4K - OK Constantes OK 12K Segmento O Segmento 1 Segmento 2 Segmento 3 Segmento 4 Figura 4-36. Una memoria segmentada permite que cualquier tabla crezca o decrez ca con independencia de las demás. Hacemos hincapié en que un segmento es una entidad lógica de la cual tiene conocimien to el programador. Un segmento podría contener un procedimiento, un arreglo, una pila o una colección de variables escalares, pero por lo regular no contiene una mezcla de tipos distintos. Las memorias segmentadas tienen otras ventajas además de simplificar el manejo de es tructuras de datos que están creciendo o decreciendo. Si cada procedimiento ocupa un segmen to distinto e inicia en la dirección O, se simplifica mucho el enlace de procedimientos que se compilan por separado. Luego de compilar y enlazar todos los procedimientos que constituyen un programa, una llamada al procedimiento que está en el segmento n usará la dirección de dos partes (n, 0) para direccionar la palabra O(el punto de ingreso). Si el procedimiento del segmento n se modifica y recompila después, no habrá que mo dificar ningún otro procedimiento (porque no habrá cambiado ninguna dirección de inicio) aunque la nueva versión sea más grande que la anterior. Con una memoria unidimensional, los procedimientos se empacan uno tras otro, sin espacio de direcciones entre ellos. Por tan to, si cambia el tamaño de un procedimiento, podría afectar la dirección de inicio de otros procedimientos no relacionados. Esto, a su vez, requeriría modificar todos los procedimien tos que invocan a cualquiera de los que cambiaron de lugar, para incorporar su nueva direc ción de inicio. Si un programa contiene cientos de procedimientos, esta tarea puede resultar costosa. La segmentación también facilita el compartimiento de procedimientos y datos entre va rios procesos. Un ejemplo común es la biblioteca compartida. Las estaciones de trabajo mo dernas que ejecutan sistemas de ventanas avanzados a menudo tienen bibliotecas de gráficos grandes en extremo, que se incluyen en la compilación de casi todos los programas. En un sis tema segmentado, la biblioteca de gráficos puede colocarse en un segmento y varios procesos
RkJQdWJsaXNoZXIy MjI4NDcx