Читать книгу Desarrollo y optimización de componentes software para tareas administrativas de sistemas. IFCT0609 - José Luis Villada Romero - Страница 15

Memoria virtual

Оглавление

Cuando la memoria era muy cara y, por lo tanto, un equipo informático disponía de una cantidad muy reducida de memoria, era la pericia del programador la que permitía aprovechar al máximo los recursos que usaban los programas. Fue entonces cuando se originó el mecanismo de overlay. Se trataba de una técnica que dividía un programa en varias partes y la ejecución del mismo se realizaba como una secuencia sucesiva de esas partes: primero se cargaba en memoria una parte y, tras su ejecución, continuaba con la carga de la siguiente.

Pero esta técnica no solucionaba el problema de la limitación de memoria, por lo que se intensificaron los esfuerzos por encontrar un mecanismo general que permitiera la flexibilidad necesaria para el programador. Es el origen de la memoria virtual.

La memoria virtual permite proporcionar a un proceso un mapa de memoria mucho mayor que la memoria física existente en el sistema.

Se han visto algunos ejemplos de memoria virtual en los esquemas de gestión de memoria anteriores, como es el caso de la paginación y la segmentación.

Cuando no se dispone del suficiente espacio en memoria principal, el sistema operativo guarda aquellas partes del programa que exceden la cantidad de memoria. Cuando se libera el espacio suficiente y la ejecución del programa lo requiere, se translada a la memoria principal el espacio de memoria necesaría para la ejecución del programa.

El sistema de memoria virtual consiste en que cada proceso crea que tiene todo el espacio de memoria disponible, de manera que existe un desacoplamiento entre el espacio de direcciones que usa el programa (direcciones virtuales) y las direcciones físicas donde realmente se almacenan los datos (direcciones físicas). Los sistemas de memoria virtual utilizan la división de los programas en páginas o fragmentos. Estas páginas no necesitan encontrarse físicamente contiguas.

Por ejemplo, cuando un proceso requiere una variable almacenada en la dirección 1000, es necesaria una traducción de esta dirección a la dirección física que realmente contiene el dato. Se utiliza una estructura denominada tabla de páginas para llevar a cabo esa traducción. Cada proceso posee varias tablas asociadas, correspondientes a distintos segmentos del programa.



Actividades

5.¿Por qué es necesaria una traducción entre direcciones virtuales y direcciones físicas en un esquema de memoria virtual? Razone la respuesta.

Desarrollo y optimización de componentes software para tareas administrativas de sistemas. IFCT0609

Подняться наверх