Vous êtes sur la page 1sur 71

Universidad de Cartagena

Programa de Ingeniera de Sistemas

Asignatura Sistemas Operativos

Tema
Gestin de Memoria

Contenido de la Presentacin 1. Descripcin del Tema y Objetivos

2. Introduccin a la Gestin de Memoria


3. Conceptos sobre gestin de Memoria 4. Tcnicas de Gestin de Memoria

5. Conclusiones

1.- Descripcin del Tema:


Conceptos fundamentales requeridos para la gestin de memoria. Se describe la gestin de memoria y cules los requisitos que trata de satisfacer. Adems de tcnicas utilizadas en la gestin de la memoria como: las particiones de memoria, la paginacin y la segmentacin. Objetivo General Presentar los principales conceptos y tcnicas utilizadas para la gestin de la memoria en un computador. Objetivos Especficos Presentar los conceptos bsicos involucrados en la gestin de la memoria. Presentar las tcnicas bsicas empleadas en la gestin de la memoria.

2.- Introduccin a la Gestin de Memoria


Qu es la Gestin de Memoria? La gestin de memoria es una tarea realizada por el Sistema Operativo de un computador que consiste en cargar y descargar procesos en memoria principal para que sean ejecutados. Para ello el S.O. gestiona lo que se conoce como MMU o Unidad de Administracin de Memoria, Este es un dispositivo hardware que transforma las direcciones lgicas en fsicas. Objetivos de la Gestin de Memoria Ofrecer a cada proceso un espacio lgico propio. Proporcionar proteccin entre los procesos. Permitir que los procesos compartan memoria. Maximizar el rendimiento del sistema.

Jerarqua de Almacenamiento
Registros Cach Memoria principal Disco Magntico Cinta Magntica Jerarqua tradicional de memoria

Registros Cach Voltil Memoria principal Cach de disco Interna

No voltil

Disco Magntico
Cinta Magntica Cinta magntica Disco ptico

Externa

Jerarqua moderna de memoria

condiciones en la jerarqua : - Al bajar de nivel aumenta la capacidad de la memoria. - Al bajar de nivel disminuye el coste por bit. - El registro es el ms costoso, despus el cache, etc... - Al bajar de nivel se observa que el tiempo de acceso aumenta. Acceder al disco ptico es ms lento que al disco magntico. - Al bajar de nivel, disminuye la frecuencia de acceso: el numero de veces que accede a la memoria. Tambin conocido como principio de localidad o cercana de referencia:

3. Conceptos sobre Gestin de memoria El principio de localidad o cercana de referencia:

Establece que un proceso durante su funcionamiento hace referencia a muchas funciones, pero durante un breve espacio de tiempo, el proceso referencia a un pequeo grupo de referencias.
La cach intenta que el tiempo de acceso sea mucho ms rpido para no tener que acceder a disco o Memoria principal, la diferencia entre Memoria interna y Memoria externa, es el disco magntico, tambin suele conocerse como Memoria secundaria.

Programa fuente

Compilador o Ensamblador

Otros mdulos Objetos

Mdulos Objeto

Bibliotecas del Sistema

Enlazador
Biblioteca del Sistema Cargada Dinmicamente Mdulo de Carga

pasos para cargar un programa en Memoria principal

Cargador

Imagen del Proceso en Memoria

3. Conceptos sobre Gestin de memoria

Fases para que un programa se convierta en proceso:


El Bloque de control de procesos Datos Instrucciones Referencias a datos Referencias a instrucciones: La Pilas relativas fsicas lgicas o simblicas:

3. Conceptos sobre Gestin de memoria Fases para que un programa se convierta en proceso:
Dir simblica: no tienen nada que ver con la posterior ubicacin fsica de ese dato, normalmente es cdigo empleado por el programador.

Direcciones Simblicas
PROGRAM
0

Direcciones relativas
PROGRAM JUMP 400
400

Direcciones absolutas
1024 PROGRAM JUMP 1424 1424 LOAD 2224 DATA

i JUMP I
LOAD J

LOAD 1200

J DATA

1200

DATA

2224

Dir relativa: Estas direcciones normalmente son las que utiliza el cargador y el enlazador. JUMP 400: significa, desde el principio saltar 400. Dir. absolutas o fsicas: son las que realmente se ocupan en memoria real, o memoria fsica.

3. Conceptos sobre Gestin de memoria Traduccin en Tiempo de ejecucin


Direccin Base

Limite

Direccin Absoluta

Direccin Relativa

CPU

<=
No

Si

Memoria

Error direccionamiento

La traduccin necesita ayuda de hardware, este no es muy complejo, el criterio concede al hardware lo necesario para realizar esa traduccin en tiempo de ejecucin.

3.- Conceptos sobre la Gestin de Memoria


El programa ubicado en memoria slo tiene direcciones relativas, entonces la CPU genera todas la direcciones relativas, y el usuario le suma el contenido de un registro hardware que contiene el inicio donde est ubicado el proceso (Direccin Base), entonces se obtiene la direccin absoluta, posteriormente podemos comparar esa direccin absoluta con otro registro hardware que contiene el lmite de la zona de memoria ocupada por el proceso, si est dentro del lmite podremos acceder a memoria, si est fuera del lmite provoca un error de direccionamiento. Con dos registros hardware, la suma y comparacin se realizar la traduccin. Proporciona un mecanismo de proteccin de la memoria porque si pasa del lmite que tiene cada proceso genera un error de direccionamiento.

Con este esquema el proceso, se puedo colocar en cualquier parte de la memoria, porque la traduccin la hace justo antes de pasar a ejecutar.
Cada vez que se cambie de proceso o de contesto, esos registros lmite y base deben actualizarse, y deben almacenarse en el BCP para que cada vez que cambie de proceso disponga de una direccin vlida.

3.- Conceptos sobre la Gestin de Memoria FUNCIONES del Gestor de Memoria


