Vous êtes sur la page 1sur 25

UNIVERSIDAD JUÁREZ AUTÓNOMA DE

TABASCO
DIVISION ACADEMICA DE INFORMATICA Y SISTEMA

UNIDAD No. 4
Administración de la Memoria

PROFESOR:

ANGELA JIMENEZ GONZALEZ

GRUPO:

4B8

ALUMNOS:

FREDY MAY RODRÍGUEZ


GABRIELA LOPÉZ MARTINEZ
JOSÉ JESÚS DE LA CRUZ RODRÍGUEZ
INTRODUCCIÓN
La memoria es uno de los principales recursos de la computadora, la
cual debe de administrarse con mucho cuidado. Aunque actualmente la
mayoría de los sistemas de cómputo cuentan con una alta capacidad
de memoria, de igual manera las aplicaciones actuales tienen también
altos requerimientos de memoria, lo que sigue generando escasez de
memoria en los sistemas multitarea y/o multiusuario.
La parte del sistema operativo que administra la memoria se llama
administrador de memoria y su labor consiste en llevar un registro de
las partes de memoria que se estén utilizando y aquellas que no, con el
fin de asignar espacio en memoria a los procesos cuando éstos la
necesiten y liberándola cuando terminen, así como administrar el
intercambio entre la memoria principal y el disco en los casos en los que
la memoria principal no le pueda dar capacidad a todos los procesos
que tienen necesidad de ella.
Los sistemas de administración de memoria se pueden clasificar en dos
tipos: los que desplazan los procesos de la memoria principal al disco y
viceversa durante la ejecución y los que no.
El propósito principal de una computadora es el de ejecutar programas,
estos programas, junto con la información que accesan deben de estar
en la memoria principal (al menos parcialmente) durante la ejecución.
Para optimizar el uso del CPU y de la memoria, el sistema operativo
debe de tener varios procesos a la vez en la memoria principal, para lo
cual dispone de varias opciones de administración tanto del procesador
como de la memoria. La selección de uno de ellos depende
principalmente del diseño del hardware para el sistema. A continuación,
se observarán los puntos correspondientes a la administración de la
memoria. La parte del sistema operativo que se encarga de la memoria
se llama administrador de memoria.
Índice
INTRODUCCIÓN ............................................................................................................. 1
4.1 Memoria real ........................................................................................................ 3
4.1.1 Administración De Almacenamiento..................................................................... 3
4.1.2 Jerarquía ................................................................................................................... 4
4.1.3 Estrategia De Administración De Memoria .......................................................... 5
4.1.4 Asignación Contigua Y No Contigua .................................................................... 5
4.1.5 Multiprogramación De Partición Fija, Partición Variable Con Intercambio De
Almacenamiento ............................................................................................................... 8
4.2. Organización de Memoria Virtual .................................................................. 12
4.2.1. Evaluación de las Organizaciones de Almacenamiento.................................. 12
4.2.2. Paginación ............................................................................................................. 13
4.2.3. Segmentación ....................................................................................................... 13
4.2.4. Sistemas de Paginación ...................................................................................... 15
4.3. Administración de Memoria Virtual ............................................................... 15
4.3.1. Estrategia de Administración.............................................................................. 16
4.3.2. Técnicas de reemplazo de páginas .................................................................... 16
4.3.3. Paginación por demanda ..................................................................................... 21
4.3.4. Paginación anticipada.......................................................................................... 21
4.3.5. Liberación de página............................................................................................ 21
4.3.6. Tamaño de página ................................................................................................ 22
CONCLUSIÓN ............................................................................................................... 23
Bibliografía ............................................................................................................... 24
4.1 Memoria real
La organización y administración de a memoria principal, memoria primaria o
memoria real de un sistema ha sido y es uno de los factores mas importantes en el
diseño de los S.O.
Los términos memoria y almacenamiento se consideran equivalentes
Los programas y datos deben estar en el almacenamiento principal para:
 Poder ejecutarlo.
 Referenciarlo directamente
Se considera almacenamiento secundario o almacenamiento auxiliar al
generalmente soportado en discos. Los hechos demuestran que generalmente los
programas crecen en requerimientos de memoria tan rápido como las memorias:
 Ley de Parkinson parafraseada: Los programas se desarrollan para ocupar
toda la memoria disponible para ello.

4.1.1 Administración De Almacenamiento


La parte del S.O. que administra la memoria se llama administrador de la memoria
• Lleva un registro de las partes de memoria que se están utilizando y de
aquellas que no.
• Asigna espacio en la memoria a los procesos cuando estos los necesitan.
Libera espacio de la memoria asignada a procesos que han terminado.
Magister David Luis la Red Martínez. SISTEMAS OPERATIVOS.pdf

Objetivos del Administrador de Memoria:


 Ubicar, reemplazar, cargar y descargar procesos en la memoria principal.
 Proteger la memoria de acceso indeseados (accidentales o intencionados).
 Permitir la compartición de zonas de memoria (indispensable para lograr la
cooperación de procesos).
Requisitos del Administrador de Memoria:
 Reubicación. Permitir el recalculo de direcciones de memoria de un proceso
