GESTION DE LA MEMORIAvirtual.usalesiana.edu.bo/web/conte/archivos/1391.pdf · Administración...

28
1 GESTION DE LA MEMORIA SISTEMAS OPERATIVOS La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección Tanto el tamaño de la tabla (memoria), como el de los datos incluidos en ella dependen de cada arquitectura concreta Para que los programas puedan ser ejecutados es necesario que estén cargados en memoria principal La información que es necesario almacenar de modo permanente se guarda en dispositivos de almacenamiento secundarios también conocidos como memoria secundaria Generalidades

Transcript of GESTION DE LA MEMORIAvirtual.usalesiana.edu.bo/web/conte/archivos/1391.pdf · Administración...

1

GESTION DE LA MEMORIA

SISTEMAS OPERATIVOS

• La memoria es una amplia tabla de datos, cada uno de los cuales con su propia dirección

• Tanto el tamaño de la tabla (memoria), como el de los datos incluidos en ella dependen de cada arquitectura concreta

• Para que los programas puedan ser ejecutados es necesario que estén cargados en memoria principal

• La información que es necesario almacenar de modo permanente se guarda en dispositivos de almacenamiento secundarios también conocidos como memoria secundaria

Generalidades

2

Para que se Administra la memoria?

• Para mantenerse informado de qué parte de la memoria están en uso y cuáles no asignar memoria a los proceso cuando las necesitan liberar memoria cuando no se necesita

• Administrar intercambios entre la memoria principal y disco duro cuando la memoria principal es demasiado pequeña para contener todos los procesos.

Donde esta la Memoria en el CPU?

3

Donde esta la Memoria en el CPU?

Proceso de Carga de una Aplicación

4

Proceso de Carga de una Aplicación

Jerarquía de Memoria

5

Etapas por las que pasa un programaantes de cargarse en memoria

Conceptos sobre Cachés

• Caché - copia que puede ser accedida más rápidamente que el original

• Idea: hacer los casos frecuentes eficientes, los caminos infrecuentes no importan tanto

• Acierto de caché: item en la caché

• Fallo de caché: item no en caché; hay que realizar la operación completa

6

Espacio de direcciones lógicoy espacio de direcciones físico

• Espacio de direcciones lógico: conjunto de direcciones lógicas o virtuales generadas por un programa

• Espacio de direcciones físico: conjunto de direcciones físicas correspondientes a las direcciones lógicas en un instante dado

Mapa de memoria de un proceso

7

Administración Básica de la Memoria en sistemas monoprogramas

Particiones

• Dividimos la memoria en particiones:– El SO ocupa permanentemente una región de memoria.

• El resto de la memoria se particiona entre los procesos de forma: – Estática – número fijo de particiones; pueden ser de igual o

diferente tamaño.– Dinámica – particiones de diferente tamaño y número.– El SO mantiene información sobre las– particiones asignadas y las libres (huecos).

8

Particiones Fijas de la Memoria

Particiones fijas

• El número y tamaño de cada partición viene establecido por el sistema y es constante

• Tamaño de las particiones:– Particiones de igual tamaño– Particiones de distinto tamaño

• Estrategias de asignación: proceso – partición– Cola única– Varias colas (particiones de distinto tamaño)

9

Problema de las particiones fijas

• Uso de la memoria principal ineficiente.• Cualquier proceso, sin importar lo pequeño que sea,

ocupará una partición completa • Fragmentación: incapacidad del sistema operativo

para asignar posiciones de memoria principal no utilizadas. Dos tipos:– interna y externa

• Problema de fragmentación en particiones fijas: Fragmentación interna

Fragmentación interna

• Fragmentación interna: la memoria asignada es mayor que la usada; la diferencia entre ambas es memoria interna a una partición que no se usa.

• Se produce cuando se asigna memoria en particiones fijas.

10

Particiones Dinámicas

• Las particiones son variables en número y Tamaño• Cuando llega un proceso a memoria se le asigna la

memoria que necesita: se crea una partición• El SO mantiene información sobre las zonas de