Reubicacin: En un sistema multiprogramado la memoria se encuentra compartida por varios procesos, por lo tanto, los procesos deben ser cargados y descargados de memoria. Proteccin: En un sistema con multiprogramacin es necesario proteger al sistema operativo y a otros procesos, de posibles accesos que se puedan realizar a sus espacios de direcciones. Comparticin: En ciertas situaciones, bajo la supervisin y control del sistema operativo, puede ser provechoso que los procesos puedan compartir memoria.

3.- Conceptos sobre la Gestin de Memoria


FUNCIONES del Gestor de Memoria
Organizacin Lgica: Tanto la memoria principal como la secundaria tienen organizacin fsica similar: Un espacio de direcciones lineal y unidimensional. Debe existir cierta correspondencia entre el S.O. y el hardware al tratar los datos y los programas de los usuarios de acuerdo con la estructura lgica que ellos presenten. Organizacin Fsica: Debe ser parte de la gestin de memoria, la organizacin del flujo de informacin entre la memoria principal y la memoria secundaria.

Debe controlar el intercambio entre Mp y Ms (Principal y Secundaria).

4.- Tcnicas para Gestin de Memoria Tcnicas de gestin de memoria 1. Asignacin completa y contigua: el proceso se ejecuta en una zona continua Mquina desnuda Monoprogramacin Particiones mltiples: Particiones fijas Sistema compaero Particiones variables.
2. -Asignacin completa y no contigua: Paginacin Segmentacin Segmentacin-paginacin 3.- Asignacin parcial y no contigua: Memoria Virtual

4.- Tcnicas para Gestin de Memoria Mquina desnuda y Monoprogramacin Mquina desnuda: Es un sistema donde no hay S.O, no hay gestor de Memoria, el propio programador se encarga de las operaciones. Suelen ser pequeos microprocesadores, dedicados a una sola cosa. Monoprogramacin: La Memoria se divide en dos partes: - Una parte para almacenar el S.O., en un extremo de la memoria, zona alta o baja, y - El resto se deja para procesos de usuarios ej: MSDOS.
La eleccin de donde se debe colocar el S.O. vendr dada por la ubicacin donde est el vector de interrupciones, lo normal es situarlo junto al vector de interrupciones, parte alta o baja, algunos sistemas prefieren separarlo.

4.- Tcnicas para Gestin de Memoria

Particiones mltiples:
Particiones fijas o Estticas Sistema compaero Particiones variables

Registro Lmite

Sistema Operativo + Vector de Interrupciones

Usuario

Limite Superior

Sistema Operativo

Usuario
Libre

Usuario

Registro Lmite

Limite Inferior
Sistema Operativo + Vector de interrupciones Libre

Libre

Vector de Interrupciones

Zona Baja

Zona Alta

Sin Vector de Interrupciones

4.- Tcnicas de Gestin de Memoria


Particiones Fijas o Estticas

Ejemplo de particin esttica en una memoria de 64 MB

4.- Tcnicas de Gestin de Memoria


Particiones Fijas o Estticas Seleccin del tamao de la particin: antes de implementar el sistema debe establecer los valores de la particin. Se debe considerar: El Nro de particiones determinar el grado de multiprogramacin del sistema,
si en cada particin hay un proceso y existen 3 particiones solo podr tener 3 procesos simultneamente, si se desea un grado de multiprogramacin elevado se necesitarn muchas particiones.

El tamao de la particin determina dos aspectos: 1.- el tamao mximo de un proceso, para que se pueda ejecutar este es necesario asignarlo a una particin, por lo tanto el tamao mximo de un proceso es el tamao mximo de la particin. 2.- el tamao del proceso, afecta la cantidad de memoria que asigne a un proceso, es decir, una vez que establezca las particiones, cuando llega un proceso, se asigna a una particin, y este puede o no ocuparla entera, si no ocupa toda la particin, hay un desperdicio de memoria que se conoce como fragmentacin interna.

Tcnicas de Gestin de Memoria


Asignacin de Memoria con Particiones Fijas o Estticas Asignacin de Memoria en Particin Esttica

Algoritmos de Colocacin, Particiones distintas: hay varias alternativas. (a) Una cola de procesos por particin: llega el proceso y lo sito en la cola donde menor fragmentacin interna genere. Cuando la particin queda libre selecciona el primero de la cola Inconveniente: puede haber particiones libres con procesos esperando en otra cola porque su particin est ocupada. . (b) Una Sola cola de Cola de Procesos.

4.- Tcnicas de Gestin de Memoria


Particiones Fijas o Estticas Con particiones estticas surgen dos dificultades: Un programa puede ser demasiado grande para caber en una particin, por lo tanto si el programa no se ha diseado mediante superposicin, simplemente no se puede ejecutar. De otro modo, podrn estar en memoria aquellos mdulos del programa que se necesiten, pero se requerir que estos mdulos sean intercambiados a medida que la ejecucin progresa. Se malgasta el espacio interno en cada particin, cuando el bloque cargado es ms pequeo, se conoce como fragmentacin interna. Es decir, cualquier proceso sin importar su tamao, ocupar una particin completa.

4.- Tcnicas de Gestin de Memoria


Particiones Fijas o Estticas

Algoritmos de seleccin: Mejor ajuste: Cuando una particin queda libre, elegimos el proceso que menor fragmentacin interna produzca.

Primer ajuste: Se recorre la cola hasta encontrar el primer proceso que quepa en la particin.
Si se observa, La funcin de colocar procesos en memoria, en una particin determinada, es hacer que un proceso sea aceptado en el sistema, que pase del estado de nuevo al estado de listo. La transicin de nuevo a listo es del planificacin a largo plazo.

4.- Tcnicas de Gestin de Memoria


Particiones Fijas o Estticas
Proteccin entre particiones
Limite Inferior
Limite Superior

Direccin Absoluta

CPU

>=
No

Si

<
No

Si

Memoria

Error direccionamiento

Primera Alternativa: Dos registros lmites, zona superior y zona inferior de la particin: Inicia en una direccin absoluta.

4.- Tcnicas de Gestin de Memoria

Particiones Fijas o Estticas Proteccin entre particiones


