0% encontró este documento útil (0 votos)
40 vistas11 páginas

Unidad 4 - Administracion de Memoria

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
40 vistas11 páginas

Unidad 4 - Administracion de Memoria

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 11

SISTEMAS OPERATIVOS – UNIDAD 4:

ADMINISTRACION DE MEMORIA

Administración de Memoria:
Sus funciones son registrar que parte de memoria esta libre y que parte esta ocupada, asignar
y liberar espacio de memoria para los procesos y administrar el intercambio entre la memoria y
el disco.

Técnicas de Administración de Memoria:


MONOPROGRAMACION:

Este es el esquema de administración de memoria más sencillo. Consiste en ejecutar solo un


programa a la vez, repartiendo la memoria entre ese programa y el SO. Se ejecuta un solo
proceso a la vez.

Desventajas:

 Se ejecuta un proceso por vez.


 Se asigna memoria, no se libera.
 Baja utilización de la memoria.
 Baja utilización del procesador.

MULTIPROGRAMACION:

Multiprogramación con Particiones Fijas:


Ocurre fragmentación interna.

La multiprogramación aumenta el aprovechamiento de la CPU. Existen varias formas de lograr


multiprogramación. La forma más fácil es dividir la memoria en n partes de distinto tamaño,
cada una con una cola de entrada. Cuando llega un trabajo, se lo pone en la cola de la partición
más pequeña en la que cabe.

Desventaja: cuando la cola de una partición grande está


vacía pero la de una partición pequeña está llena, los
trabajos pequeños tienen que esperar para entrar en
memoria, aunque haya mucha memoria desocupada.

Una alternativa, sería mantener una sola cola. Cada vez


que se desocupe una partición, el trabajo más cercano
al frente, y que quepa en esa partición, se cargará y
ejecutará. La única desventaja seria desperdiciar una
partición grande en un trabajo pequeño (fragmentación interna). Para eliminar la desventaja
anterior, una estrategia distinta seria examinar toda la cola cada vez que se desocupe una
partición y elegir el trabajo más grande que entre en ella. Este enfoque discrimina los trabajos
pequeños.

Una solución a lo anterior seria tener por lo menos una partición pequeña, para ejecutar
trabajos pequeños.

Multiprogramación con Particiones Variables:


Ocurre fragmentación externa.

Para vencer algunas de las dificultades con


particionamiento fijo, se desarrolló una
técnica conocida como particionamiento
dinámico/variable. Con particionamiento
dinámico, las particiones son de longitud y
número variable. Cuando se lleva un proceso
a la memoria principal, se le asigna
exactamente tanta memoria como requiera y
no más.

El fenómeno que se muestra en la figura se


conoce como fragmentación externa, y
muestra como cada vez van a quedando mas
espacios pequeños en la memoria,
fragmentándola cada vez más, y produciendo
así que la utilización de esta se decremente.

Estrategias de Multiprogramación:
Existen dos técnicas o estrategias que permiten tener mas de un proceso presente en la
memoria, permitiendo así la multiprogramación, y son las siguientes:

INTERCAMBIO – SWAPPING:

Se lleva el proceso completo a memoria, se ejecuta un tiempo y se baja a disco. Los procesos
inactivos son almacenados en disco, para liberar memoria mientras no se están ejecutando.
Cuando un proceso se vuelve a cargar en memoria RAM, puede ubicarse en otro espacio de
direcciones diferente.

La swap es la zona del disco, fichero o


partición que se utiliza como espacio de
intercambio. Guarda las imágenes de los
procesos.

El área de swap se borra cuando se apaga la PC.


Cuando el intercambio crea varios huecos en la memoria, es posible combinarlos todos en uno
grande desplazando los procesos lo más hacia abajo que sea posible. Esta técnica se conoce
como compactación de memoria. Por lo general no se realiza debido a que requiere mucho
tiempo de la CPU.

MEMORIA VIRTUAL:

La idea básica detrás de la memoria virtual es que cada programa tiene su propio espacio de
direcciones, el cual se divide en trozos llamados páginas. Cada página es un rango contiguo de
direcciones. Estas páginas se asocian a la memoria física, pero no todas tienen que estar en la
memoria física para poder ejecutar el programa. La memoria virtual funciona muy bien en un
sistema de multiprogramación, con bits y partes de muchos programas en memoria a la vez.
Mientras un programa espera a que una parte del mismo se lea y coloque en la memoria, la
CPU puede otorgarse a otro proceso.

Abstracción de Memoria:
---

Dirección Relativa = Registro Base + Dirección Absoluta

Espacio de Direcciones:
Es el conjunto de direcciones que puede utilizar un proceso para direccionar la memoria. Cada
proceso tiene su propio espacio de direcciones (privado), independiente del resto de procesos.

El registro base se carga con la dirección física donde empieza el proceso en memoria.