reubicado.
 Protección. Evitar el acceso a posiciones de memoria sin el permiso expreso.
(no direcciones absolutas).
 Compartición. Permitir a procesos diferentes acceder a la misma porción de
memoria.
 Organización Lógica. Permitir que los programas se escriban como módulos
compilables y ejecutables por separado.
 Organización Física. Permitir el intercambio de datos en la memoria primaria
y secundaria
http://operativos2014.blogspot.mx/2014/05/administracion-de-memoria-en-los.html

4.1.2 Jerarquía
Los programas y datos tienen que estar en la memoria principal para poder
ejecutarse o ser referenciados.
Los programas y datos que no son necesarios de inmediato pueden mantenerse en
el almacenamiento secundario.
El almacenamiento principal es más costoso y menor que el secundario, pero de
acceso más rápido.
Los sistemas con varios niveles de almacenamiento requieren destinar recursos
para administrar el movimiento de programas y datos entre niveles.

Fundamentos de Sistemas Operativos


Un nivel adicional es el “caché” o memoria de alta velocidad, que posee las
siguientes características:
 Es más rápida y costosa que la memoria principal.
 Impone al sistema un nivel más de traspaso:
 Los programas son traspasados de la memoria principal al caché antes de
su ejecución.
 Los programas en la memoria caché ejecutan mucho más rápido que en la
memoria principal.
Al utilizar memoria caché se espera que:
La sobrecarga que supone el traspaso de programas de un nivel de memoria a otro
sea mucho menor que la mejora en el rendimiento obtenida por la posibilidad de
una ejecución mucho más rápida en la caché.
Unidad 3.pdf

4.1.3 Estrategia De Administración De Memoria


Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento
principal. Se dividen en las siguientes categorías:
 Las “estrategias de búsqueda” están relacionadas con el hecho de cuándo
obtener el siguiente fragmento de programa o de datos para su inserción en
la memoria principal.
 En la “búsqueda por demanda” el siguiente fragmento de programa o
de datos se carga al almacenamiento principal cuando algún
programa en ejecución lo referencia.
Se considera que la “búsqueda anticipada” puede producir un mejor rendimiento del
sistema.
 Las “estrategias de colocación” están relacionadas con la determinación del
lugar de la memoria donde se colocará (cargará) un programa nuevo.
 Las “estrategias de reposición” están relacionadas con la determinación de
qué fragmento de programa o de datos desplazar para dar lugar a los
programas nuevos.
http://florysel.blogspot.mx/2012/11/323-estrategia-de-administracion-de.html

4.1.4 Asignación Contigua Y No Contigua


En la “asignación contigua” cada programa ocupa un bloque contiguo y sencillo de
localizaciones de almacenamiento.

En la “asignación no contigua” un programa se divide en varios bloques


o “segmentos” que pueden almacenarse en direcciones que no tienen que ser
necesariamente adyacentes, por lo que es más compleja pero más eficiente que la
asignación continua.
Asignación Contigua de Almacenamiento de Un Solo Usuario

Se consideran S. O. que ya poseen desarrollado el “sistema de control de entrada


/ salida”: IOCS: input / output control system.

El tamaño de los programas está limitado por la cantidad de memoria principal, pero
se puede superar este límite con técnicas de “recubrimientos”, con las siguientes
características
 Si una sección particular del programa ya no es necesaria, se carga otra
sección desde el almacenamiento secundario ocupando las áreas de
memoria liberadas por la sección que ya no se necesita.
 La administración manual por programa del recubrimiento es complicada y
dificulta el desarrollo y el mantenimiento.

Protección en los sistemas de un solo usuario

El usuario tiene un completo control sobre la totalidad del almacenamiento principal:


 El almacenamiento se divide en porciones que contienen el S. O., el
programa del usuario y una porción sin usar.
 El programa del usuario podría destruir áreas del S. O. que podrían:
 Detener el sistema.
 Producir salidas erróneas.

 El S. O. debe estar protegido contra el proceso usuario:


 La protección se instrumenta mediante un “registro de
límites” incorporado a la CPU:
 Contiene la dirección de la instrucción más alta utilizada por el
S. O.
 Si se intenta ingresar al S. O. la instrucción es interceptada y el
proceso finaliza.

Procesamiento por lotes de flujo único


Los sistemas de un solo usuario se dedican a un trabajo durante más tiempo del
que toma su ejecución. Los trabajos requieren de:
 “tiempo de instalación”: el necesario para preparar el entorno operativo
requerido.
 “tiempo de descarga”: el necesario para desmontar el entorno operativo que
fue requerido.
 Automatizar la “transición de trabajo a trabajo” reduce la cantidad de tiempo
perdido entre trabajos.
 Surgieron los sistemas de “procesamiento por lotes”.
En el “procesamiento por lotes de flujo único” los trabajos se agrupan
en “lotes” encolándose para su ejecución.
El “procesador de flujos de trabajos”:
 Lee las instrucciones del “lenguaje de control de trabajos”.
 Facilita la preparación del trabajo siguiente.
 Emite instrucciones al operador del sistema.
 Automatiza funciones anteriormente manuales.
 Cuando finaliza un trabajo efectúa las “operaciones de