memoria asignadas (tabla de particiones) y las libres (huecos)

• Es necesario tener una estrategia de asignación de espacio y gestión de espacio libre

Problema particiones dinámicas• Fragmentación externa - existe el espacio necesario

para satisfacer una petición pero no es contiguo• Compactación - técnica utilizada para reducir la

fragmentación externa. Consiste en arrastrar los contenidos de memoria a un lugar para reunir toda la memoria libre en un bloque.

• Problemas:– Requiere reubicación dinámica– Consume recursos del sistema– El sistema se detiene mientras se realiza * no se puede hacer

demasiado frecuentemente

11

Fragmentación externa

Existe espacio para satisfacer una petición pero no es contiguo. Ej. No podemos satisfacer una petición de 40 KB, habiendo 62 KB libres.

Particiones dinámicas en la Memoria

12

Ejemplo fragmentación externa

Compactación

• Técnica para reducir la fragmentación externa que consiste en arrastrar los contenido de memoria a un lugar para reunir la memoria libre en un bloque.

• Posible en sistemas con reubicación dinámica (se realiza en tiempo de ejecución).

13

Ejemplo de Ejemplo de compactación

Multiprogramacion con particionesfijas

14

Estrategias de asignación de espacio

• Primer ajuste – asigna el primer hueco lo suficientemente grande para satisfacer la petición

• Mejor ajuste – asigna el hueco más pequeño que mejor se ajuste al espacio necesitado. Se debe buscar en la lista entera, si no esta ordenada por tamaños. Produce el hueco sobrante menor.

• Peor ajuste - asigna el hueco mayor. Debemos buscar en toda la lista. Produce el hueco sobrante mayor

Ejemplo: Primer Ajuste

15

Ejemplo: El Mejor Ajuste

Ejemplo: El Peor Ajuste

16

Intercambio (Swapping)

• Intercambiar procesos entre memoria y un almacenamiento auxiliar

• El almacenamiento auxiliar debe ser un disco rápido con espacio para albergar las imágenes de memoria de los procesos de usuario

• El factor principal en el tiempo de intercambio es el tiempo de transferencia

• El intercambiador tiene las siguientes responsabilidades:– Seleccionar procesos para retirarlos de MP– Seleccionar procesos para incorporarlos a MP– Gestionar y asignar el espacio de intercambio

Intercambio (Swapping)

17

Si crecen los procesos?

Sistema de gestión de memoria

• Parte del sistema operativo que, con apoyo del hardware, se encarga de repartir la memoria entre los procesos activos

• Características deseables:– Ofrecer un espacio lógico independiente a cada proceso– Proporcionar protección y compartición de memoria entre

los procesos Maximizar el rendimiento del sistema – Maximizar el mapa de memoria asociado a un proceso– Dar soporte a las regiones del proceso

18

Memoria Virtual

• El tamaño del programa, los datos y la pila puede exceder la cantidad de memoria física disponible para él.

• Se usa un almacenamiento a dos niveles:– Memoria Principal => partes del proceso

necesarias en un momento dado– Memoria Secundaria => espacio de direcciones

completo del proceso

Unidad de Gestión de Memoria

La MMU (MemoryManagement Unit) es un dispositivo hardware que traduce direcciones virtuales a direcciones físicas. Este dispositivo está gestionado por el SO.

19

¿Cómo evitar la fragmentación dememoria?...

• Paginación – hacemos que todos los bloques tengan

el mismo tamaño.

• Segmentación – partimos el programa en trozos de

diferentes tamaños.

Paginación

• El espacio de direcciones físicas de un proceso puede ser no contiguo

• La memoria física se divide en bloques de tamaño fijo, denominados marcos de página. El tamaño es potencia de dos, de 0.5 a 8 Kb

• El espacio lógico de un proceso se divide en bloques del mismo tamaño, denominados páginas

• Los marcos de páginas contendrán páginas de los procesos

20

Paginación

La relación entrela dirección virtual y la memoria física viene dada por la tabla de paginas.