Cuando un proceso hace referencia a la memoria, el hardware de la CPU suma


automáticamente el valor del registro BASE a la dirección generada por el proceso antes de
enviar la dirección al bus de memoria.
Si se quiere mover de dirección de memoria a un proceso, es decir, convertir su dirección
absoluta en dirección relativa, se utilizará una técnica llamada reasignación o reubicación.

Protección:
Se controla que el proceso sólo direccione su propio espacio de memoria.

El registro limite se carga con la longitud del programa. Se protege las referencias a memoria
fuera de rango, y la dirección relativa no debe superar la suma de los valores:

Registro base + registro limite

Caso contrario, se genera un fallo y no se permite el acceso a esa zona de memoria.

Intercambio (continuación):
- El número y tamaño de procesos varía en forma dinámica.
- Las particiones se van creando a medida que llegan los procesos.
- Las particiones se adaptan al tamaño de los procesos.
- Desventajas:
o Complejidad en la asignación y liberación de memoria.
o Es necesario determinar cuánta memoria otorgar y cómo gestionarla a medida
que los procesos cambian de tamaño
o Si el proceso crece demasiado, puede requerir más memoria de la inicialmente
asignada, lo que complicará la asignación y liberación de memoria. Además, si
no se ajusta adecuadamente el tamaño de la partición, el proceso puede
necesitar ser reubicado o incluso provocar la fragmentación de la memoria.
o Necesidad de “desfragmentar” o “compactar” la memoria: requiere mucho
tiempo de procesamiento.
o Técnicas de administración de la memoria:
- Mapa de bits.
- Listas enlazadas.

Técnicas de Administración de Memoria:


Existen inconvenientes en las técnicas de administración de memoria de multiprogramación
con particiones fijas y variables:

- Un proceso debe estar cargado en RAM todo junto en direcciones de memoria en


forma contigua.
- No se puede ejecutar un proceso cuyo tamaño sea mayor al total de memoria RAM
disponible.
- El grado de multiprogramación está limitado a la cantidad máxima de procesos
alojados en RAM.

Una solución a esto es la implementación de la memoria virtual.


Memoria Virtual:
Es una técnica de administración de memoria en la cual el sistema operativo dispone tanto
para las aplicaciones de usuario como para el código del sistema operativo, de mayor cantidad
de memoria que la que posee
disponible físicamente. La idea
principal es que cada programa
tiene su propio espacio de
direcciones.

Características:

- Es una técnica de administración de memoria mediante la cual el sistema operativo


reserva un espacio en el disco para poder utilizarlo como si fuese memoria RAM.
- El sistema operativo crea para cada proceso un espacio de direcciones virtual en disco.
- Permite ejecutar programas cuyo tamaño sea mayor a la memoria física (RAM)
disponible.
- El programa se divide en “partes” y se almacenan algunas en disco y otras en memoria.
- Se aumenta considerablemente el grado de multiprogramación.
- Existen dos técnicas de implementación: Paginación y Segmentación.

Paginación (P):
En cualquier computadora, los programas hacen referencia a un conjunto de direcciones de
memoria. Estas direcciones generadas por el programa se denominan direcciones virtuales y
constituyen el espacio de direcciones virtual. Cada programa posee su propio espacio de
direcciones virtuales.

El programa se divide en trozos del mismo tamaño llamadas páginas. Las paginas se almacenan
en disco y se van llevando a memoria a medida que se necesitan. En la RAM, las paginas se
almacenan en marcos de páginas.

Tamaño de Paginas = Tamaño de Marcos

(P) – Traducción de Direcciones:


Las direcciones virtuales no se envían de manera directa al bus de memoria, sino a una Unidad
de Administración de Memoria (MMU, Memory Managment Unit) que asocian direcciones
virtuales y físicas de la memoria.

(P) – Fallo de Pagina:


Se da cuando un programa intenta utilizar una pagina que no esta cargada en la memoria RAM.

La MMU detecta que la pagina no esta asociada y hace que la CPU genere un TRAP al SO.
Luego, se libera espacio en RAM (se baja alguna página en disco), se carga desde el disco a
RAM la pagina solicitada y se la asocia en la tabla de páginas. Se continua con la ejecución de la
instrucción que origino el fallo de página.
(P) – Funcionamiento Interno de la MMU:
 Los primeros 4 bits indican un número de página. Este se utiliza como índice
para consultar la tabla de página y así obtener el número de marco de página
correspondiente.
 Los siguientes 12 bits indican un desplazamiento u offset, por lo que, si se
tienen marcos de página de 4 KB, estos 12 bits se utilizan para direccionar los
4096 bytes de cada marco.

(P) – Tabla de Paginas:


En sentido matemático, la tabla de páginas es una función donde el número de página virtual
es un argumento y el número de marco físico es un resultado.