mantenimiento” apropiadas para facilitar la transición del siguiente trabajo.

4.1.5 Multiprogramación De Partición Fija, Partición Variable Con


Intercambio De Almacenamiento

Multiprogramación de Partición Fija


Los sistemas de un solo usuario desperdician gran cantidad de recursos
computacionales debido a que:
 Cuando ocurre una petición de e / s la CPU normalmente no puede continuar
el proceso hasta que concluya la operación de e / s requerida.
 Los periféricos de e / s frenan la ejecución de los procesos ya que
comparativamente la CPU es varios órdenes de magnitud más rápida que los
dispositivos de e / s.
Los sistemas de “multiprogramación” permiten que varios procesos usuarios
compitan al mismo tiempo por los recursos del sistema:
 Un trabajo en espera de e / s cederá la CPU a otro trabajo que esté listo
para efectuar cómputos.
 Existe paralelismo entre el procesamiento y la e / s.
 Se incrementa la utilización de la CPU y la capacidad global de ejecución
del sistema.
 Es necesario que varios trabajos residan a la vez en la memoria principal.

Multiprogramación de Partición Fija: Traducción y Carga Absolutas


Las “particiones” del almacenamiento principal:
 Son de tamaño fijo.
 Alojan un proceso cada una.
 La CPU se cambia rápidamente entre los procesos creando la ilusión de
simultaneidad.

Los trabajos se traducían con ensambladores y compiladores absolutos para ser


ejecutados solo dentro de una partición específica el S. O. resulta de
implementación relativamente sencilla pero no se optimiza la utilización de la
memoria.
Multiprogramación de Partición Fija: Traducción y Carga Relocalizables
Los compiladores, ensambladores y cargadores de relocalización:
 Se usan para producir programas relocalizables que puedan ser ejecutados
en cualquier partición disponible de tamaño suficiente para aceptarlos
 Son más complejos que los absolutos.
 Mejoran la utilización del almacenamiento.
 Confieren más flexibilidad en el armado de la carga de procesos.

Protección en los Sistemas de Multiprogramación.


Si se utiliza asignación contigua de memoria la protección suele implementarse con
varios “registros de límites”. Los extremos superior e inferior de una partición
pueden ser:
 Delineados con dos registros.
 Indicados el límite inferior o superior y el tamaño de la partición o región.

Fragmentación en la Multiprogramación de Partición Fija


La “fragmentación de almacenamiento” ocurre en todos los sistemas
independientemente de su organización de memoria. En los S. O. de
multiprogramación de partición fija la fragmentación se produce cuando:

 Los trabajos del usuario no llenan completamente sus particiones


designadas.
 Una partición permanece sin usar porque es demasiado pequeña para
alojar un trabajo que está en espera.
Multiprogramación de Partición Variable

Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben
superar el espacio disponible de memoria. No hay límites fijos de memoria, es decir
que la partición de un trabajo es su propio tamaño.
Se consideran “esquemas de asignación contigua”, dado que un programa debe
ocupar posiciones adyacentes de almacenamiento.
Los procesos que terminan dejan disponibles espacios de memoria principal
llamados “agujeros”:
 Pueden ser usados por otros trabajos que cuando finalizan dejan
otros “agujeros “menores.
 En sucesivos pasos los “agujeros” son cada vez más numerosos, pero más
pequeños, por lo que se genera un desperdicio de memoria principal.
Combinación de agujeros (áreas libres)
Consiste en fusionar agujeros adyacentes para formar uno sencillo más grande.
Se puede hacer cuando un trabajo termina y el almacenamiento que libera tiene
límites con otros agujeros.

Compresión o Compactación de Almacenamiento


Puede ocurrir que los agujeros (áreas libres) separados distribuidos por todo el
almacenamiento principal constituyan una cantidad importante de memoria:
 Podría ser suficiente (el total global disponible) para alojar a procesos
encolados en espera de memoria.
 Podría no ser suficiente ningún área libre individual.

La técnica de compresión de memoria implica pasar todas las áreas ocupadas del
almacenamiento a uno de los extremos de la memoria principal:
 Deja un solo agujero grande de memoria libre contigua.
 Esta técnica se denomina “recogida de residuos”

Principales desventajas de la compresión


Consume recursos del sistema
El sistema debe detener todo mientras efectúa la compresión, lo que puede afectar
los tiempos de respuesta.
Implica la relocalización (reubicación) de los procesos que se encuentran en la
memoria:
 La información de relocalización debe ser de accesibilidad inmediata.
Una alta carga de trabajo significa mayor frecuencia de compresión que incrementa
el uso de recursos.

Estrategias de Colocación del Almacenamiento


Se utilizan para determinar el lugar de la memoria donde serán colocados los
programas y datos que van llegando y se las clasifica de la siguiente manera:
 “Estrategia de mejor ajuste”:
 Un trabajo nuevo es colocado en el agujero en el cual quepa de forma
