O
INSTITUTO TECNOLÓGICO DE TUXTEPEC
I NS
TIT
U
TOTECNOLOGICO DE TUXT
EP
EC
SISTEMAS OPERATIVOS 1
UNIDAD 3: ADMINISTRACIÓN DE MEMORIA.
ADMINISTRACIÓN DE MEMORIA.
CATEDRÁTICO: M.S.C JOSÉ ALBERTO VILLALOBOS SERRANO.
JUAN ANAYA MANZANO.
ING. INFORMATICA
SEMESTRE: 4°
SAN JUAN BAUTISTA TUXTEPEC, OAXACA A 17 DE ABRIL DE 2015.
Introducción.
La memoria virtual permite ejecutar procesos que requieren más memoria que la
disponible en el sistema, manteniendo en memoria principal solo aquella memoria
que el proceso esté utilizando y el resto en disco. De esta manera se evita la
preocupación por las limitaciones de la memoria física.
La ilusión de la memoria virtual está soportada por el mecanismo de traducción de
memoria, junto con una gran cantidad de almacenamiento rápido en disco duro.
Así en cualquier momento el espacio de direcciones virtual hace un seguimiento
de tal forma que una pequeña parte de él, está en memoria real y el resto
almacenado en el disco, y puede ser referenciado fácilmente.
Definición:
Memoria virtual (Fotheringham, 1961) es un método que permite direccional un
espacio de almacenamiento mucho mayor que el disponible en la memoria
principal. Para ello, el sistema operativo usa memoria a dos niveles y particiona los
trabajos en bloques, manteniendo en memoria principal aquellos bloques que se
están usando.
Implementación.
La implementación de memoria virtual se realiza a través de la técnica de
paginación bajo demanda en la que los procesos residen en un dispositivo de
disco y son puestos en memoria principal cuando es necesario cargarlos para
ejecutar. La carga del proceso en memoria no es total, sino que se implementa un
cargador llamado "lazy swapper" que cargara las paginas según se vayan
necesitando.
En este ejemplo se tiene que el proceso tiene para usar 8 páginas, de las cuales
solo usa 6, y de las cuales solo 3 están en memoria principal (A, C y F). Todas las
páginas estarán en el disco (incluidas aquellas que también están en memoria
principal).
Acceso a Memoria
El acceso a memoria genera la siguiente secuencia de pasos:
1. Verificar que el proceso referencia una página correcta dentro de su
espacio
virtual, ya que no todas las direcciones dentro de su espacio son válidas.
Por
ejemplo, el acceso fuera de un arreglo puede generar un acceso a una
página
virtual que no fue asignada al proceso. Si el proceso referencia a una
página
incorrecta, se genera un error y el proceso termina.
2. Si el acceso fue correcto, se busca en la tabla de páginas el frame
correspondiente, verificando el bit de validez-invalidez.
3. Si el bit es de validez se accede al frame correspondiente y se termina el
acceso.
4. Sino se genera el trap de page fault, que involucra los siguientes pasos:
a) Se busca frame libre en memoria principal, si no hay se
ejecuta el algoritmo de reemplazo.
b) Se lee de disco la página a cargar, y se carga en el frame
obtenido en el paso anterior.
c) Se actualiza la tabla de páginas, indicando que la página está
disponible en memoria principal.
d) Se devuelve el control a la instrucción que fue interrumpida
por el PF.
Si se aplica este método se tendrá un sistema puro de paginación bajo demanda.
Tener en cuenta que para poder llevarlo a cabo se precisa una tabla de páginas y
espacio swap de disco.
Algoritmos de remplazo
La necesidad de traer a memoria principal una página en una memoria principal
llena, genera la búsqueda de un frame a remplazar, mediante un algoritmo de
remplazo. El mal algoritmo de remplazo puede generar un impacto significativo de
degradación del sistema. Cuando se elige un frame a remplaz, este será puesto
en memoria swap, y ante un eventual uso en el futuro, volverá a memoria principal
a través de un page fault.
Los pasos a seguir cuando remplazamos frames son los siguientes:
Elegir la víctima mediante algún algoritmo de remplazo
Escribir la víctima en memoria swap (swap out) y ajustar la tabla de páginas
Cargar la página en el frame correspondiente (swap in)
Ajustar la tabla de página.
Las diferentes organizaciones de almacenamiento virtual generalmente
implementadas son:
Paginación.
Segmentación.
Segmentación y paginación.
Las estrategias para la administración de sistemas de almacenamiento virtual
condicionan la conducta de los sistemas de almacenamiento virtual que operan
según esas estrategias.
Estrategias de administración de la memoria virtual.
Estrategias del mejor ajuste: Un trabajo que entre en el sistema se colocará en el
espacio vació del almacenamiento principal en el que quepa mejor y que deje la
menor cantidad posible de espacio sin utilizar.
Estrategias del primer ajuste:
Un trabajo que entre en el sistema se colocara en el almacenamiento principal en
el primer vació disponibles lo bastante grande para contenerlo.
Estrategias del peor ajuste:
Consiste en colocar un programa en el almacenamiento primario en el espacio
vació donde peor se ajusta es decir en el espacio más grande posible.
Estrategias de obtención:
Determina cuando se debe 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
a un segmento antes de traer la página o el segmento de almacenamiento
primario. Los esquemas de obtención anticipada intentan determinar por
adelantado a cuales paginas o segmentos hará referencia un proceso.
Estrategias de colocación:
Determinan en que lugar del almacenamiento primario se debe colocar una pagina
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 esta completamente ocupado el
almacenamiento primario.
Conclusión.
La memoria virtual ha llegado a ser un componente esencial de la mayoría de los
sistemas operativos actuales. Y como en un instante dado, en la memoria sólo se
tienen unos pocos fragmentos de un proceso dado, se pueden mantener más
procesos en la memoria. Es más, se ahorra tiempo, porque los fragmentos que no
se usan no se cargan ni se descargan de la memoria. Sin embargo, el sistema
operativo debe saber cómo gestionar este esquema.