El objetivo es asociar páginas virtuales a los marcos de página.

Cada proceso posee su propia tabla de páginas, y el tamaño de esta depende del tamaño del
proceso y del tamaño de las páginas.

ESTRUCTURA:

Cada entrada de la tabla de páginas posee los siguientes elementos:

 Numero de marco de página: este es el campo más importante, el objetivo de la


asociación de páginas es mostrar este valor.
 Bit P/A: indica si la página está en memoria o en disco.
 Bit R (referencia): se activa cada vez que se accede a la página.
 Bit M (modificación): se activa cuando se modifica la página.
 Bits de protección: indican qué tipo de acceso está permitido.
 Bit de cache: permite deshabilitar el uso de caché para la página.
(P) – TLB – Translation Lookaside Buffer:
Su objetivo es acelerar el proceso de traducción de direcciones virtuales en direcciones físicas.

Es un dispositivo de hardware que traduce direcciones virtuales a direcciones físicas SIN pasar
por la tabla de páginas. Está ubicado en el interior de la MMU. Consiste en un número
pequeño de entradas (hasta 64) con los datos de la tabla de páginas.

Cuando llega una dirección virtual a la MMU, el hardware verifica primero si el número de
página virtual está en el TLB, comparando todas las entradas en paralelo e intenta hacer la
traducción. Si no está en el TLB, hace una consulta normal a la tabla de páginas y actualiza el
TLB (previamente libera una entrada del TLB).

(P) – Tabla de Paginas Multinivel:


Su objetivo es eliminar la necesidad de tener la tabla de paginas cargada completamente en
memoria RAM todo el tiempo.

(P) – Tabla de Paginas Invertidas:


Este diseño permite tener una entrada por cada marco de página ubicado en memoria RAM.
Cada entrada lleva el registro de qué proceso y página virtual se encuentra en el marco de
página.

Las tablas de paginas invertidas ahorran una gran cantidad de espacio de memoria RAM.

Una tabla de página invertida ocupa poco espacio incluso en una arquitectura de 64 bits. Hay
una sola tabla de páginas para todos los procesos.

Su desventaja es la complejidad en la traducción de dirección virtual a física. Una solución sería


la utilización de TLB y tabla de hash.

(P) – Necesidad del Algoritmo de Reemplazo de Paginas:


Cuando se produce un fallo de página, si la memoria está llena, se debe desalojar una página
de RAM, para hacer espacio para la nueva página. Se debe analizar el bit M de la página a
desalojar:

- Si M = 1, guardar los cambios en disco.


- Si M = 0, se libera la zona de memoria.

Se debe analizar qué página conviene extraer de la memoria.

1. ALGORTIMO DE REEMPLAZO DE PAGINAS OPTIMO:

Es el mejor algoritmo de reemplazo de páginas, pero imposible de implementar. Se elimina de


la memoria la página que será referenciada dentro de muchas instrucciones.

Se utiliza para evaluar el resto de algoritmos de reemplazo de páginas.


2. ALGORITMO DE REEMPLAZO DE PAGINAS NO USADAS RECIENTEMENTE (NRU):

Cada entrada en la tabla de páginas tiene asociados DOS bits de estado: Bit R (referencia) y Bit
M (modificación). Los bits se actualizan en cada referencia a la memoria. Cuando se produce un
fallo de página, el Sistema Operativo inspecciona las páginas y las divide en 4 categorías, según
los valores de los bits R y M:

- Clase 0: 0-0 No referenciada – No modificada.


- Clase 1: 0-1 No referenciada – Si modificada.
- Clase 2: 1-0 Si referenciada – No modificada.
- Clase 3: 1-1 Si referenciada – Si modificada.

En este algoritmo está implícita la idea de que es mejor eliminar una página modificada a la
que no se haya hecho referencia en al menos un pulso de reloj, que una página limpia de uso
frecuente.

3. ALGORITMO DE REEMPLAZO DE PAGINAS FIFO:

El sistema operativo mantiene una lista de todas las páginas actualmente en memoria. Las
páginas se extraen de la memoria según el orden de llegada. Si se produce un fallo de página,
se retira la página más antigua.

La desventaja principal es que se podrían llegar a extraer paginas de mucho uso.

4. ALGORITMO DE REEMPLAZO DE PAGINAS DE SEGUNDA OPORTUNIDAD:

Surge como solución al algoritmo FIFO. Surge como solución al algoritmo FIFO. Antes de
extraer la página, se analiza el bit R (referencia) de la página. Si R = 0, se retira la página de la
memoria (antes se analiza el bit M). Si R = 1, se limpia el bit R y la página se coloca al final de la
cola.

Una página de mucho


uso, permanecerá
siempre en la memoria
RAM.
Desventaja: tiene que recorrer toda la tabla (de tamaño extenso).

5. ALGORITMO DE REEMPLAZO DE PAGINAS DEL RELOJ:

Para resolver la desventaja del método anterior, se utilizan 2 punteros, uno a la ultima pagina, y
otro a la primera.

Es el algoritmo más utilizado. Las paginas se mantienen en una lista circular. Tiene la misma
lógica que el algoritmo de segunda oportunidad, solo que difiere en su implementación física.

(P) – Modelo de Conjunto de Trabajo:


Primero hay que entender algunos conceptos:
- Paginación con demanda: las páginas se cargan a memoria RAM sólo cuando se
necesitan.
- Localidad de referencia: durante la ejecución, el proceso hace referencia sólo a
una pequeña fracción de sus páginas.
- Conjunto de trabajo: es el conjunto de páginas que utiliza un proceso en un
momento determinado sin producir demasiados fallos de página.
- Sobrepaginado o thrashing: cuando se producen demasiados fallos de página
en relación a la cantidad de instrucciones que se ejecutan. (paginas cargadas
que no me sirven (basura).
- Prepaginación: cargar las páginas de un proceso en RAM antes que comience a
ejecutarse.
Cuando se inicia la ejecución de un proceso se deben cargar sus páginas en memoria RAM,
provocando una gran cantidad de fallos de página.

El objetivo del modelo es reducir la cantidad de fallos de página.

El modelo permite llevar el registro del conjunto de trabajo de los procesos y garantizar que sus
páginas estén en memoria RAM antes de comenzar su ejecución (prepaginación). El conjunto
de trabajo de un proceso cambia durante su ejecución (puede aumentar o disminuir su
tamaño). Para poder implementarlo el sistema operativo debe llevar el registro de las páginas
que forman el conjunto de trabajo de cada proceso.

POLITICAS DE ASIGNACION LOCAL VS GLOBAL:

 Política de Asignación Local:


Se selecciona una pagina del mismo proceso que ocasiono el fallo de página, y se
asigna una cantidad fija de memoria a cada proceso.
Ventaja: la simplicidad.
Desventajas:
- Si el conjunto de trabajo crece, se produce sobrepaginación.
- Si el conjunto de trabajo se reduce, se desaprovecha la memoria.
 Política de Asignación Global:
Se selecciona una página entre todas las páginas de la memoria, y se asigna memoria a
cada proceso en forma dinámica.
Ventaja: funciona mejor porque se adapta a los cambios de tamaño del conjunto de
trabajo.
Desventaja: el sistema debe decidir constantemente cuánta memoria asignarle a cada
proceso.

TAMAÑO DE PAGINAS:

Si la página es grande, fragmentación interna en la última página. Si la página es pequeña, se


aprovecha mejor el uso de la memoria (se reduce la fragmentación interna).

(P) – Aspectos de Implantación:


La paginación funciona mejor cuando hay suficientes marcos libres en el momento en el cual se
produce un fallo de página.

DEMONIO DE PAGINACION:

Es un proceso en segundo plano que garantiza la existencia de suficientes marcos libres en


memoria RAM. Permanece inactivo por un tiempo, luego se activa y si es necesario, libera la
memoria garantizando una determinada cantidad de marcos libres. Luego, evalúa si la pagina a
extraer fue modificada (si es así se actualiza en disco).

Es el proceso que ejecuta el algoritmo de reemplazo de páginas.

(P) – Manejo de Fallos de Pagina:


Secuencia de eventos:

1. El hardware hace un trap al kernel, y se guarda el contador de programa en la pila.


2. El SO detecta un fallo de página, y descubre qué página virtual se necesita (comprueba
los bits de protección).
3. Se verifica si existen marcos disponibles, de lo contrario se ejecuta el algoritmo de
reemplazo de páginas. Si la página extraer posee el bit M en 1, se graba en disco.
4. Se realiza una conmutación de contexto, suspendiendo el proceso que produjo el fallo
de página.
5. Se busca la página solicitada en el disco (mientras, se puede ejecutar otro proceso).
6. Cuando la página está en memoria RAM, se actualiza la tabla de páginas.
7. Se continúa con la ejecución del proceso que originó el fallo, y se recuperan los
registros y el valor del contador de programa.

(P) – Bloqueo de Paginas en Memoria:


El objetivo es bloquear las páginas involucradas en operaciones de E/S en memoria, de manera
que no se eliminen.

Almacenamiento de Respaldo:
 Área de swap (intercambio): área del disco (archivo o partición) donde se almacena la
imagen de los procesos que se están ejecutando.
 Técnica de memoria virtual: necesidad de reservar un espacio de disco para el
intercambio de procesos y páginas (área de swap o archivo de paginación).
 En la tabla de procesos se registra el área de intercambio (en disco) de cada proceso
que se está ejecutando.
 Windows: pagefile (archivo de paginación).
 Linux: partición swap y/o archivo swap.

También podría gustarte