más ajustada:
 Debe dejarse el menor espacio sin usar.
 “Estrategia de primer ajuste”:
 Un trabajo nuevo es colocado en el primer agujero disponible con
tamaño suficiente para alojarlo.
 “Estrategia de peor ajuste”:
 Consiste en colocar un programa en el agujero en el que quepa de la
peor manera, es decir en el más grande posible:
 El agujero restante es también grande para poder alojar a un
nuevo programa relativamente grande.
Multiprogramación con Intercambio de Almacenamiento
En el esquema de “intercambio” los programas del usuario no requieren permanecer
en la memoria principal hasta su terminación.
Una variante consiste en que un trabajo se ejecuta hasta que ya no puede
continuar:
 Cede el almacenamiento y la CPU al siguiente trabajo.
 La totalidad del almacenamiento se dedica a un trabajo durante un breve
período de tiempo.
 Los trabajos son “intercambiados”, dándose que un trabajo puede ser
intercambiado varias veces antes de llegar a su terminación.
Es un esquema razonable y eficiente para un número relativamente reducido de
procesos de usuarios.
Los sistemas de intercambio fueron los predecesores de los sistemas de
paginación. El rendimiento de los sistemas de intercambio mejora al reducir
el tiempo de intercambio:
 Manteniendo al mismo tiempo varias “imágenes de usuario o imágenes de
memoria” en la memoria principal.
 Retirando una imagen de usuario de la memoria principal solo cuando es
necesario su almacenamiento para una nueva imagen.
 Incrementando la cantidad de memoria principal disponible en el sistema.
Las imágenes de usuario (imágenes de memoria) retiradas del almacenamiento
principal se graban en el almacenamiento secundario (discos).

Magister David Luis la Red Martínez. Sistemas Operativos.pdf

4.2. Organización de Memoria Virtual


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 máquina. Esta ilusión permite
que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria
física.

La memoria virtual ha llegado a ser un componente esencial de la mayoría de los


S.O actuales. Y como en un instante dado, en la memoria solo se tienen unos pocos
fragmentos de un proceso dado, se pueden mantener más procesos en la memoria.

La memoria virtual también simplifica la carga del programa para su ejecución


llamado reubicación, este procedimiento permite que el mismo programa se ejecute
en cualquier posición de la memoria física.

4.2.1. Evaluación de las Organizaciones de Almacenamiento

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 (memoria
real), ya que las direcciones virtuales suelen seleccionarse dentro de un número
mucho mayor de direcciones que las disponibles dentro del almacenamiento
primario.

Sánchez, D. (2013). Organización de Memorias. Obtenido de:


https://iodaniel.blogspot.mx/2014/09/33-organizacion-de-memoria-virtual.html

4.2.2. Paginación
De acuerdo con Tanenbaum (1996) el uso de la paginación en la memoria virtual
fue presentado por primera vez en el computador Atlas.

Tanenbaum comenta que Cada proceso tiene su propia tabla de páginas y cuando
carga todas sus páginas en la memoria principal, se crea y carga en la memoria
principal una tabla de páginas. Cada entrada de la tabla de páginas contiene el
número de marco de la página correspondiente en la memoria principal.
Puesto que sólo algunas de las páginas de un
proceso pueden estar en la memoria principal,
se necesita un bit en cada entrada de la tabla
para indicar si la página correspondiente está
presente (P) en la memoria principal o no. Si el
bit indica que la página está en la memoria, la
entrada incluye también el número de marco
para esa página.
El autor también nos señala que otro bit de
control necesario en la entrada de la tabla de
páginas es el bit de modificación (M), para indicar si el contenido de la página
correspondiente se ha alterado desde que la página se cargó en la memoria
principal. Si no ha habido cambios, no es necesario escribir la página cuando sea
sustituida en el marco que ocupa actualmente.

4.2.3. Segmentación

Según Tanenbaum (1996) La segmentación permite al programador contemplar la