Longitud

Base

Direccin Relativa

CPU

<=
No

Si

Direccin Absoluta

Memoria

Error direccionamiento

Segunda Alternativa: Dos registros, un registro base y otro de longitud Partimos de una direccin relativa, se compara con la longitud, si est dentro de la particin se puede acceder a el.

4.- Tcnicas de Gestin de Memoria

Particiones Fijas o Estticas, ejemplo


S.O.
312 327

T-1 15K T-2 44K

La figura (a) muestra un ej. De ocupacin de memoria, la figura (b), muestra la Tabla, usada por el administrador de memoria, y (c) la Tabla de particiones
No Particin 1 2 3 4 5 6 Base Particin 312 327 371 396 576 606 Nombre proceso T-1 T-2 T-3 T-4 Tamao en Kb 15 44 25 0 30 0 Tamao Particin 15 44 25 180 30 34 estado 1 1 1 0 1 0

371

396

T-3 25k 180k

576

606

T-4 30K 34 K

(b)
Nmero de la particin 1 2 3 4 5 6 Base de la particin 312k 327k 371k 396k 576k 606k 15 44 25 180 30 34 Tamao de la particin Estado de la particin ASIGNADA ASIGNADA ASIGNADA LIBRE ASIGNADA LIBRE

640

(a)

(c)

La ocupacin de memoria en la figura (a), tienen cuatro (4) procesos usando memoria,(t-1,t2,t3,t4), en (b). Los cuatro procesos, han sido asignados a particiones relacionadas con la distribucin de la memoria. (c) el estado de la tabla de particiones

4.- Tcnicas de Gestin de Memoria

Particiones Fijas o Estticas, Ejemplo


S.O.
312 327

Suponga que termina, el proceso T-1, y llegan tres trabajos. T-5 de 10, T-6 de 140 K y T-7 de 190 K.
No Particin 1 Base Particin 312 327 371 396 576 606 T-4 T-2 T-3 Nombre proceso 0 44 25 0 30 0 Tamao en Kb 15 44 25 180 30 34 Tamao Particin estado 0 1 1 0 1 0

T-1 15K T-2 44K

371

396

T-3 25k 180k

2 3 4 5 6

576

606

T-4 30K 34 K Nmero de la particin 1 2 3 4 5 6 Base de la particin 312k 327k 371k 396k 576k 606k 15 44 25 180 30 34 Tamao de la particin

(b)
Estado de la particin LIBRE ASIGNADA ASIGNADA LIBRE ASIGNADA LIBRE

640

(a)

(c)

La ocupacin de memoria, con las nuevas peticiones, podran asignarse as: T-5 en la particin 1, T-6 en la particin 4 pero T-7 no se puede ubicar.

4.- Tcnicas de Gestin de Memoria

Particiones Fijas o Estticas , Ejemplo


S.O.
312 327

No Particin

Base Particin

Nombre proceso

Tamao en Kb

Tamao Particin

estado

T-5 15K T-2 44K

1
2 3 4 5 6

312
327 371 396 576 606 Nmero de la particin

T-5
T-2 T-3 T-6 T-4

10
44 25 140 30 0

15
44 25 180 30 34 Tamao de la particin

1
1 1 1 1 0

371

396

T-3 25k T-6 180k

576

(b)

Base de la particin 312k 327k 371k 396k 576k 606k 15 44 25 180 30 34

Estado de la particin ASIGNADA ASIGNADA ASIGNADA ASIGNADA ASIGNADA LIBRE

606

T-4 30K 34 K

1 2 3 4 5 6

640

(a)

(c)

Inconvenientes: Por un lado, presenta fragmentacin interna, si el proceso no ocupa toda la particin se desperdicia espacio. El tamao de la particin es fijo. Si se desea cambiar el tamao hay que volver compilar el sistema, El tamao del proceso est limitado a la mxima particin, T7, no se puede ubicar. Fi = (Dt1 + Dt2 + Dt3 + Dt4 . + Dtn) => Fi= 5+0+0+40+0 =>Fi = 45 K

4.- Tcnicas de Gestin de Memoria

Tcnicas de Gestin de Memoria


Particiones Dinmicas
Usa la memoria que l necesite, se va creando lo que necesita. Si un sistema se suspende o bloquea sale de memoria y deja ese espacio para otro proceso. Con este esquema las particiones en numero y tamao van cambiando a lo largo del tiempo. Los procesos reubicables. son

Efectos de la Particin Dinmica

4.- Tcnicas de Gestin de Memoria


Asignacin de Memoria con Particiones Dinmicas La asignacin de memoria en un esquema con particiones dinmicas, consiste en determinar en qu hueco ubicar un nuevo proceso. Para esto existen tres algoritmos: mejor ajuste, primer ajuste o prximo ajuste. Mejor ajuste: consiste en ubicar el proceso en el espacio de memoria que ms se ajuste a su tamao. Primer ajuste: consiste en ubicar el proceso en el primer hueco disponible, recorriendo desde el inicio de la memoria, cuyo tamao sea suficiente para el proceso. Prximo ajuste: consiste en ubicar el siguiente hueco disponible, que sea suficientemente grande, a partir de la ltima asignacin de memoria.

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas Con particiones dinmicas surgen las siguientes dificultades:

Producto de la entrada y salida de procesos en la memoria, se van generando particiones cada vez ms pequeas de la memoria sin utilizar, lo que se conoce como fragmentacin externa.
Para solucionar este problema se debe recurrir a la defragmentacin (compactacin) de la memoria para eliminar los espacios (huecos) entre procesos. Esto significa que los procesos deben ser reubicados en memoria en forma dinmica

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas, La compactacin de memoria
Sistema Operativo Uso Sistema Operativo Uso Uso

Libre
Uso

Uso

Libre Libre

Uso

Libre

Inconvenientes: - Por un lado necesita que los problemas sean reubicables. - Es muy costoso en tiempo, mientras se produce la compactacin no se puede ejecutar ningn proceso, el sistema se paraliza. Resuelve la fragmentacin externa

