14
GESTIÓN DE MEMORIA INTRODUCCIÓN CARACTERÍSTICAS DE LA MEMORIA 1.-Tamaño o capacidad de la memoria 2.- Velocidad de la memoria TEMA 8 GESTIÓN DE MEMORIA El administrador de memoria es la parte del sistema operativo encargado de gestionar la memoria el intercambio de datos entre la memoria y el disco duro. Cuando un programa almacenado en disco se decide ejecutar, se debe cargar previamente en memoria. Sin embargo el tamaño de la memoria es menor que el disco duro, y para asignar memoria a muchos procesos se debe gestionar óptimamente. El administrador de memoria proporciona protección y uso compartido, es decir, asigna espacio de la memoria a cada proceso único y controla que ningún proceso acceda a zonas de memoria no asignada. El administrador de memoria controla la parte de memoria ocupada, si detecta que esta no se usa la libera. Funciones del administrador de memoria 1. r 2. r 3. reservar memoria

Tema 8 gestion de memoria.doc

Embed Size (px)

Citation preview

Page 1: Tema 8 gestion de memoria.doc

GESTIÓN DE MEMORIA

INTRODUCCIÓN

CARACTERÍSTICAS DE LA MEMORIA

1.-Tamaño o capacidad de la memoria

2.- Velocidad de la memoria

TEMA 8 GESTIÓN DE MEMORIA

El administrador de memoria es la parte del sistema operativo encargado de gestionar la memoria el intercambio de datos entre la memoria y el disco duro.

Cuando un programa almacenado en disco se decide ejecutar, se debe cargar previamente en memoria. Sin embargo el tamaño de la memoria es menor que el disco duro, y para asignar memoria a muchos procesos se debe gestionar óptimamente. El administrador de memoria proporciona protección y uso compartido, es decir, asigna espacio de la memoria a cada proceso único y controla que ningún proceso acceda a zonas de memoria no asignada.

El administrador de memoria controla la parte de memoria ocupada, si detecta que esta no se usa la libera.

Funciones del administrador de memoria1. r2. r3. reservar memoria4. liberar5. memoria RAM y disco6. protección7. Uso compartido

Requisitos de la gestión de memoria

Reubicación: debido a que la memoria se encuentra compartida con varios procesos. Los procesos son cargados y descargados continuamente en memoria, cuando

Page 2: Tema 8 gestion de memoria.doc

un proceso vuelve a memoria se deberá cargar en otra dirección porque la anterior dirección seguramente estará ocupada.

Protección: cada proceso debe protegerse contra interferencias de otros procesos, un proceso no puede acceder a una zona de memoria de otro proceso sin permiso.

Uso compartido: se debe permitir el acceso a varios procesos a la misma zona de

memoria. Los programas se organizan en módulos

FragmentaciónDirecciones de memoria

Partición de memoria Particiones estáticas

o De igual tamaño: Es la forma más sencilla de gestión de memoria y consiste en dividirla en regiones de igual tamaño. Cualquier proceso menor o igual que la partición, se le asigna cualquier partición libre, y la ocupa entera.

8 MB 8 MB 8 8 8 8P1 P2 Pn

Problemas: Superposición: un proceso puede ser demasiado grande para

caber en la partición. Por lo que solamente una parte del proceso se carga en memoria.

Ineficiencia: es ineficiente porque cualquier proceso por pequeño que sea ocupara una partición completa, con lo que se produce fragmentación interna. Esto es malgastar espacio de memoria al asignar un proceso a una región de memoria de un tamaño mayorEn el ejemplo si el P1 (proceso 1) es de un tamaño de 2MB, entonces estamos desperdiciando 6 MB (8 – 2), con lo que se produce una fragmentación interna de 6 MB en la región uno

o De distinto tamaño: La memoria se divide en regiones de distinto tamaño, para asignar memoria a un proceso se le asigna una región de memoria mayor o igual que el proceso.

1MB 1MB 2MB 5MB 6 MB 8 MB 8 MBP2 P1

Asignar a cada proceso a la partición mas pequeña en la que quepa, en este caso hace falta una cola de procesos para cada particiónÚnica cola para todos los procesos, cuando se va a cargar un proceso se recorre la cola hasta encontrar el proceso más pequeño que la partición disponible

