Está en la página 1de 11

TECNOLOGICO NACIONAL DE MÉXICO

INSTITUTO TECNOLÓGICO DE PUEBLA

Nombre:
Pérez Sánchez Francisco Manuel
No. De control: 18221794
Especialidad: TIC´S

Nombre de la materia:
Arquitectura de Computadoras

Unidad

Memoria Virtual

Horario:
Lunes y miércoles 11:00-13:00

Nombre del docente:


Rafael Meza García

SEMESTRE ENERO – JUNIO 2021


INTRODUCCIÓN
Toda CPU independientemente de cuál sea su arquitectura, tiene por lo general dos tipos
de pines para comunicarse con la memoria RAM del sistema

 Pines de Datos desde donde se trasmiten los datos desde y hacia la memoria.

 Pines de Direccionamiento donde se le indica a la memoria donde se encuentra el


dato.

¿Pero que indica el direccionamiento? La memoria RAM físicamente se organiza en una


tabla y cuando accedemos a un dato en concreto de forma directa, lo que hacemos es
marcar en que fila y columna se encuentra, si por ejemplo nuestro direccionamiento es de
6 bits entonces la memoria podrá tener 64 elementos (26) de los cuales unos 3 bits me
dirán la fila y otros 3 bits me dirán la columna de donde se encuentra el dato.

OBJETIVO GENERAL

Recopilar información sobre los sistemas de memoria virtual en general sin atender el
tipo de sistema operativo con el que se trabaje.

OBJETIVOS ESPECÍFICOS

 Identificar el sistema virtual de memoria que trabaja de forma más eficiente


mediante la medición del tiempo de latencia para cargar un archivo.
 Recopilar información sobre la clasificación de los sistemas de memoria virtual y
describir cómo es el funcionamiento de cada uno de ellos en la gestión de esta.
 Describir la relación y la forma en la que interactúan la memoria virtual y la
memoria física.
 Identificar las ventajas y las posibles desventajas con el uso de sistemas de
memoria virtual

UTILIDAD Y DEFINICIÓN DE LA MEMORIA VIRTUAL


Según el diccionario y el uso común, virtual:

Se aplica a la cosa que existe, pero no como se aparenta.

En términos de la memoria que usa un proceso con sus peticiones de acceso, podemos
decir que sólo un proceso (tal vez el sistema operativo) es el que usa las celdas con la
numeración solicitada por el proceso; todos los demás procesos usan un espacio de
direcciones lógicas o virtuales. Sin embargo, es común referirse a la memoria virtual como
aquella memoria aloja los contenidos de un proceso que no están en la memoria RAM. Esto
es,

Memoria total usada por un proceso = Porción de memoria RAM usada + Espacio usado en
memoria secundaria (llamado memoria virtual)

La técnica de la memoria virtual es una solución al problema de memoria insuficiente en la


que un proceso puede estar en ejecución, o listo para ejecutarse, cuando sólo una parte de
él reside en la memoria principal; el resto, que de momento no se usa, es almacenado en
una porción de la memoria secundaria.

Cuando la ejecución del proceso requiera la parte que se mantenía en la memoria


secundaria, esa parte debe traerse al espacio que deje libre un bloque de algún programa
que en ese momento tendrá que pasarse a la memoria secundaria.

La memoria virtual se utiliza en dos tipos de situaciones:

 El espacio de direcciones de un programa es mayor que el espacio en RAM.


 Se requiere alojar en memoria programas que, siendo más pequeños que la
memoria, requieren en total un espacio mayor que el de la RAM.

En ambos casos tenemos un espacio de direcciones mayor al espacio físico; claramente,


una parte de ese espacio de direcciones es virtual.
El direccionamiento virtual no funciona apuntando a direcciones de memoria de manera
directa, sino que utiliza direcciones virtuales, las cuales se organizan por páginas de
memoria.

Principio de funcionamiento de la memoria virtual

 En un computador con memoria virtual (Mv) las direcciones de los programas


(generadas por la CPU) hacen referencia a un espacio mayor que el espacio físico
realmente disponible en la memoria principal o memoria física (Mp).
 Los programas operan virtualmente con un tamaño físico de memoria principal
mucho mayor que el realmente disponible.
 Hay que diferenciar entre el espacio de direcciones virtuales generado por la C P U
y el espacio de direcciones físicas o reales determinado por el tamaño de la
memoria física.
 El espacio virtual se soporta sobre un disco con la ayuda de un mecanismo de
traducción que genera la dirección física de memoria principal a partir de la virtual.
 Si la palabra referenciada no está en Mp habrá que trasladar un bloque de Mv
(disco) a Mp.
 Los sistemas de Mv pueden clasificarse atendiendo al tamaño del bloque que se
transfiere entre Mp y memoria secundaria:
1. Memoria virtual paginada: bloques de igual tamaño, la página
2. Memoria virtual segmentada: bloques de distinto tamaño, el segmento
3. Memoria virtual segmentada/paginada: segmentos de un número variable de
páginas.
Protección de memoria con MV

 Con un mecanismo de memoria virtual un programa sólo puede leer y escribir en l
