Sei sulla pagina 1di 56

Administracion de Memoria el estilo de subttulo del Haga clic para modificar

patrn Sistemas Operativos Ing. Pedro Yuri Marquez Solis

Porque es importante ?
P 1 P 3 P 5

P2 P 6

CPU P 4 P4 Memoria Real

Es un recurso escaso Se requiere que el proceso este en M.Real

Administracin Memoria
memoria principal Memoria principal = memoria primaria = memoria real=memoria RAM= memoria fsica Memoria = almacenamiento Aspectos importantes:
Jerarquia de la memoria Organizacin de la memoria Estrategias de administracin de la memoria

Organizacin y administracin de la

Jerarqua memoria
En el ncleo L1, L2 en le procesador , 32 KB, l2 MB, Tiempo acceso 4ns a 10 ns
Registros

En el ncleo, apenas 20 bytes hasta 1000 bytes, Tiempo acceso tiende a 0 ns

Cach

Memoria Principal
TB, microsegundos,

Disco Magntico Cinta Magntica Disco Optico

Jerarquia de memoria
Diversas tecnologas para diversos tipos de

memorias

A menor tiempo de acceso mayor costo por bit A mayor capacidad menor costo por bit A mayor capacidad, mayor tiempo de acceso

A medida que se desciende en la jerarqua


Disminucin del costo por bit Aumento de la capacidad Aumento del tiempo de acceso Disminuye la frecuencia de acceso a memoria por parte del procesador

Resmen del manejo de Memoria

Organizacin de la memoria
La forma de considerar la memoria

principal - Multiusuario o un solo usuario - Asignacin de espacio a procesos concurrentes


particiones - Donde colocar cada trabajo: en forma continua en forma no continua

- Dividir memoria en fragmentos denominados

Asignacin de memoria continua


Cada proceso debe ocupar

bloques continuos de localidades de memoria

Asignacion continua
64 MB

Proceso 3 Mb

Proceso 3 Mb

Sistema Operativo

0 MB

Asignacin de memoria No Continua en bloques o Proceso es divido


segmentos que pueden ser asignados a localidades no necesariamente continuas

Asignacion no continua
64 MB Proceso 1 Mb Proceso 3 Mb Proceso 1 Mb
Lenguaje maquina Datos

Proceso 1 Mb Sistema Operativo 0 MB

El problema de la relocalizacin
Consiste en que los programas que necesitan

cargarse a memoria real ya estn compilados y ligados, de manera que internamente contienen una serie de referencias a direcciones de instrucciones, rutinas y procedimientos que ya no son vlidas en el espacio de direcciones de memoria real de la seccin en la que se carga el programa. Cuando se compil el programa se definieron o resolvieron las direcciones de memoria de acuerdo a la seccin de ese momento, pero si el programa se carga en otro dia en una

El problema de la relocalizacin
En este caso, el manejador de memoria

puede solucionar el problema de dos maneras: de manera `esttica' o de manera `dinmica'. La solucin `esttica' consiste en que todas las direcciones del programa se vuelvan a recalcular al momento en que el programa se carga a memoria, esto es, prcticamente se vuelve a recompilar el programa.

El problema de la relocalizacin