Particiones dinámicas

Page 3: Tema 8 gestion de memoria.doc

Son variables en numero y tamaño, cuando se carga un proceso en memoria se le asigna tanta memoria como necesite y no mas. Conforme pasa el tiempo la memoria empieza a estar más fragmentada y por tanto su rendimiento recae, este fenómeno se denomina fragmentación externa y son los trozos de memoria libre que quedan sin asignar entre zonas asignadas.

Para solucionar el problema de la fragmentación externa, se utiliza la técnica de compactación que consiste en que de vez en cuando, el sistema operativo desplaza todos los procesos para que estén en zona de memoria contigua, de forma que toda la memoria libre quede junta en un bloque.

Algoritmo de ubicación, los tres algoritmos eligen de entre los bloques de memoria libres, aquellos que son mayores o iguales que el proceso a cargar.

Mejor ajuste (best fit): elige el bloque de memoria libre de tamaño mayor o igual al proceso más próximo al ultimo solicitado.

Primer ajuste (first fit): comienza recorriendo la memoria desde el principio, y escoge el primer bloque libre disponible que sea suficientemente grande.

Siguiente ajuste (next fit): recorre la memoria desde el lugar de la última asignación y elige el siguiente bloque disponible que sea lo suficientemente grande.

Sistemas de colegas

Page 4: Tema 8 gestion de memoria.doc

TÉCNICAS DE GESTION DE MEMORIA

Direcciones de memoria: en cualquier sistema de memoria debemos de disponer de un método para identificar el lugar donde guardamos los datos en la memoria, es decir, de unas direcciones de memoria. Debido a que el espacio de memoria es limitado y que la memoria se encuentra compartida por varios procesos que son cargados y descargados continuamente y debido a que estos procesos no siempre utilizan el mismo espacio de memoria, es necesario un sistema de adjudicación. Para entender como funciona este proceso es necesario diferenciar entre dirección física y dirección lógica.

-Dirección física: es la posición real que ocupa un dato en la memoria principal, es decir, aquella que esta cargada en el registro de dirección de memoria. El conjunto de direcciones físicas componen el espacio de direcciones físicas. -Dirección lógica: es una dirección generada por la CPU y que es independiente de la asignación de datos. El conjunto de direcciones generadas por el sistema se denomina espacio de direcciones lógicas. La dirección lógica se compone de dos valores, numero de segmento o página(A) y desplazamiento (B)

A continuación, se explican las técnicas de gestión de memoria:

1) Segmentación: la segmentación es una técnica de gestión de memoria, en la que la información lógica del proceso se divide en distintos bloques lógicos denominados segmentos, donde cada segmento tiene información del proceso. Esta técnica permite definir un máximo de segmentos que varían de tamaño según la necesidad del programa. El sistema usa la tabla de segmentos para convertir las direcciones lógicas del segmento a su dirección física. Como el tamaño de los bloques es variable, cada entrada en la tabla debe contener número de segmento, su dirección inicial y su longitud o tamaño.

2) Paginación: se divide la memoria física y lógica en unidades de tamaño fijo, de manera que se puede asociar unas a otras. Dividimos también los procesos en trozos de tamaño fijo y del mismo tamaño en el que hemos dividido el espacio físico. El espacio lógico se divide en bloques de tamaño fijo denominados páginas. El espacio físico se divide en bloques del mismo tamaño denominados marcos o tramos. Los trozos de procesos llamados páginas se asignan a los trozos de memoria llamados marcos. Este sistema permite cargar una página en cualquier trama y esta funciona como unidad de almacenamiento que se puede transferir entre memoria principal y memoria secundaria. Este proceso de intercambio se conoce con el nombre de swaping. El tamaño de las paginas se establecen por hardware, si el tamaño de las paginas es muy grande se desperdicia espacio de memoria principal, si el tamaño de la página es pequeño se sobrecarga el sistema operativo. Con la paginación también se da fragmentación interna pero solo ocupa una parte de la última página, además no se produce fragmentación externa

Page 5: Tema 8 gestion de memoria.doc

La paginación requiere una tabla de paginas para convertir las direcciones físicas a lógicas y viceversa, para ello cada dirección que genera el sistema se divide en dos partes [Nº de Pág., Desplazamiento] el desplazamiento nos sitúa en la palabra dentro de la pagina

