Memoria, Organizacion y Administracion de Memoria Virtual

Memoria Virutal

La memoria virtual permite a un software correr en un espacio de memoria que no necesariamente pertenece a la memoria disica de una computadora. para esto se debe emular un CPU que trate a toda la memoria(virtual y principal) como un bloque igual, y determinar cuando se requiere una memoria u otra. Es que el tamaño combinado de la pila, programa y datos puede exceder la memoria física disponible para ello. El S.O. mantiene en memoria aquellas partes del programa que se deben permanecer en memoria y el resto lo deja en disco, las partes entre el disco y la memoria se intercambian de modo que se vayan necesitando.
Organizacion de Memoria Virtual

 “Almacenamiento virtual” significa la capacidad de direccional un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de determinado sistema de computación.

 Los métodos más comunes de implementación son mediante:

  • Técnicas de “paginación”
  • Técnicas de “segmentación”
  • Una combinación de ambas técnicas.
 

 Las direcciones generadas por los programas en su ejecución no son, necesariamente, aquellas contenidas en el almacenamiento primario (memorial real), ya que las direcciones virtuales suelen seleccionase dentro de un número mucho mayor de direcciones que las disponibles dentro del almacenamiento primario.
PAGINACIÓN 
La paginación consiste en considerar el espacio de direcciones lógicas de cada proceso como un conjunto de bloques de tamaño consistente llamados paginas. Cada dirección lógica manejada para un proceso estará conformada por un par de valores.

La  memoria física se administra implementando bloques de tamaño consistente denominados marcos. Obviamente el tamaño de un marco debe ser igual al tamaño de una página. Por lo general  el tamaño  designado para los marcos y páginas es pequeño. Frecuentemente se diferencia entre la paginación pura y la combinación de paginación y segmentación. Las páginas se transfieren  del almacenamiento secundario al primario en bloques llamados “marcos de páginas”.

  • Tienen el mismo tamaño.
  • Comienzan en direcciones del almacenamiento real que son múltiplos enteros del tamaño fijo de la página.
  • Podrá colocarse una nueva página dentro de cualquier marco de página o celda de página disponible.

 SEGMENTACIÓN
Este método consiste en la asignación de bloques de memoria de tamaño variable, llamados segmentos. El tamaño de cada segmento será el requerido según la petición, por ejemplo el tamaño del proceso a cargar. El tamaño máximo para un segmento estará determinado por la capacidad de direccionamiento del hardware de la computadora, esto es, de cuantos bits se dispone par almacenar una dirección. El acceso a cada elemento individual (byte), en la memoria se hace mediante una dirección de memoria que se integra por dos elementos:
  • Una dirección de segmento.
  • Una  de desplazamiento.
La combinación (suma) de la dirección de segmento y la de desplazamiento generan la dirección de memoria absoluta a acceder.En los sistemas de segmentación un programa y sus datos pueden ocupar varios bloques separados de almacenamiento real.
Los bloques:
  • No necesitan ser de igual tamaño.
  • Los bloques separados no necesitan ser adyacentes.
  • Deben de estar compuestos de posiciones contiguas de almacenamiento.
  • Se complica la protección de bloques de memoria de un proceso de usuario.
  • Es más difícil limitar el rango de acceso de cualquier programa.
SISTEMAS DE PAGINACION – SEGMENTACION 
Tanto la segmentación como la paginación ofrecen significativas ventajas, algunos sistemas (multics y la serie 370 de IBM) combinan ambas técnicas en donde los segmentos tienen un tamaño múltiplo de pagina.
Este método utiliza segmentación y paginación tal y como su nombre lo indica, el proceso es el siguiente: se hace la solicitud de acceso por medio de una dirección “V” la cual contiene campos segmento, página y desplazamiento. Con el campo segmento, lo que se trata es de acceder a una tabla de segmentos, cada campo de dicha tabla apunta directamente a la tabla de paginas asignadas para este segmento conteniendo una dirección que será sumada a una dirección en la tabla asociativa para por fin formar una dirección real con el desplazamiento de “V”.Ofrecen las ventajas de las dos técnicas de organización del almacenamiento virtual el tamaño de los segmentos es múltiplo del de las paginas. No es necesario que todas las páginas de un segmento se encuentren al mismo tiempo en el almacenamiento primario. 
    
Administracion de Memoria Virtual 
Es un método mediante el cual, un sistema operativo simula tener más memoria principal que la que existe físicamente. Para implementar la memoria virtual se utiliza un medio de almacenamiento secundario de alta velocidad de acceso, generalmente en disco duro de la maquina. Un sistema de memoria virtual se implementa utilizando paginación como método de administración de memoria básica y algún mecanismo de intercambio.
La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una maquina. Esta “ilusión” permite que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria física. 
ESTRATEGIAS DE ADMINISTRACION DE LA MEMORIA VIRTUAL 
Estrategias de Obtención: Determinan cuando se debe de transferir una página o un segmento de almacenamiento secundario al primario. Las estrategias de obtención por demanda esperan a que un proceso en ejecución haga referencia a una página o un segmento antes de traer la página o el segmento de almacenamiento primario.
 Estrategias de Colocación: Determinan en que lugar del almacenamiento primario se debe colocar una página o un segmento entrante. Una página entrante se puede colocar en cualquier marco de página disponible.
Estrategias de Reemplazo: Sirven para decidir cual página o segmento se debe desplazar para dar espacio a una página o segmento entrante cuando está completamente ocupado el almacenamiento primario.

2 comentarios:

  1. Cuál consideras que es mejor, la paginación o la segmentación?

    ResponderEliminar
  2. La segmentacion, porque divide al programa en unidades logicas y es de tamaño variable segun lo que sea cada segmento.

    ResponderEliminar