La solucin `dinmica' consiste en tener un registro

que guarde la direccin base de la seccin que va a contener al programa. Cada vez que el programa haga una referencia a una direccin de memoria, se le suma el registro base para encontrar la direccin real. Por ejemplo, suponga que el programa es cargado en una seccin que comienza en la direccin 100. El programa har referencias a las direcciones 50,52,54. Pero el contenido de esas direcciones no es el deseado, sino las direcciones 150, 152 y 154, ya que ah comienza el programa. La suma de 100 + 50, ...,etctera se hacen al tiempo de ejecucin.

El problema de la proteccin
Una vez que un programa ha sido cargado a

memoria en algn segmento en particular, nada le impide al programador que intente direccionar ( por error o deliberadamente ) localidades de memoria menores que el lmite inferior de su programa o superiores a la direccin mayor; es decir, quiere referenciar localidades fuera de su espacio de direcciones. Obviamente, este es un problema de proteccin, ya que no es legal leer o escribir en reas de otros programas. La solucin a este problema tambin puede

Estrategias de administracin de la memoria comportamiento de una Determinan el


organizacin de memoria determinada Se dividen en: 1. Estrategias de obtencin 1.1 Estrategias de obtencin por demanda 1.2 Estrategias de obtencin anticipada 2. Estrategias de colocacin 3. Estrategias de reemplazo

Monoprogramacin con asignacin contigua

Multiprogramacin
Tiempo promedio que el CPU est ocupado `grado

de multiprogramacin'. Si el sistema tuviese un solo proceso siempre, y ste gastara 60% en entrada/salida, el grado de multiprogramacin sera: 1 - 60% = 40% = 0.4. Con dos procesos, para que el CPU est ocioso se necesita que ambos procesos necesiten estar haciendo entrada/salida, es decir, suponiendo que son independientes, la probabilidad de que ambos estn en entrada/salida es el producto de sus probabilidades, es decir, 0.6x0.6 = 0.36. Ahora, el grado de multiprogramacin es 1 - (probabilidad de

- Facilita la programacin de una aplicacin al dividirla en dos o ms procesos - Capacidad de tener al mismo tiempo ms de un proceso en memoria - Poder proporcionar un servicio interactivo a varias personas al mismo tiempo - Retardo atencin procesos: dedican tiempo sustancial en la espera de la conclusin de E/S en disco. - Dos tipos 1. Multiprogramacin con particiones fijas

Multiprogramacin y uso de memoria

Particion fija o estatica


Divisin de la memoria en varias

partes

Tamao diferente de las particiones Tamao fijo de las particiones

(inamovible)

nico proceso por particin con

tamao particin Estructuras de datos para la gestin de particiones fijas


Tabla de descripcin de particiones Estado (libre/asignada)

Parti cin 4

2 MB 5 MB

Varias colas de entra da

Parti cin 3

4 MB
Parti cin 2

Particiones fijas de memoria con colas de entrada independientes para cada particin

1 MB
Parti cin 1 Sist em ope a rativ

Particion fija o estatica AQUI3 4 5 6 7 8 9 1 1 1 1 1 1 0 1 2


0 1 2 3 4 5 SO 4 5 6 Particion 1 Particion 2

Arriba un proceso a la memoria


Proceso

0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 0 1 2 3 4 5 SO Particion 1 Particion 2

Direccionamiento Fisico
Direccin fsica
Designa posicin real de la memoria

principal Aquella cargada en el registro de direcciones de la memoria Espacio de direcciones fsicas Conjunto de posiciones de memoria correspondientes a las direcciones lgicas

Direccin fsica o real


Proceso 0 1 2 3 I1 I2 7 8 9 1 1 1 1 1 1 D 0 1 2 3 4 5 1 Particion 1 Particion 2

SO

Direccion Real o Fisica @Real(I1) = 4 @Real(I2) = 5 @Real(D1) = 6

Particin 4 (b) Particin 3 Particin 2 Particin 1 Sistema operativo

(b) Particiones fijas de la memoria,

con una nica colas de entrada

Direccionamiento Logico
Direccin lgica
Referencia a posicin de memoria independiente de la asignacin actual de datos

Espacio de direcciones lgicas Conjunto de direcciones generadas por un programa

Direccin Lgica o Relativa


0 1 2 3 I1 I2 7 8 9 1 1 1 1 1 1 D 0 1 2 3 4 5 1 Particion 1 Particion 2

SO

Direccion Relativa Reg. Base + Desp. @Rel(I1) = Reg.Base + 0 @Rel(I2) = Reg.Base + 1 @Rel(I3) = Reg.Base + 2