Para solucionar la fragmentacin externa hay una tcnica que se conoce como compactacin: o recoleccin de basura, incluso en algunos libres aparece como reducto de la basura. La idea de la compactacin es agrupar todos los procesos que estn en memoria para formar un gran hueco libre.

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas, Compactacin de memoria

Uno de los aspectos en el diseo de la compactacin es saber cuando se debe de realizar, hay 3 alternativas: 1) Cuando haya un porcentaje de la utilizacin de la memoria, 80%, 70%, el problema es que se puede compactar cuando no haya procesos que quieran acceder al sistema.

2) Cuando hay procesos esperando para entrar en memoria, el problema es que el sistema debe estar continuamente comprobando si algn proceso est esperando.
3) Cada un tiempo determinado, 10 min, 20 min... el problema es determinar el tiempo.

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas, Algoritmos de Colocacin

Se encarga de colocar un proceso en uno de los bloques libres existentes, a la hora de decidir qu algoritmo de colocacin usar, es necesario hacer un examen cuidadoso, para evitar que produzca alta fragmentacin externa. Se emplean los siguientes algoritmos: Primer ajuste: el proceso se coloca en el primer hueco donde quepa. Mejor ajuste: donde mejor quepa, dejando menos sitio. Siguiente ajuste: como el primero pero empezando desde el ltimo hueco que se asign. Peor ajuste: en el que ms sitio haya, en el hueco ms grande.

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas, Algoritmos de Colocacin
8k 8k 12k Primer Ajuste 22k 6k

Se asigna un bloque de 16 k En Primer ajuste: entra al principio en el hueco de 22. En mejor ajuste: entra en el hueco de 18 k En el peor ajuste: entra en el mayor, el de 36 k. En el siguiente ajuste: entra en el siguiente despus del anterior, donde quepa, es decir el de 36, si llega al final y no hay se debe empezar de nuevo.

12k

Mejor Ajuste

18k ultimo bloque asignado 16k

2k

8k 6k 14k

8k 6k 14k Siguiente ajuste Peor ajuste 20k

36k

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas, Algoritmos de Colocacin
8k 8k 12k Primer Ajuste 22k 6k

Cul de los 4 algoritmos es el mejor? El peor ajuste: rompe los ajustes mayores, e impide que entren los procesos mayores. El mejor ajuste: crea fragmentos muy pequeos, luego no se pueden utilizar. Es el peor algoritmo de todos.

12k

Mejor Ajuste

El siguiente ajuste: busca el primer hueco tras la anterior asignacin, los procesos los ubica donde hay un hueco grande. ej: empiezan a entrar procesos y se colocan uno tras otro, pero luego dejan de usarse y sus huecos quedan libre, sin embargo los siguientes se siguen asignando abajo, dividiendo el espacio grande. El primer ajuste: es el mejor, el ms simple, el ms rpido y el que mejor resultados da. Siempre intenta ocupar los procesos al principio y deja los huecos grandes abajo.

18k ultimo bloque asignado 16k

2k

8k 6k 14k

8k 6k 14k Siguiente ajuste Peor ajuste 20k

36k

4.- Tcnicas de Gestin de Memoria


Requisito de Reubicacin Cualquier mecanismo de gestin de memoria debe poder reubicar los procesos, sin perder las referencias que se hagan dentro de l.
Direccin Lgica

Soporte Hardware para la Reubicacin

4.- Tcnicas de Gestin de Memoria


Mtodos de administracin de memoria con esquema de particiones variables: Mapa de bits Listas Enlazadas Sistema de colegas, compaero o asociados Ejemplo:

Administracin de Memoria con Sistema de Colegas

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas, ELEMENTOS DE CONTROL DE LA MEMORIA El sistema requiere conocer qu lugar est libre y cual ocupado. dos estrategias:

1.- El mapa de bits:


Es una estrategia simple, lo que hace es tener un bit por unidad de asignacin. Puede ser bit, byte, kbyte, tan grande o tan pequea como uno quiera. Si el bit vale 1, esa unidad de asignacin est ocupada, si vale 0 significa que est libre.
P1 1 1 1 1 0 0 0 1 1 1 P2 1 1 1 1 1 1 1 P3 1 1 1 0 0 1 P4 1 1 1 1 P5 1 1 0 0 0

Cuanto ms grande sea la unidad de asignacin, el mapa de bits es ms pequeo, a la inversa es mayor. Cul es mejor? Grande: su problema es que tiene mayor fragmentacin interna, porque lo mnimo es una unidad de asignacin, Si es de 32k, eso ser lo mnimo que tenga asignado. No debe ser ni muy grande ni muy pequeo. Es complicado localizar un hueco de cierto tamao, es decir, uno de 30 unidades de asignacin, es buscar 30 ceros consecutivos, es costoso.

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas, ELEMENTOS DE CONTROL DE LA MEMORIA 2. La lista Enlazada: Es una estructura que contiene informacin sobre todos los elementos Existentes. Cada elementos de esa lista tiene la siguiente informacin:
Tipo: Hueco o Proceso Comienzo Tamao que ocupa

H 4

14 6

H 20 2

25 4

H 29 3

Est claro que el tamao es mayor que el mapa de bits, porque usa ms informacin. La lista est ordenada por direcciones. La ventaja que tiene la lista es que cuando acaba un proceso, el tipo casa de P a H, es muy fcil liberar memoria. Adems en el cambio de tipo deben de hacerse la fusin de los huecos si hay dos adyacentes. En ambos casos siempre se finalizar el proceso, si hay dos huecos a los lados se deben fusionar entre los dos, si hay un hueco pues con l, si est rodeada de procesos es lo ms fcil. Para que la fusin sea ms simple debe de hacerse como una lista enlazada.

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas, ELEMENTOS DE CONTROL DE LA MEMORIA