3) Sistemas combinados: La paginación y la segmentación puras son técnicas de la gestión de memoria bastante efectiva. Aunque la mayoría de los sistemas operativos modernos implantan sistemas combinados, es decir, combina la paginación y la segmentación. Así por ejemplo un segmento se puede dividir en paginas y describirse por su propia tabla de paginas. Además no va a ser necesario que todos los marcos estén disponibles en la memoria principal.

4) Memoria virtual: puede ocurrir que el tamaño del programa que deseamos ejecutar es mayor que la memoria disponible para ese proceso, la memoria virtual es una técnica de gestión de memoria que permite ejecutar programas que estén cargados solo parcialmente en la memoria, la idea es que si por ejemplo un ordenador tiene 256MB de memoria podamos llegar a ejecutar un programa de 1GB, para conseguir esta memoria virtual podemos utilizar el disco duro para ir intercambiando paginas. Cuando necesitamos mas memoria física pero no nos queda el sistema operativo coge una pagina que no se este utilizando y la lleva al disco (swap out). Una vez liberada la memoria física el espacio libre puede ser ocupado de nuevo, entonces se lleva a cabo (swap in)Fallo de página y reemplazo de página: puede ocurrir que se deseen ejecutar páginas que no tengan asociadas tramas, produciéndose lo que se conoce como un fallo de página. Algoritmo de reemplazo de página: para saber que página va a ser reemplazada, el sistema operativo utiliza alguno o una combinación de las siguientes:

a. FIFO ( First In First Out): Se escoge la página que entro primerob. LRU (Least Referenced Used) (La usada menos recientemente): Se

lleva al disco la página que se uso hace más tiempo.c. NRU (Not Recently Used): Se lleva al disco una página que no ha sido

referenciada en el ciclo anterior.d. La no usada frecuentemente: Se lleva al disco la página que menos se

ha utilizado.e. Aleatorio: Se lleva al disco una página cualquiera.

Ejercicios:1) En un sistema con memoria virtual tenemos la siguiente cadena de referencia a

páginas y un sistema con 3 tramas, ¿Como actuara el sistema operativo si utiliza el algoritmo FIFO para el reemplazo de páginas? Indicar en que momento se produce un fallo o acierto de página y en caso de fallo que pagina es la reemplazada. Calcular el número de fallos de página.

0 6 4 0 2 3 2 4 6 3 2 1 6 3 4

Page 6: Tema 8 gestion de memoria.doc

SoluciónPasos 1, 2 y 3

0 6 4 0 2 3 2 4 6 3 2 1 6 3 4TRAMA1TRAMA2TRAMA3

Fallo(FALLO)Acierto(HIT)Pagina reemplazada

Pasos 4, 5, etc

0 6 4 0 2 3 2 4 6 3 2 1 6 3 4TRAMA1 0 0 0 0 2 2 2 2 2 2 2 1 1 1 1TRAMA2 6 6 6 6 3 3 3 3 3 3 3 3 3 4TRAMA3 4 4 4 4 4 4 6 6 6 6 6 6 6

Fallo(FALLO)Acierto(HIT)

F F F H F F H H F H H F H H F

Pagina reemplazada

0 6 4 2 3

Nª total de fallos de página = 8

2) En un sistema con memoria virtual tenemos la siguiente cadena de referencia a páginas y un sistema con 3 tramas, ¿Como actuara el sistema operativo si utiliza el algoritmo LRU para el reemplazo de páginas? Indicar en que momento se produce un fallo o acierto de página y en caso de fallo que página es la reemplazada. Calcular el número de fallos de página.

0 6 4 0 2 3 2 4 6 3 2 1 6 3 4

SOLUCIÓN

0 6 4 0 2 3 2 4 6 3 2 1 6 3 4

TRAMA1 0 0 0 0 0 0 0 4 4 4 4 4 4 4 4TRAMA2 6 6 6 2 2 2 2 2 3 3 3 3 3 0TRAMA3 4 4 4 3 3 3 6 6 6 6 6 2 2

F&H F F F H F F H F F F H H H F FPag. 6 4 0 3 2 6 3

Page 7: Tema 8 gestion de memoria.doc

10 fallos de página