a zona de Mpque le es asignada.
 Cada programa se compila con su propio espacio de direcciones, lo que implica
que la misma dirección virtual (la proporcionada por el procesador) de dos
programas diferentes se cargue en direcciones físicas diferentes.
 La memoria virtual traduce el espacio de direcciones virtuales de un programa al
espacio de direcciones físicas.
 Esta traducción protege el espacio de direcciones de un programa de los accesos i
ndebidos de otros programas.

MEMORIA VIRTUAL CON PAGINACIÓN

La implementación de la memoria virtual utiliza la división de la memoria lógica, por


ejemplo, la paginación o la segmentación, aunque también puede usar una combinación
de ambas. En esta sección trataremos principalmente la implementación con paginación.

La siguiente figura ilustra la implementación de la memoria virtual con paginación; cada


entrada de la tabla de páginas es aumentada. En la figura se muestran bits adicionales;
uno de ellos puede indicar si la página está presente o no en RAM. Otro de ellos puede
expresar si la página ha sido modificada desde que se cargó en RAM; posteriormente
consideraremos otros casos. La representación muestra un ejemplo de ubicación de una
página en RAM y otro de una página en el disco duro.
El disco tendrá una zona dedicada al intercambio llamada espacio de intercambio (swap).
Puede ser una partición del disco (Linux: partición Swap), o un archivo (Linux: archivo
Swap; Windows: archivo de intercambio swapfile.sys o archivo de paginación
pagefile.sys). El espacio de intercambio tiene como tamaño de referencia el tamaño de la
RAM, aunque puede elegirse otro valor.

Algunos programas exigen un mínimo para el tamaño de la memoria virtual que está en
disco.
INTERACCIÓN ENTRE LA MEMORIA VIRTUAL Y LA MEMORIA CACHE

La memoria virtual debe interactuar con la memoria cache (no con la cache que
implementa el TLB, sino con la caché de la memoria principal).

Para traducir una DV el sistema de memoria consulta el TLB para comprobar si la


entrada de la TP se encuentra en él. Si es así, se genera la dirección real (física),
combinando el NPF con el DP. Si no, se accede a la TP en busca del elemento
correspondiente. Una vez que se ha generado la dirección física, compuesta por una
etiqueta y un número de conjunto, se consulta la cache para ver si el bloque que
contiene la palabra referenciada se encuentra en dicho conjunto. Si es así, se envía al
procesador. Si no, se produce un fallo de cache y se busca la palabra en memoria
principal.
Por tanto, la dirección virtual debe pasar primero por el TLB antes de que la dirección
física pueda acceder a la cache, lo que alarga el tiempo de acierto. Este mecanismo se
puede acelerar utilizando dos alternativas: a) Acceder en paralelo (simultáneamente) al
TLB para buscar el NPF y al directorio de la cache para buscar el bloque, y b) Utilizar
caches con direcciones virtuales

MEMORIA VIRTUAL SEGMENTADA

Mientras que la paginación es transparente para el programador, y le proporciona un


espacio mayor de direcciones, la segmentación es normalmente visible para el
programador, y proporciona una forma lógica de organizar los programas y los datos, y
asociarle los privilegios y atributos de protección.

La segmentación permite que el programador vea la memoria constituida por múltiples


espacios de direcciones o segmentos. Los segmentos tienen un tamaño variable,
dinámico.

Usualmente, el programador o el sistema operativo asignará programas y datos a


segmentos distintos. Puede haber segmentos de programa distintos para varios tipos
de programas, y también distintos segmentos de datos. Se pueden asignar a cada
segmento derechos de acceso y uso. Las direcciones virtuales estarán constituidas en
este caso por un número de segmento (NS) y un desplazamiento dentro del segmento
(DP). El proceso de traducción de dirección virtual a física es análogo al de la memoria
virtual paginada, con la diferencia que ahora tenemos una tabla de segmentos (TS)
cuyas entradas (denominadas también descriptores de segmento) contienen, además
de los bits de control y la dirección real del segmento, la longitud L de este, ya que los
segmentos tienen longitud variable. En la siguiente figura hemos representado
esquemáticamente el proceso de traducción.
MEMORIA CON SEGMENTOS PAGINADOS

Como vimos en el apartado anterior, la segmentación presenta una serie de propiedades


ventajosas para el programador, sin embargo, la paginación proporciona una forma más
eficiente de gestionar el espacio de memoria. Para combinar las ventajas de ambas,
algunos sistemas permiten una combinación de ambas, es decir, un sistema virtual con
segmentos paginados. El mecanismo de traducción de DVs a DFs no es más que la
composición del mecanismo de la memoria segmentada y el de la paginada, tal como se
muestra en la siguiente figura:
CONCLUSIÓN

BIBIOGRAFÍA:

 Estructura y diseño de Computadores David A. Patterson, John L.


Hennessy Ed. Reverté S.A. 2000
 Luis Duran Rodríguez, El gran libro del PC
interno/Alfaomega Marcombo, 2007.
 Nicholas Carter, Arquitectura de computadores 1a. Edición, McGraw-
Hill 2004.
 A.S. Tanenbaum / Organización de computadoras, enfoque
estructurado / Prentice Hall

También podría gustarte