memoria como si constara de varios espacios de direcciones o segmentos. Los
segmentos pueden ser de distintos tamaños, incluso de forma dinámica. Las
referencias a la memoria constan de una dirección de la forma (número de
segmento, desplazamiento). El autor también nos menciona que esta organización
ofrece al programador varias ventajas sobre un espacio de direcciones no
segmentado:
1. Simplifica la gestión de estructuras de datos crecientes. Si el programador
no conoce a priori cuán larga puede llegar a ser una estructura de datos
determinada, es necesario suponerlo a menos que se permitan tamaños de
segmentos dinámicos. Con memoria virtual segmentada, a la estructura de
datos se le puede asignar a su propio segmento y el S.O expandirá o
reducirá el segmento cuando se necesite.
2. Permite modificar y recopilar los programas independientemente, sin que
sea necesario recopilar o volver a montar el conjunto de programas por
completo.
3. Se presta a la compartición entre procesos. Un programador puede situar
un programa de utilidades o una tabla de datos en un segmento que puede
ser referenciado por otros procesos.
4. Se presta a la protección. Puesto que un segmento puede ser construido
para albergar un conjunto de procedimientos y datos bien definido, el
programador o el administrador del sistema podrá asignar los permisos de
acceso de la forma adecuada.
La segmentación también facilita
compartir procedimientos o datos
entre varios procese Un ejemplo
común es la biblioteca compartida.
Las estaciones de trabajo
modernas que ejecute sistemas de
ventanas avanzados suelen tener
bibliotecas de gráficos
extremadamente grandes
compiladas en casi todos sus
programas.
En un sistema segmentado, la biblioteca de gráficos puede colocar en un segmento
compartido por múltiples procesos, eliminando la necesidad \ tenerla en el espacio
de direcciones de cada proceso. Si bien también es posible tener bibliotecas
compartidas en los sistemas con paginación pura, resulta mucho más complicado.
De hecho, esos sistemas lo logran simulando segmentación.
El sistema operativo debe guardar para cada proceso una tabla de regiones que
especifique qué páginas pertenecen a cada región. Esto tiene dos desventajas:
• Para crear una región hay que rellenar las entradas de las páginas pertenecientes
a la región con las mismas características. Así, por ejemplo, si se trata de una región
de código que ocupa diez páginas, habrá que rellenar diez entradas especificando
una protección que no permita modificarlas.
• Para compartir una región, hay que hacer que las entradas correspondientes de
dos procesos apunten a los mismos marcos.
Tanenbaum, A. (2009). Sistemas Operativos Modernos 3ra Edición. México: Pearson Educación.
Pág.184,234

4.2.4. Sistemas de Paginación


La paginación y la segmentación puras son métodos de manejo de memoria
bastante efectivos, aunque la mayoría de los sistemas operativos modernos
implantan esquemas combinados, es decir, combinan la paginación y la
segmentación.

La idea de combinar estos esquemas se debe a que de esta forma se aprovechan


los conceptos de la división lógica de los programas (segmentos) con la
granularidad de las páginas. De esta forma, un proceso estará repartido en la
memoria real en pequeñas unidades (paginas) cuya liga son los segmentos.
También es factible así el compartir segmentos a medida que las partes necesitadas
de los mismos se van reverenciando (paginas).
Carretero, J. (2007). Sistemas Operativos Una Visión Aplicada 2da Edición. España: McGraw-Hill.
Pág.198
Ramirez, R. (2009). Sistemas Operativos. Obtenido de:
https://www.scoop.it/t/sistemas-operativos-itsav-c-lerdo

4.3. Administración de Memoria Virtual


La clave del concepto de memoria (almacenamiento) virtual está en la disociación:

 De las direcciones a las que hace referencia un programa.


 De las direcciones disponibles en la memoria real (almacenamiento
primario).

Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las
demás páginas que estarán disponibles cuando las requiera el proceso.
El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación
precarga estas páginas cuando hay espacio disponible Mientras el proceso ejecuta
sus páginas actuales, el sistema carga páginas nuevas que estarán disponibles
cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se
puede reducir.
4.3.1. Estrategia de Administración

Están dirigidas a la obtención del mejor uso posible del recurso del Almacenamiento
principal. Se dividen en las siguientes categorías:

Estrategias de búsqueda:
Estrategias de búsqueda por demanda.
Estrategias de búsqueda anticipada.
Estrategias de colocación.
Estrategias de reposición.

 “Estrategias de búsqueda”:
o Tratan de los casos en que una página o segmento deben ser traídos
del almacenamiento secundario al primario.
o Las estrategias de “búsqueda por demanda” esperan a que se haga
referencia a una página o segmento por un proceso antes de traerlos
al almacenamiento primario.
o Los esquemas de “búsqueda anticipada” intentan determinar por
adelantado a qué páginas o segmentos hará referencia un proceso
para traerlos al almacenamiento primario antes de ser explícitamente
referenciados.
 “Estrategias de colocación”:
o Tratan del lugar del almacenamiento primario donde se colocará una
nueva página o segmento.
o Los sistemas toman las decisiones de colocación de una forma trivial
ya que una nueva página puede ser colocada dentro de cualquier
marco de página disponible.
 “Estrategias de reposición”:
o Tratan de la decisión de cuál página o segmento desplazar para hacer
sitio a una nueva página o segmento cuando el almacenamiento
primario está completamente comprometido.

Candelero, M. (s.f.). Administración de Memoria. Obtenido de:


https://administraciondememoria-candelero.es.tl/3-.-3-.-1-Evaluaci%F3n-de-las-organizaciones-
de-almacenamiento-.-.html

4.3.2. Técnicas de reemplazo de páginas


La técnica de petición de páginas permite reducir la memoria ocupada por cada
programa durante su proceso. Todos los sistemas que usan la técnica de memoria
virtual sobre utilizan en mayor o menor medida la memoria física para obtener un
mejor rendimiento.
Para ello, deben hacerse algo más complejos: Supongamos que uno de esos
programas intenta acceder a una dirección cuya página no está en memoria. El
hardware la intercepta y cede el control al sistema operativo que, después de
comprobar que es una dirección legal, la trata como una falta de página.
Buscará un hueco en memoria. En este punto al analizar la lista de frames libres
comprueba que no hay hueco disponible y, como responsable de la gestión de la
memoria, debe resolver la situación sin afectar al programa. Una posible solución
es sacar de memoria algún programa cargado y usar los frames que deja libres,
pero esto lleva consigo una sobrecarga importante en la operación de intercambio
(swap).