3) En un sistema con paginación, dada la siguiente dirección lógica:[000 001, 1010 1111]cálcula la dirección física sabiendo que son 7 bits para número de marco y que la tabla de página es la siguiente. (todo en binario)

000000 0000101000001 0001011000010 0000010

SOLUCIÓNLa dirección física es 0001011 10101111

4) En un sistema con paginación, dada la siguiente dirección lógica:[01, AF]calcula la dirección física sabiendo que son 7 bits para número de marco y que la tabla de página es la siguiente. (Todo en hexadecimal)

0 0501 0B02 02

SOLUCIÓNLa dirección física es 0B AF

5) Supongamos una gestión de memoria bajo esquema de paginación. Tenemos un espacio lógico de 20 páginas de 1KB cada una y las mapeamos en una memoria física de 45 tramas.

a) ¿Cuántos bits deberá tener tanto una dirección física como una dirección lógica para poder representar a todas las direcciones de memoria?

[Nº Páginas, desplazamiento] = [25, 210] = 15bits

b) De estos bits cuantos son para representar la página y cuantos para el desplazamiento dentro de la página.

[Nº Páginas, desplazamiento] = [25, 210]

SOLUCIÓN5 bits para el número de página 25 >= 2010 bits para el desplazamiento (1KB)15 bits para representar una dirección lógica

6 bits para el número de marco 26 >= 4510 bits para el desplazamiento (1KB)16 bits para representar una dirección física

Page 8: Tema 8 gestion de memoria.doc

6) Si tenemos la siguiente tabla de segmentos de un proceso que esta en ejecución en este momento. Calcula las direcciones físicas a partir de las direcciones lógicas siguientes. ¿Todas las direcciones son correctas o el sistema nos devolverá algún error?

Lógica física[0, 130][4, 500][1, 0][2, 2500][5, 22][3, 1112]

SOLUCIÓN

Lógica física[0, 130] 80+130=210[4, 500] 2400+500=2900(Error)[1, 0] 2100+0=2100[2, 2500] 4000+2500=6500(Error

)[5, 22] 300+22=322[3, 1112] 350+1112=1462

7) Ejercicio de memoria virtual LRU:En un sistema con memoria virtual tenemos la siguiente cadena de referencia a páginas y un sistema con 4 tramas, ¿Como actuará el sistema operativo si utiliza el algoritmo LRU para el reemplazo de páginas? Indicar en que momento se produce un fallo o acierto de página y en caso de fallo que página es la reemplazada. Calcular el número de fallos de página.

1 2 5 7 0 3 4 3 2 6 0 6 7 6 4 5 4 0 2 5 4 3 5

Segmento Base Longitud0 80 2001 2100 3002 4000 17503 350 12004 2400 5005 300 35

Page 9: Tema 8 gestion de memoria.doc

SOLUCIÓNLRU 1 2 5 7 0 3 4 3 2 6 0 6 7 6 4 5 4 0 2 5 4 3 5

T1 1 1 1 1 0 0 0 0 0 6 6 6 6 6 6 6 6 6 2 2 2 2 2

T2 2 2 2 2 3 3 3 3 3 3 3 7 7 7 7 7 0 0 0 0 3 3

T3 5 5 5 5 4 4 4 4 0 0 0 0 0 5 5 5 5 5 5 5 5

T4 7 7 7 7 7 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4

F&H F F F F F F F H F F F H F H F F H F F H H F H

PAG 1 2 5 7 0 4 3 2 0 7 6 0

16 fallos de página

8) Igual que el anterior pero utilizando algoritmo FIFO:

SOLUCIÓN

FIFO 1 2 5 7 0 3 4 3 2 6 0 6 7 6 4 5 4 0 2 5 4 3 5

T1 1 1 1 1 0 0 0 0 0 6 6 6 6 6 6 5 5 5 5 5 5 5 5

T2 2 2 2 2 3 3 3 3 3 0 0 0 0 0 0 0 0 2 2 2 2 2

T3 5 5 5 5 4 4 4 4 4 4 7 7 7 7 7 7 7 7 7 3 3

T4 7 7 7 7 7 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4

F&H F F F F F F F H F F F H F H F F H H F H H F H

PAG 1 2 5 7 0 3 4 2 6 0 7