La lista Enlazada:
En el cambio de tipo debe de hacerse la fusin de los huecos, si hay dos adyacentes. En ambos casos siempre se finalizar el proceso, si hay dos huecos a los lados se deben fusionar entre los dos, si hay un hueco pues con l, si est rodeada de procesos es lo ms fcil. Para que la fusin sea ms simple se hace con una lista enlazada. Una alternativa a esa lista enlazada es tener en realidad dos listas enlazadas: una lista de procesos una lista de huecos Cada lista se puede ordenar como quiera, ej: la lista de procesos se ordena por direcciones y la de huecos por tamao de mayora a menor. El ordenarla de menor a mayor tamao facilita la poltica de colocacin del proceso. Liberar un proceso implicara pasar de una lista a otra el elemento. Esta estrategia de tener dos listas enlazadas, permite incluso optimizar, lo que consiste en implementar la lista de huecos directamente en los propios huecos de memoria, significa, tener en el sistema un montn de procesos y huecos.

Hueco libre

Proceso

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas - fragmentacin Externa

El sistema de particiones fijas, con el problema del grado de multiprogramacin fijo, tantas particiones tantos procesos y la fragmentacin interna. El sistema de particiones variables, el problema era la fragmentacin Externa, y aparte el control de la memoria, sea con mapa de bits o lista enlazada, no es tan fcil como en las particiones fijas. La fragmentacin Externa: Es la suma de espacios o fragmentos, pequeos no utilizables, por que all no cabe ningn proceso.

Ambos tienen la dificultad ; de no partir trabajos, se colocan como tal en las particiones.

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas - Sistema Compaero, Colega o asociado El Sistema Compaero intenta vencer las dificultades en un sistema con un grado de multiprogramacin variable, que no tenga fragmentacin externa y con un control de memoria sencillo. La Idea Base: Asignar a los procesos, bloques de memoria, de longitud variable pero limitados. Considera un tamao de bloque mnimo= 2i Considera un tamao de bloque mximo=2m, la memoria fsica existente para procesos. cada bloque asignado se encuentra entre esos dos tamaos pero siempre en potencia de dos. 2i 2k 2m Inicialmente se tiene la listas i: es la lista de bloques libres de tamao 2n, para cada uno de los tamaos posibles tenemos una lista de bloques libres, inicialmente todas vacas menos la del tamao mximo que tendr un elemento. Cuando un proceso pide un bloque de tamao B, el sistema busca un bloque 2i libre tal que 2i-1 < B 2i, el bloque libre que ms se adapte a l. Si no hay libre, divide 2i+1, en 2 bloques de tamao 2i, uno queda libre y otro se asigna. Si no hay 2i+1 se divide en uno ms superior.

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas - Sistema Compaero, Colega o asociado
Se llama sistema compaero porque se dividen en 2 son los bloques compaeros. Si no hay uno libre: divide 2i+1 en 2 bloques: 2i (libre) y 2i (asigna) si no hay 2i+1 divide 2i+2 en : 2i+1 (libre) 2i+1: 2i (libre) 2i (asigna)
Ej: Un proceso pide 45K y tengo un bloque de 1M, entonces voy dividiendo.

512 1M 512 256 256 128 64

128
64 (asigna)

4.- Tcnicas de Gestin de Memoria


Particiones Dinmicas - Sistema compaero, Asociado, o Colegas
Memoria fsica 1 MB

P1 solicita 45 k
P2 solicita 110 k P3 solicita 160 k P4 solicita 95 k Fin P3

45k
45k 45k 45k 45k

64k
64k 64k 64k 64k

128 k
P2 110k P2 110k P2 110k P2 110k

256 k
256 k P3 160 k P3 160 k 256 k P4 95k P4 95k 128 k 128 k

512 k
512 k 512 k 256 k 256 k

Fin P2
P5 Solicitud 80 k Fin P1 Fin P5 Fin P4

45k
45k

64k
64k

128 k
80 k P5 80 k 512 k

256 k
256 k 256 k

P4 95k
P4 95k P4 95k P4 95k 1 Mb

128 k
128 k 128 k 128 k

256 k
256 k 256 k 256 k

128 k

Este algoritmo presenta un grado de multiprogramacin variable, por que asigna en bloques de ciertos tamaos potencia de 2. Tiene fragmentacin interna y fragmentacin externa.

4.- Tcnicas de Gestin de Memoria


Tcnica de Paginacin. El problema planteado en los anteriores sistemas es intentar mantener el proceso en una zona contigua de memoria, La paginacin rompe ese esquema de asignacin contigua y se localizan asignaciones no contiguas, es decir, el proceso no tiene porque estar en una misma zona, este se puede dividir , y alojarse en distintos huecos de memoria; reduce la fragmentacin interna.

Los fundamentos bsicos de la paginacin.


La memoria se divide en una serie de unidades llamadas marcos. El proceso lo divide en pginas. El tamao del marco y de la pgina es el mismo. El objetivo de la paginacin, es tomar un proceso, dividirlo en pginas y lo colocarlo en marcos. La caracterstica de la paginacin es la separacin que hace entre la visin que tiene el usuario del proceso y la visin que tiene del sistema operativo del mismo. El usuario ve sus procesos como una zona contigua y el sistema lo ve como una divisin de pginas, cada una en un marco. Evidentemente para que la paginacin sea efectiva se necesita hardware que permite hacer la traduccin de esa pgina al marco.

4.- Tcnicas de Gestin de Memoria


Tcnica de Paginacin. Otra caracterstica de la paginacin es la fragmentacin interna, como se puede ver en la figura.
marco 0 pgina 0 marco 1 pagina 3

pgina 1

Hardware de
paginacin

marco 2

pagina1

pgina 2 pag marco pagina 3

marco 3

marco 4

pagina 0

marco 5 Proceso

pgina 2

Un proceso se debe dividir en pginas, el nmero de pginas debe ser entero, si el proceso no alcanza a ocupar la ltima pgina se produce la fragmentacin interna.

4.- Tcnicas de Gestin de Memoria