Tabla de Pagina

Cuando la CPU genere una dirección lógica será

necesario traducirla a la dirección física correspondiente,

la tabla de páginas mantiene información necesaria para

realizar dicha traducción. Existe una tabla de páginas

por proceso

21

Tabla de Pagina

Operación Interna de la MMU 16 paginas de 4 KB

• Direcciones de 32 bit con una tabla de 2 paginas • Tablas de pagina de dos niveles

Tabla de Pagina

22

Búfer de Traducción Adelantada (TLB)

• El problema de los accesos a memoria se resuelve con una caché hardware de consulta rápida denominada búfer de traducción adelantada o TLB (Translation Look-aside Buffer)

• El TLB se implementa como un conjunto de registros asociativos que permiten una búsqueda en paralelo

• De esta forma, para traducir una dirección: – Si existe ya en el registro asociativo, obtenemos el marco– Si no, la buscamos en la tabla de páginas y se actualiza el TLB con esta

nueva entrada

Búfer de Traducción Adelantada (TLB)

23

Tamaño de la Tabla de Páginas

Ejemplo:Dirección virtual: 32 bits.Tamaño de página = 4 Kbytes (212 bytes).tamaño del campo desplazamiento = 12 bitstamaño número de página virtual = 20 bitsNº de páginas virtuales = 220 = ¡1,048,576!

Segmentación

La segmentación permite al programador contemplar la

memoria como si constara de varios espacios de

direcciones o segmentos. Con memoria virtual, el

programador no necesita preocuparse de las limitaciones

de memoria impuestas por la memoria principal. Los

segmentos pueden ser de distintos tamaños, incluso de forma

dinámica.

24

Politicas del S.O sobre la Memoria Virtual

• Políticas de Lectura– Por demanda– Por paginación previa

• Políticas de ubicación • Políticas de reemplazo

– Algoritmos de reemplazos

Políticas de Lectura

• La política de lectura (fetch) está relacionada con la decisión de cuándo se debe cargar una página en memoria principal. Las dos alternativas más comunes son la paginación por demanda y la paginación previa.

• Paginación por demanda, se trae una página a memoria principal sólo cuando se hace referencia a una posición en dicha página.

• Paginación previa, se cargan otras páginas distintas a las demandadas debido a un fallo de página. El principal atractivo de esta estrategia está en las características de las mayoría de los dispositivos de memoria secundaria, como los discos, que tienen un tiempo de búsqueda y una latencia de giro.

25

Políticas de ubicación

• La política de ubicación tiene que ver con determinar dónde va a residir una parte de un proceso en memoria principal. En un sistema de segmentación puro, la política de ubicación es un aspecto importante del diseño; como posibles alternativas se tienen las políticas del mejor ajuste, el primer ajuste y otras.

• Trata de la selección de la página a reemplazar en memoria principal cuando se debe cargar una nueva página.

• Se fundamenta en los Algoritmos de sustitucion

Políticas de reemplazo

26

Algoritmos de sustitución• Óptima: selecciona para reemplazar la página que

tiene que esperar una mayor cantidad tiempo hasta que se produzca la referencia siguiente.

• Usada hace más tiempo (LRU, Least Recently U sed): reemplaza la página de memoria que no ha sido referenciada desde hace más tiempo

• Primera en entrar, primera en salir (FIFO, First-In, First-Out) : esta elección, además de su sencillez, es reemplazar la página que ha estado más tiempo en memoria

• De reloj

Algoritmo del reloj• La política del reloj requiere asociar un bit

adicional a cada marco, denominado bit de uso.Cuando se carga una página por primera vez en un marco de memoria, el bit de uso de dicho marco se pone a cero. Cuando se hace referencia a la página posteriormente (después de la referencia que generó el fallo de página), el bit de uso se pone a 1. Para el algoritmo de reemplazo de páginas, el conjunto de marcos candidatos a ser reemplazados se considera como un buffer circular con un puntero asociado.

27

Algoritmo del reloj

28

Gracias por su atención