La solución adoptada, generalmente, es sustituir alguna de las páginas cargadas


(reemplazar páginas). Para ello, la rutina del sistema que gestiona la interrupción
de falta de página deberá trabajar de la siguiente manera:
 Encontrar la página solicitada en el almacenamiento secundario.
 Encontrar un frame libre.
 Si existe, usarlo.
 Si no existe, usar un algoritmo de reemplazamiento para seleccionar la
página a reemplazar.
Salvar la página reemplazada en el almacenamiento secundario, actualizando las
tablas afectadas. Llevar la página solicitada al frame libre y actualizar las tablas
correspondientes.
 Algoritmos de reemplazamiento.
Según Tanenbaum “El algoritmo óptimo de reemplazo de páginas establece que la
página con la cantidad más alta de instrucciones debe eliminarse”.
Andrew S. Tanenbaum (1996) – Sistemas Operativos Modernos Pág. 232.

El algoritmo óptimo será aquel que seleccione la página que vaya a tardar más en
ser usada para sustituirla. Cuando se produce una falta de página, la memoria está
ocupada por un grupo de páginas y una de ellas, la que provocó la falta, va a ser
usada inmediatamente y, por tanto, no debe ser sustituida.
De las otras, algunas se necesitarán al cabo de unas pocas instrucciones, otras al
cabo de algunas más. Es evidente que la mejor solución es reemplazar la que tarde
más instrucciones en ser necesitada, ya que su ausencia tardará más en hacerse
sentir y durante ese intervalo pueden acabar otros procesos con la consiguiente
liberación de frames.
La dificultad de esta solución radica en la imposibilidad de prever el comportamiento
futuro de los procesos, pero como en otras muchas situaciones de la vida cotidiana,
se puede prever, en cierta medida dicho comportamiento, partiendo de la
experiencia del pasado (heurística), de las referencias a memoria que hasta el
momento han realizado los procesos.
Los algoritmos que se han ideado para controlar el reemplazamiento parten del uso
pasado de las páginas para aproximarse a la solución óptima. Su idoneidad quedará
definida por dos factores: número de faltas de página que provoca y el costo de su
uso (la sobrecarga que produce en el sistema).

 Algoritmo FIFO (First In First Out).


Según Tanenbaum “El sistema operativo mantiene una lista de todas las paginas
actualmente en memoria, en donde la llegada más reciente esta en la parte final y
la menos reciente en la parte frontal”.
Andrew S. Tanenbaum (1996) – Sistemas Operativos Modernos Pág. 234.

Es el más sencillo. Cuando se necesite sustituir una página, se elegirá aquella que
lleve más tiempo en memoria (primera en llegar, primera en salir).
Para controlar el tiempo de permanencia en memoria de las páginas, este algoritmo
usa una lista de llegada a memoria de las mismas. La primera de la fila será aquella
que lleve más tiempo cargada y, según el criterio FIFO, será la primera en ser
sustituida.

Un criterio de selección tan simple es fácil de programar y a la vez producirá poca


sobrecarga en el sistema, pero su eficacia es relativa. No es improbable que la razón
por la que una página lleve más tiempo en memoria sea su mayor uso, y en ese
caso, este algoritmo sustituirá la página menos adecuada. Pensemos en un sistema
de tiempo compartido con varios usuarios usando un editor de textos, compartiendo
páginas del mismo.
Normalmente serán éstas las más antiguas en memoria y, aunque su uso es muy
alto, el criterio FIFO las reemplazará provocando inmediatamente una sucesión de
falta de páginas. Es inadecuado para sistemas de tiempo compartido, pero puede
ser útil en entornos batch.
 Algoritmo LRU(Least Recently Used).
Según Tanenbaum “Se basa en la observación de que las páginas que se hayan
utilizado con frecuencia en las últimas instrucciones, tal vez se volverán a usar con
frecuencia en las siguientes, Por el contrario, las páginas que no se hayan utilizado
por mucho tiempo probablemente seguirán sin utilizarse por mucho tiempo más”.
Andrew S. Tanenbaum (1996)– Sistemas Operativos Modernos Pág. 236.

Es una buena aproximación a la solución óptima, considerando que aquellas


páginas muy usadas en el pasado reciente lo serán también en el futuro. En el
mismo sentido, las páginas poco usadas en el pasado seguirán siéndolo en el futuro,
y se deberá sustituir aquella que haya sido menos usada recientemente.
En este caso, emplear el tiempo de uso es un criterio que refleja mucho mejor el
comportamiento de los procesos en su uso de la memoria. Ponerlo en práctica es
relativamente difícil, ya que el sistema debe contabilizar, de alguna forma, el tiempo
en el que se produce cada referencia a memoria para poder clasificar las páginas
según su uso. Este control se puede realizar de varias maneras:
 Algoritmo de reemplazo de páginas: Reloj.