Tcnica de Paginacin. Como cargar un programa en la memoria de un Sistema Paginado Para cargar un programa en Memoria. se realizan 3 fases: 1) Determinar el nmero de pginas que tendr el proceso, para ello se divide el tamao del proceso por el tamao de la pgina, siempre debe ser un nmero entero. Se redondea por exceso. 2) Se buscan los marcos libres en el sistema para alojar esas pginas, para realizar esa bsqueda de marcos libres se necesita una estructura de control denominada la tabla de marcos. 3) Una vez encontrados los marcos libres, se van cargando las pginas marco a marco.
Posteriormente para poder saber en qu marco est cada pgina se necesita una estructura que se conoce como la tabla de marcos. Tenemos un proceso que ocupa 4 pginas, ocupamos 4 marcos, asignados as, pg 0 marco 13 pg1 marco 14 pg2 marco 18 pg3 marco 20 no es necesario que estn continuos, vale cualquier marco.

4.- Tcnicas de Gestin de Memoria


La Tcnica de Paginacin

Asignacin de pginas de procesos a marcos libres

Estructura de Datos en el tiempo (f)

4.- Tcnicas de Gestin de Memoria


Tcnica de Paginacin. TABLA DE MARCOS Es nica en el sistema. Contiene o indica qu marco est libre y cual marco est ocupado, lleva el control de la memoria libre y la memoria ocupada. Esta tabla tiene una entrada por marco en el sistema. 1 entrada por marco N de entradas= Tamao M. fsica / Tamao Marco La entrada del marco dice si est libre u ocupado. Si est ocupado lo que contiene es: el proceso y la pgina del proceso que est ocupando ese puesto. El nmero de pgina y el nmero del proceso.
Ej: suponga 512Kb RAM, y marcos de 8k. NE = 512 Kb / 8 k => NE = 64000 marcos Ej: un proceso de 78K, requiere de Marcos para alojar el proceso as MP= 78k / 8 = 9.75 MP 10 Marcos, se aproxima a la prxima unidad.
No marco 1 2 Tamao 8k 8k Estado Libre Ocupado

3
4

8k
8k

Ocupado
libre

4.- Tcnicas de Gestin de Memoria


Tcnica de Paginacin. TABLA DE PAGINAS: Hay una tabla por proceso. Al contrario a la de marcos que hay una sola para el sistema. Posee una entrada por pgina que pueda tener el proceso. Cada entrada, contiene el nmero de marco donde se encuentra ubicada. La tabla de pginas es un elemento muy importante a la hora de traducir direcciones. Cuando el programa genera una direccin lgica.
No Pagina No marco 3 3 7 2

La visin del usuario, es de paginas contiguas, y la del sistema es de paginas dispersas. El usuario genera direcciones lgicas dentro de la zona contigua, que debe traducirse a una direccin fsica, Cada vez que se requiera traducir una direccin de lgica a fsica se hacen 2 accesos a memoria: primero acceder a la tabla de pginas y luego a la direccin fsica verdadera. Evidentemente es una traduccin bastante lenta.

1 2 3 4

4.- Tcnicas de Gestin de Memoria


Traduccin de Direccin lgica a Fsica en Paginacin Ejemplo:

Direccin relativa 1502 en binario 0000010111011110


Direccin lgica de 16 bits

El usuario genera direcciones lgicas dentro de la zona contigua, esta zona necesita traducirse a una direccin fsica, para esa traduccin se necesita de ciertas estructuras con el apoyo del hardware para hacer traduccin del nmero de pginas a numero de marcos, para eso se requiere de la tabla de pginas.

4.- Tcnicas de Gestin de Memoria


Traduccin de Direccin lgica a Fsica en Paginacin Direccin relativa 1502 en binario 0000010111011110
Direccin lgica de 16 bits

En la traduccin de direccin en un sistema paginado la direccin lgica est compuesta por 2 componentes, un nmero de pgina y un desplazamiento.

Ese nmero de pgina se usa como ndice en la tabla de pginas, se toma el nmero de pginas, se asigna el puntero y se usa como ndice, a travs de la TP obtener el nmero de marco donde se encuentra ubicada, una vez que tengo el marco, la direccin fsica es la composicin del nmero de marco y el desplazamiento.

El tamao de la pgina viene dado por el hardware y viene dado en potencias de 2. Los valores que suele traer es de 512 a 4096.

4.- Tcnicas de Gestin de Memoria


Traduccin de Direccin lgica a Fsica en Paginacin Direccin relativa 1502 en binario 0000010111011110
La definicin del tamao de pgina en potencias de dos simplifica el esquema, con un espacio de direcciones lgicas de 2n pginas Se tiene un tamao de pgina de 2m pginas.
Direccin lgica de 16 bits

El proceso de traduccin es el siguiente, en primer lugar, se extrae el nmero de pginas, que es en realidad lo primeros m-n bits de la direccin lgica. El usuario tiene la direccin lgica, ese espacio es de 216 bits, mi pgina tiene un tamao de 210 bits. Por lo tanto hay 6 bits para decidir el n de pgina. m=16 y n=10 Con ese nmero de pgina se obtiene el nmero de marco, se busca en la tabla de pgina y se obtiene el nmero del marco, finalmente la direccin fsica es la direccin del marco es nmero del marco por su tamao ms su desplazamiento. .

4.- Tcnicas de Gestin de Memoria


Tcnica de Paginacin. Usando buffer de traduccin adelantada (TLB). La direccin lgica. Cada vez que se genere una direccin lgica se tiene que ir a la tabla de pginas, para obtener el marco y con ello la direccin fsica, la TLB se evita ir a la tabla de pginas, es una especie de Memoria cache. que contiene ciertas entradas de la Tabla de Paginas, si se encuentra ah la entrada de la Tabla de Paginas se puede generar la direccin fsica, se reduce un acceso, si no hay acierto, habr que recurrir a la Tabla de Paginas, es una forma de optimizar el acceso a la Tabla de Paginas. Con la TLB, en el sistema cada vez que se genera una direccin lgica, hay que controlar si la entrada est en la TLB, si se encuentra genera la direccin fsica, si no se encuentra hay que acceder a la Tabla de Paginas y actualizar la TLB, Esta debe tener siempre las ltimas entradas a las que se ha hecho referencia.