Traduccion de Direcciones Reg. Base = 4 @Rel(I1) = 4 + 0 = 4 @Rel(I2) = 4 + 1 = 5 @Rel(I3) = 4 + 2 = 6

Desventajas de P. Fijo
L Grado de multiprogramacin. - Limitado al nmero de particiones

L Fragmentacin Interna
Dentro de cada particin queda una zona de

memoria no aprovechable El proceso es ms pequeo que la particin No se puede asignar a ningn otro proceso Es posible que procesos esperando entrar en memoria no tengan particin a pesar de haber espacio libre para ellos

Particiones Variables
Las particiones son variables en nmero y

longitud Inicialmente la memoria slo contiene el sistema operativo A cada proceso se le asigna la memoria que necesita exactamente

C B B

B E

A D D
S is O t p e e m r a a t i v o

D
S is O t p e e m r a a t i v o

Particiones variables: la asignacin de memoria cambia cuando el proceso llega o sale de la memoria.
Memoria no utlizada

S is O t p e e m r a a t i v o

S i O s p t e e r m a a t i v o

S i O s p t e e r m a a t i v o

S is O t p e e m r a a t i v o

S is O t p e e m r a a t i v o

La proteccin en multiprogramacin

Diversas tareas se ejecutan en direcciones distintas


Como asegurarse que un proceso no invada la direccin de otro?

Tres posibles soluciones: 1. Usar un offset por direccin/particin 2. Dividir memoria en bloques y asignar cdigos proteccin 3. Usar registros especiales

Proteccin de memoria
Limite si Base Memoria

CPU

Dir Logica

<d no

Dir. Fisica

Error

Intercambio
Retiro temporal de memoria de procesos y

su posterior incorporacin para continuar con su ejecucin rea de Intercambio


guardar temporalmente los procesos intercambiados

Zona de almacenamiento secundario dedicada a

Intercambiador
Trabaja con el planificador a medio plazo El planificador implementa la poltica y el

intercambiador el mecanismo para llevarla a cabo.

Intercambio

Aumenta los Beneficios de la

multiprogramacin
7

Peligro de Trasiego

Estrategia de Colocacin
usadas para determinar donde se va a ubicar el proceso dentro de la memoria principal

Tipos estrategias: 1. First-fit 2. Best-fit 3. Worst-fit 4. Next-fit

Estrategia First Fit


Se revisa la lista de huecos libres hasta

encontrar el primer espacio lo suficiente grande El espacio se divide en 02 partes, una para el proceso, y otra para la memoria no utilizada, salvo un ajuste perfecto.

Estrategia First-Fit
Lista Procesos Entrantes
Proceso 13K

0 a

Sistema Operativo

Lista Memoria Libre Direccin Inicio a c e g Tamao 16K 14K 5K 30K

b c d e f g

Hueco 16K
EN USO

Hueco 14K Hueco 5K


EN USO EN USO

Hueco 30K

Estrategia First Fit


Se revisa la lista de huecos libres hasta

encontrar el primer espacio lo suficiente grande El espacio se divide en 02 partes, una para el proceso, y otra para la memoria no utilizada, salvo un ajuste perfecto. Ventajas
Es rapido (busca lo menos posible)

Estrategia Best Fit


Busca en toda la lista, y elige el mnimo

hueco suficientemente grande como para ubicar el procesos. Solucion a la busqueda. Ordenarlo en forma ascendente.

Estrategia Best-Fit
Lista Procesos Entrantes Proceso 13K 0 a Sistema Op. Hueco 16K
EN USO

Lista Memoria Libre Direccin Inicio e c a g Tamao 5K 14K 16K 30K

b c d e f g

Hueco 14K
EN USO

Hueco 5K
EN USO

Hueco 30K h

Estrategia Best Fit


Busca en toda la lista, y elige el mnimo