Según Tanenbaum “”Un mejor método seria mantener todos los marcos de página
en una lista circular en forma de reloj. Donde la manecilla apunta a la página más
antigua. Cuando ocurre un fallo, la página a la que apunta la manecilla se
inspecciona. Si el bit es 0, la página se desaloja, se inserta una nueva página en el
reloj en su lugar y la manecilla avanza una posición. En caso contrario si el bit es 1,
la manecilla avanza a la siguiente página. Este proceso se repite hasta encontrar
una página con el bit = 0”.
Andrew S. Tanenbaum (1996) – Sistemas Operativos Modernos Pág. 235.
 Contadores de hardware.
Incorpora un contador de referencias a memoria y añade un campo a las entradas
de la tabla de páginas que pueda almacenar el valor del contador. Para resolver una
falta de página, el sistema busca el valor del contador menor.
o Matrices de hardware.
Si la computadora dispone de N frames, el hardware debe mantener una matriz de
N*N bits puestos inicialmente a 0. Al accederse a una página K, el hardware pone
a 1 todos los bits de la fila K y a 0 todos los bits de la columna K. La página menos
usada recientemente es aquella cuya fila tenga el menor valor binario.
o Pilas (stack).
Mantiene una pila de los números de las páginas usadas. Cada vez que se usa una
página, su número se coloca al principio de la pila. La página menos recientemente
usada será la del fondo de la pila. En todas estas opciones del algoritmo LRU se
exige disponer de un hardware especial, y por ello, su aplicación se limita a aquellas
computadoras que dispongan de los elementos necesarios.
http://www.academia.edu/9472266/TRABAJO_UNIDAD_3_SISTEMAS_OPERATIVOS_EQUIPO_6
- Cruz Pérez José, Bautista Cruz Jorge, Benítez Bello Hugo ""Administración de Memoria".
4.3.3. Paginación por demanda
Este es el esquema de carga más común cuando se usa la técnica de memoria
virtual. Su funcionamiento es similar al de un sistema de paginación con
intercambio.
Ahora el algoritmo de intercambio no llevará a memoria todo el programa, sino que
sólo cargará aquellas páginas que se le pidan. Cuando el cpu genere una dirección
que pertenezca a una página que no se encuentre en memoria <<falta de
páginas>>, la buscará, y a continuación, la traerá a memoria desde el
correspondiente dispositivo de memoria secundaria.
El tratamiento de las faltas de página introduce un retraso adicional en la ejecución
de los programas y afecta por tanto al rendimiento general del sistema. El diseño
del software necesario debe ser especialmente cuidadoso en este aspecto.
http://www.academia.edu/9472266/TRABAJO_UNIDAD_3_SISTEMAS_OPERATIVOS_EQUIPO_6
- Cruz Pérez José, Bautista Cruz Jorge, Benítez Bello Hugo ""Administración de Memoria".

4.3.4. Paginación anticipada


El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación
precarga estas páginas cuando hay espacio disponible. Mientras el proceso ejecuta
sus páginas actuales, el sistema carga páginas nuevas que estarán disponibles
cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se
puede reducir.
http://www.academia.edu/9472266/TRABAJO_UNIDAD_3_SISTEMAS_OPERATIVOS_EQUIPO_6
- Cruz Pérez José, Bautista Cruz Jorge, Benítez Bello Hugo ""Administración de Memoria".

4.3.5. Liberación de página


Un proceso usuario puede emitir una“liberación voluntaria de página” para liberar
el frame cuando ya no necesite esa página. Se puede eliminar el“desperdicio” y
acelerar la ejecución.
El inconveniente es que la incorporación de mandatos de liberación de páginas
dentro de los programas de usuario puede ser peligrosa y retrasar el desarrollo de
aplicaciones.

“ Los compiladores y S. O. deberían detectar automáticamente situaciones de


liberación de página mucho antes de lo que es posible con estrategias de conjuntos
de trabajo”.
http://www.academia.edu/9472266/TRABAJO_UNIDAD_3_SISTEMAS_OPERATIVOS_EQUIPO_6
- Cruz Pérez José, Bautista Cruz Jorge, Benítez Bello Hugo ""Administración de Memoria".

4.3.6. Tamaño de página

Al diseñar una máquina hay que tomar una decisión sobre el mejor tamaño de
página. Como podrá suponer, no hay un tamaño único que sea el mejor, pero
existen varios factores que apoyan tamaños distintos. Los tamaños son
invariablemente potencias de dos, que suelen ir de 512 (29) a 16384 (214) bytes.
Andrew S. Tanenbaum (1996) – Sistemas Operativos Modernos Pág. 249.

¿Cómo seleccionamos el tamaño de página? Un factor es el tamaño de la tabla de