4.- Tcnicas de Gestin de Memoria


Tcnica de Paginacin. Usando buffer de traduccin adelantada (TLB).
Direccin lgica 1502. Proceso de traduccin, pasarlo a formato pgina desplazamiento: Es decir extraer el n de la pgina. Toma la dir lgica, se divida por el tamao de la pgina: 478 La pgina de desplazamiento: pg 1 y desplazamiento 478. 1502: 1024 = 1 y resto 478 Luego se pasa a un marco desplazamiento, se usa la tabla de pginas: La entrada 1 dice que es el marco 2: Marco 2 y desplazamiento 478, la dir fsica es: direccin lgica de 16 bits

4.- Tcnicas de Gestin de Memoria


Tcnica de Paginacin. recomendaciones

LA FRAGMENTACIN La fragmentacin externa es memoria libre pero que no se poda asignar a un proceso, No tiene. porque cualquier marco se puede asignar a cualquier proceso.

La fragmentacin interna es memoria asignada a un proceso que no se usa, luego s tiene fragmentacin interna, en la ltima pgina.
En estos sistemas, lo primero que se debe hacer, al tiempo de ejecucin es dividir el proceso en pginas, si el tamao del proceso no es mltiplo del tamao de la pgina, esta no se ocupar entera. La fragmentacin interna, es la media del tamao de la pgina entre dos.

4.- Tcnicas de Gestin de Memoria


Tcnica de Paginacin. recomendaciones

TAMAO DE LA PGINA
Viene a de acuerdo con el hardware. Adems su tamao, siempre ser en potencias de dos para que la traduccin sea ms simple. Sin embargo en determinas sistemas al diseador, se le ofrece un rango de valores para que escoja uno de esos valores.

Normalmente los rangos van entre pginas de 8K y 512 bytes.


Para determinar el valor que se debe escoger para un sistema hay dos aspectos que influyen en la seleccin: 1.- La fragmentacin interna qu es preferible? pginas pequeas para que sea lo menor posible la fragmentacin interna. 2.- El tamao de la Tabla de pginas conviene pginas grandes para tener menos pginas en cada proceso y que no ocupe mucho la tabla de pginas.

4.- Tcnicas de Gestin de Memoria


Tcnica de Paginacin. recomendaciones

TAMAO DE LA PGINA
La frmula para calcular el valor ptimo del tamao de la pgina. E=N de bytes que ocupa una entrada en la T. de pginas P=Tamao de la pgina. Teniendo esos valores, se sabe que por la fragmentacin interna el desperdicio es la mitad del tamao de la pgina, aparte de la fragmentacin interna, se necesita tener una tabla de pginas, El tamao que ocupa una tabla de pginas es: E*S; s=n de entradas. Es el nmero de entradas por el nmero de bytes de cada entrada. Si la ecuacin se iguala a 0 y se deriva para calcular el ptimo , se obtiene el valor ptimo de P=la raz cuadrada de 2 por el tamao medio de un proceso por el n de bytes de una entrada en la tabla de pginas.

4.- Tcnicas de Gestin de Memoria


La tcnica de Segmentacin de memoria Otra forma de subdividir el programa es la segmentacin. En este caso el programa y sus datos son divididos en segmentos, sin ser necesario que todos sean de igual tamao. Traduccin de Direccin lgica a Fsica

Tabla de Segmentos del Proceso

N Segm. Inicio de Segm. Longitud

4.- Tcnicas de Gestin de Memoria


Tcnica de Segmentacin.

Visin
Se intenta asemejar a la visin del usuario. Se intenta dividir en segmentos los distintos componentes del sistema, agrupa las dos visiones. Con los segmentos se obtiene la direccin lgica y se hace la traduccin a direccin fsica, igual que en el sistema paginado. Para realizar esa traduccin, al igual que en el sistema paginado se usa la tabla de segmentos.

4.- Tcnicas de Gestin de Memoria


Tcnica de Segmentacin.

Traduccin de direcciones en segmentacin:


las pginas son segmentos de un tamao distinto. En la tabla de segmentos hay una entrada por cada segmento que posea el proceso, esa entrada contiene la direccin de inicio donde est ubicado ese segmento, llamado base. El tamao del segmento: cada segmento puede tener un tamao distinto. Usa bits de proteccin, igual que en el sistema paginado. La tabla de segmentos: es un elemento importante en la traduccin de direcciones. Con esta estructura se sabe si la memoria est ocupada con un proceso, aparte de esta estructura se requiere, otra para llevar el control de la memoria libre. se usan listas enlazadas o los mapas de bits, estructuras vistas en el sistema de particiones variables.

4.- Tcnicas de Gestin de Memoria


Tcnica de Segmentacin.

Traduccin de direcciones en segmentacin:


Para determinar el tamao de cada segmento existe algo de libertad, pero el hardware indica cual es el tamao mximo del segmento, que determinara los bits requeridos para el desplazamiento. Ese nmero de segmento se usa como ndice en la tabla de segmento, esta indica donde comienza el segmento y cuanto ocupa.

4.- Tcnicas de Gestin de Memoria


Tcnica de Segmentacin.

Traduccin de direcciones en segmentacin:

STLR (registro de longitud de la tabla de segmento) es un registro que contiene la longitud de la tabla de segmentos, es decir, el nmero de segmentos que posee el proceso. Ese registro se encarga de la validez de acceso a un segmento, igual que en el sistema paginado. Cada vez que cambie de proceso, se debe cambiar su valor. STBR (Registro que apunta a la tabla de segmento) es un registro hardware donde cada vez que se cambe de proceso se tiene que cambiar el valor del registro. Apunta a la direccin de comienzo de la tabla de segmento del proceso que est en ejecucin.

4.- Tcnicas de Gestin de Memoria


Tcnica de Segmentacin.

En un sistema Segmentado, existen 3 aspectos de proteccin:


1. Si se puede acceder en modo lectura o en modo escritura. 2. La validez de acceso a un segmento, viene controlada por el registro de la longitud de la tabla de segmento. 3. La validez de acceso dentro de un segmento, se tiene la direccin lgica con un nmero de segmento y un desplazamiento, se supone que el desplazamiento est dentro del segmento, se debe comprobar. Se comprueba a travs de la tabla de segmentos, que aparte de tener la direccin de inicio de un segmento tiene la longitud del mismo.

4.- Tcnicas de Gestin de Memoria


Tcnica de Segmentacin. Ejemplo de anlisis para la traduccin.
Direccin lgica de 16 bits.| Segmentacin mximo= 4Kbytes | Referencia: 4848 Determinar el formato de la direccin lgica. Se debe determinar cuantos bits corresponden al segmento y cuantos al desplazamiento. Segmento desplazamiento 4 12 Desplazamiento = 12 bits 4k = 22 210 Entradas en una tabla de segmentos, cuntos segmentos cmo mximo podr haber? 16 = 2 4 Se realizara la traduccin de la direccin 4848. 1 Extraer el nmero del segmento = m-n (bits + significativos) (16 12 = 4) M = nmero de bits de la direccin lgica. N = bits requeridos para el desplazamiento. Se divide la direccin por el tamao del segmento mximo: 4848 div 4096 = 1 4848 mod 4096 = 753 (1,753) El nmero es fijo, no tiene porqu ocuparlo todo, por eso se ve el tamao mximo. 2 Se comprueba si el nmero de segmento es vlido (STLR). 3 Usar el nmero de segmento cmo ndice de la tabla de segmentos (STBR) 4 Comprobar si el desplazamiento es vlido (753 1950) (un valor supuesto). 5 Obtener la direccin fsica. Sumar al desplazamiento a la direccin base del segmento. Si el segmento 1 inicia en la direccin 8224: 8224 + 752 = 8976 (direccin fsica) .

4.- Tcnicas de Gestin de Memoria


Tcnica de Segmentacin. Caractersticas del Sistema Segmentado: Cada vez que se accede a memoria, en realidad hace 2 accesos a ella, en cada referencia se debe ir primero a la tabla de segmentos (STLR) y luego al dato, igual que en el sistema paginado. Para reducir ese defecto del doble acceso se puede emplear una TLB para evitar tener que acceder a la tabla de segmentos. Los procesos son reubicables: cada vez que se genera una direccin al momento de ejecucin, es cuando se traduce de direccin lgica a direccin fsica. Comparticin: La tabla de segmentos debe tener un contador que indica cuantos procesos estn usando ese segmento. Fragmentacin: externa. puede haber huecos sobrantes muy pequeos, no hay segmentacin interna, porque se crean segmentos de longitud variable. Poltica de ubicacin de segmentos: donde ubicar cada uno de los segmentos, es similar a las particiones variables.

Compilacin por separado de los segmentos.

4.- Tcnicas de Gestin de Memoria


Tcnica de Segmentacin Paginada.

Se Tiene un proceso, o programa este se divide en segmentos, igual que si fuera un sistema segmentado, posteriormente se pagina, cada uno de esos segmentos, esas pginas son las que realmente estn ubicadas en Memoria Principal. En este caso, el proceso de traduccin es algo distinto, la direccin lgica tiene ahora 3 componentes. Se toma el nmero de segmento y a travs de l se obtiene la entrada a la tabla de segmento que apunta a una tabla de pgina, se toma el nmero de pgina y se usa como ndice en la tabla de pgina, este retorna nmero de marco donde esta almacenada, con en ese marco se obtiene la direccin fsica.

4.- Tcnicas de Gestin de Memoria


Tcnica de Segmentacin Paginada.

Resumen de las Tcnicas de Gestin de Memoria


Tcnica Esquemas de Asignacin Contigua Particin Esttica
La memoria principal se divide en un conjunto de particiones estticas, durante la generacin del sistema. Un proceso se puede cargar en una particin de igual o mayor tamao. Las particiones se crean dinmicamente, de forma que cada proceso se carga en una particin de su mismo tamao. Sencilla de implementar, poca sobrecarga del sistema operativo. Empleo ineficiente de la memoria debido a la fragmentacin interna. El nmero de procesos activos es fijo. Uso ineficiente del procesador debido a la compactacin para contrarrestar la fragmentacin externa.

Descripcin

Ventajas

Desventajas

Particin Dinmica

No hay fragmentacin interna, uso ms eficiente de la memoria principal.

Esquemas de Asignacin no Contigua Paginacin

La memoria principal se divide en un conjunto de marcos de igual tamao. Cada proceso se divide en pginas de igual tamao que los marcos. Un proceso se carga situando todas sus pginas en marcos libres pero no necesariamente contiguos. Cada proceso se divide en segmentos. Un proceso se carga situando todos sus segmentos en particiones dinmicas que no tienen por qu ser contiguas.

No tiene fragmentacin externa

Hay una pequea cantidad de fragmentacin interna.

Segmentacin

No tiene fragmentacin interna.

Mejora la utilizacin de la memoria y reduce la sobrecarga comparada con la particin dinmica.

Conclusiones
Una de las tareas ms complejas e importantes que lleva a cabo el sistema operativo es la de administrar la memoria.

Todos los mtodos aqu presentados, suponen que para ejecutar un proceso es necesario tenerlo completamente en memoria principal, ya sea en espacios contiguos o no.

La paginacin es un esquema similar al de las particiones estticas, con la ventaja de que un proceso puede ser cargado en ms de una particin y en espacios de memoria no contiguos, lo que reduce la fragmentacin interna a la que se produce en la ltima pgina.

Por otro lado, la segmentacin es un esquema similar al de las particiones dinmicas con ventajas similares a la paginacin.

Tanto en las particiones estticas, como en la paginacin, es necesario determinar el tamao que tendrn los bloques de memoria.

Preguntas Sobre el Tema

Conclusiones

Ejercicio Taller: elaborar un programa para simular las tcnicas de Gestin de Memoria

Fin de la Presentacin

Vous aimerez peut-être aussi