hueco suficientemente grande como para ubicar el procesos. Solucion a la busqueda. Ordenarlo en forma ascendente. Desventaja
Gasto extra en ordenar la lista

Ventaja
Se desperdicia menos memoria. es correcto?

Estrategia Worst Fit


Se elige el hueco mas grande disponible.

Estrategia WorstFit
Lista Procesos Entrantes Proceso 13K
0 a b

Sistema Op. Hueco 16K


EN USO

Lista Memoria Libre Direccin Inicio g a c e Tamao 30K 16K 14K 5K

c d e f g

Hueco 14K
EN USO

Hueco 5K
EN USO

Hueco 30K
h

Estrategia Worst Fit


Se elige el hueco mas grande disponible. Ventaja
Aumenta la probabilidad de que el nuevo hueco

creado sea lo suficiente grande para albergar un proceso.

Desventaja
Gasto extra en ordenar la lista en forma

descendente.

Estrategia Next-Fit
Lista Procesos Entrantes Proceso 13K
0 a b c d e f g h

Sistema Op. Hueco 16K


EN USO

Hueco 14K
EN USO

Hueco 5K
EN USO

Hueco 30K

La fragmentacin
Nmero, posicin y tamao particiones vara en forma dinmica conforme el sistema es utilizado. - Uso particiones variables provoca huecos en la memoria principal. - Dos tcnicas: 1. Condensacin de huecos 2. Compactacin del almacenamiento.

Condensacion de Huecos
S.Oper Otros Procesos Libre 30K Proceso 50K Otros Procesos S.Oper Otros Procesos Libre 30K Libre 50K Otros Procesos Otros Procesos S.Oper Otros Procesos Libre 80K

Sin condensar

Condensacin

Compactacin de memoria
S.Oper Proceso A 80k Libre 30K Proceso B 40K Libre 40K Proceso C 60k Compactada S.Oper Proceso A 80k Proceso B 40K Proceso C 60k Libre 70K

Compactacion de memoria
Consume recursos del sistema Debe detenerse para realizar el proceso Involucra la reubicacin de los programas La frecuencia de la compactacin puede ser

alta.

Administracin de particiones
Mecanismo usado saber cuales particiones estan libres y cuales estan ocupadas. Existen tres mecanismos: 1. Mapas de bits 2. Listas ligadas 3. Sistema de los asociados

Paginacin
La paginacin pura en el majejo de memoria

consiste en que el sistema operativo divide dinmicamente los programas en unidades de tamao fijo ( generalmente mltiplos de 1 kilobyte ) los cuales va a manipular de RAM a disco y viceversa. Al proceso de intercambiar pginas, segmentos o programas completos entre RAM y disco se le conoce como `intercambio' o `swapping'. En la paginacin, se debe cuidar el tamao de las pginas, ya que si stas son muy pequeas el control por parte del sistema operativo para saber cules

Paginacin

Segmentacin pura
La segmentacin se aprovecha del hecho de

que los programas se dividen en partes lgicas, como son las partes de datos, de cdigo y de pila (stack). La segmentacin asigna particiones de memoria a cada segmento de un programa y busca como objetivos el hacer fcil el compartir segmentos ( por ejemplo libreras compartidas ) y el intercambio entre memoria y los medios de almacenamiento secundario. Los bloques de memoria son de tamao variable.

Segmentacin Pura

Direccionamiento
La direccin virtual se compone de un nmero

de segmento (s) y un desplazamiento ( d ) para ubicar un byte (o palabra ) dentro de dicho segmento. Es importante que el desplazamiento no sea mayor que el tamao del segmento, lo cual se controla simplemente checando que ese valor sea mayor que la direccin del inicio del segmento y menor que el inicio sumado al tamao. Una ves dada una direccin virtual v=( s,d ), se realiza la operacin b + s para hallar el registro (o entrada de la tabla de segmentos )

Potrebbero piacerti anche