páginas. Para un espacio de memoria virtual establecido, al reducir el tamaño
aumenta el número de páginas y, por tanto, el tamaño de la tabla de páginas. Para
una memoria virtual de 4 MB habría 4096 páginas de 1K bytes, pero sólo 512
páginas de 8192 bytes. Como cada proceso activo debe tener su propia tabla de
páginas, sería deseable un tamaño de página grande.
Por otra parte, la memoria se utiliza mejor con páginas pequeñas. Una parte de la
última página estará asignada pero no totalmente ocupada (fragmentación interna).
Suponiendo que los tamaños de los procesos y de la página son independientes,
podemos esperar que, en promedio, se desperdiciará la mitad de la última página
de cada proceso. Esta pérdida representaría sólo 256 bytes en una página de 512
bytes, pero serían 4096 bytes en una página de 8192. Para minimizar la
fragmentación interna necesitamos un tamaño de página pequeño.
Otro problema es el tiempo necesario para leer o escribir una página. El tiempo de
E/S está compuesto por tiempo de búsqueda, latencia y transferencia.
http://eq2-sistemasoperativos.blogspot.mx/2012/04/342-tecnicas-de-reemplazo-de-paginas.html
- Blog Sistemas Operativos "Unidad 3.4 - Administración de Memoria Virtual"
CONCLUSIÓN
Para concluir se entiende que:

 En la memoria principal son ejecutados los programas y procesos de una


computadora y es el espacio real que existe en memoria para que se ejecuten
los procesos.
 La memoria virtual es aquella que le ofrece a las aplicaciones la ilusión de
que están solas en el sistema y que pueden usar el espacio de direcciones
completo.
 Las direcciones de memoria son de tres tipos: físicas, lógicas y lineales.
 El objetivo del intercambio es dar cabida a la ejecución de más aplicaciones
de las que pueden residir simultáneamente en la memoria del sistema.
 La asignación consiste en determinar cuál espacio vacío en la memoria
principal es el más indicado para ser asignado a un proceso.
 Las estrategias más comunes para asignar espacios vacíos (huecos) son:
primer ajuste, mejor ajuste, peor ajuste.
 La fragmentación es la memoria que queda desperdiciada al usar los
métodos de gestión de memoria tal como la asignación.
 La fragmentación puede ser interna o externa.
 La paginación es una técnica de gestión de memoria en la cual el espacio de
memoria se divide en secciones físicas de igual tamaño llamadas marcos de
página, las cuales sirven como unidad de almacenamiento de información.
 La segmentación es un esquema de manejo de memoria mediante el cual la
estructura del programa refleja su división lógica; llevándose a cabo una
agrupación lógica de la información en bloques de tamaño variable
denominados segmentos.

Por lo tanto el manejo de memoria virtual distinto en cierta forma en cada uno de los
sistemas operativos vistos se adapta más que todo a los tipos de procesos que se
realizan en cada sistema operativo de alguna manera siendo más efectivo cada uno
en el manejo de procesos especializados que tiene más sin embargo sin poder
lograr un objetivo común que es la velocidad en cuanto a la velocidad de las
aplicaciones por completo sin embargo El uso de la memoria virtual ayuda a
aprovechar mejor la memoria. Por eso muchos sistemas operativos utilizan este
esquema para la administración de memoria.
Cada vez se mejora más la forma en que la memoria virtual es manejada en los
sistemas operativos y no parece que pueda ser reemplazada en un futuro cercano.
Bibliografía
Candelero, M. (s.f.). Administración de Memoria. Obtenido de https://administraciondememoria-
candelero.es.tl/3-.-3-.-1-Evaluaci%F3n-de-las-organizaciones-de-almacenamiento-.-.htm

Carretero, J. (2007). Sistemas Operativos Una Visión Aplicada 2da Edición. España: McGraw-Hill.

Ramirez, R. (2009). Sistemas Operativos. Obtenido de https://www.scoop.it/t/sistemas-


operativos-itsav-c-lerdo

Sánchez, D. (2013). Organización de Memorias. Obtenido de https://io-


daniel.blogspot.mx/2014/09/33-organizacion-de-memoria-virtual.html

Tanenbaum, A. (2009). Sistemas Operativos Modernos 3ra Edición. México: Pearson Educación.

Stallings William. Sistemas Operativos. Editorial Prentice Hall

Tanenbaum Andrew S. Sistemas Operativos Modernos. Prentice Hall

Páginas Web:

https://users.dcc.uchile.cl/~jpiquer/Docencia/SO/aps/node30.html - José M. Piquer


"Memoria Virtual: Paginamiento en Demanda"

http://www.academia.edu/9472266/TRABAJO_UNIDAD_3_SISTEMAS_OPERATIVOS_EQUI
PO_6 - Cruz Pérez José, Bautista Cruz Jorge, Benítez Bello Hugo ""Administración de
Memoria".

https://chsos20122910022.wordpress.com/2012/11/01/algoritmos-de-reemplazo-de-
paginas/- Blog acerca de los Sistemas Operativos - "Algoritmos de reemplazo de páginas".

http://eq2-sistemasoperativos.blogspot.mx/2012/04/342-tecnicas-de-reemplazo-de-
paginas.html - Blog Sistemas Operativos "Unidad 3.4 - Administración de Memoria Virtual"

Vous aimerez peut-être aussi