Está en la página 1de 59

Administracin de memoria

Introduccin
La parte del sistema operativo que se encarga del
manejo de la memoria se denomina
administrador de la memoria. Su labor
consiste en llevar un registro de qu partes de la
memoria se estn utilizando y qu partes no, con
el fin de asignar espacio a los procesos cuando
estos hagan requerimientos, liberarlo cuando
terminen, as como administrar el intercambio
entre la memoria principal y el disco, en el caso
en que esta no pueda albergar a todos los
procesos. Tambin facilita los mecanismos de
proteccin para que un proceso no invada el
espacio de otros procesos.
Administracin de memoria
Conceptos:
La organizacin y la administracin de la memoria
principal , memoria primaria o memoria real es
uno de los factores ms importantes que influyen
en el diseo de los Sistemas

Operativos.

Histricamente la memoria ha sido un recurso


caro, por lo que se desea optimizar su uso,
aunque en la actualidad ha bajado de precio, los
programa han aumentado su tamao

El problema de la escasez de memoria contina.


Administracin de memoria
Puntos claves de la administracin de
memoria.
Se debe permitir la multiprogramacin?

Se deben asignar particiones fijas o variables?

Las particiones pueden crecer en forma


dinmica?
Los programas podrn ser relocalizables?

La ejecucin de trabajos se har en bloques de


memoria adyacentes o en cualquier lugar
disponible?
Administracin de memoria
Monoprogramacin.
El sistema ms simple de
administracin, consiste en tener
slo un programa cargado en la
memoria a la vez.
Este esquema deriva en la creacin
de un sistema operativo, permitiendo
aislar las rutinas que manejan los
dispositivos de I/O de los procesos
de usuario
Administracin de memoria
Monoprogramacin.
Bajo este esquema, la memoria real
es tomada para almacenar el
programa que se est ejecutando en
un momento dado, con la visible
desventaja de que se est limitado a
la cantidad de RAM disponible.
Administracin de memoria

Monoprogramacin.
La organizacin fsica bajo este esquema es muy
simple: El sistema operativo se ubica en las
localidades superiores o inferiores de la memoria,
seguido por algunos manejadores de dispositivos
(`drivers').
Esto deja un espacio contiguo de memoria
disponible que es tomado por los programas del
usuario, dejando generalmente la ubicacin de la
pila (`stack') al ltimo, con el objetivo de que
sta pueda crecer hasta el mximo posible.
Administracin de memoria
Monoprogramacin.
Administracin de memoria
Multiprogramacin en memoria real.
Multiprogramacin: consiste en poner en
la memoria fsica ms de un proceso al
mismo tiempo, de manera que si el que se
est ejecutando en este momento entraba
en un perodo de entrada/salida, se puede
tomar otro proceso para que usara la
unidad central de procesamiento.
De esta forma, la memoria fsica se divide en
secciones de tamao suficiente para contener
a varios programas
Administracin de memoria
Modelo de multiprogramacin.
Desde un punto de vista
probabilstico, sea p la fraccin de
tiempo en que un proceso espera por
I/O.
La probabilidad de que n procesos
esperen simultneamente por I/O
es: pn
La utilizacin de CPU es por lo tanto:
1-pn
Administracin de memoria

Multiprogramacin con particiones


fijas.
Es la manera ms simple de administrar la
memoria cuando estamos en sistemas
multiprogramados es con particiones fijas.
Consiste en dividir la memoria en en n
partes de tamao fijo. De esta forma es
posible tener multiprogramacin ya que a
cada proceso se le asigna una particin.
Administracin de memoria
Desventajas.
Se hace una mala utilizacin de la memoria
debido a la poca flexibilidad del mtodo.
Es complicado correr programas ms
grandes que el tamao de la particin.
Se presenta fragmentacin interna. Este
fenmeno ocurre cuando un proceso no
ocupa toda la memoria asignada y sin
embargo el espacio libre no puede ser
utilizado por ningn otro proceso.
Administracin de memoria
Ventajas.
Su administracin es relativamente
simple, pues para guardar informacin
del estado del recurso se debe tener un
registro de cada zona (libre u ocupada).
La proteccin entre procesos se puede
realizar mediante el mecanismo de
llaves de memoria o utilizando el
registro base y la longitud de la zona.
Administracin de memoria

Multiprogramacin con
particiones variables.
La memoria se divide en bloques
de diferente tamao de acuerdo
a las necesidades del proceso.
Administracin de memoria

Ventajas
La gran ventaja de este mtodo es su
flexibilidad, pues permite definir bloques
del tamao requerido, terminando as
con la fragmentacin interna y
permitiendo hacer un mejor uso de la
memoria y por ende del procesador.
Administracin de memoria
Desventajas.
Fragmentacin externa.
Como la memoria se dividi en bloques de
tamao diferente, puede ocurrir que el bloque
ms grande no pueda contener un programa
dado, a pesar que la suma de los espacios
libres sea mayor que el tamao del programa.
Cuando se libera una particin y sta no se
puede ocupar. Se originan huecos de
memoria.
Administracin de memoria
Estrategias para el llenado de los espacios de memoria:
Primer Ajuste (first fit): Se asigna el primer hueco que
sea mayor al tamao deseado.
Mejor Ajuste (best fit): Se asigna el hueco cuyo tamao
exceda en la menor cantidad al tamao deseado. Requiere
de una bsqueda exhaustiva.
Peor Ajuste (worst fit): Se asigna el hueco cuyo tamao
exceda en la mayor cantidad al tamao deseado. Requiere
tambin de una bsqueda exhaustiva.
El Siguiente Ajuste: Es igual que el primer ajuste con la
diferencia que se deja un apuntador al lugar en donde se
asign el ltimo hueco para realizar la siguiente bsqueda a
partir de l.
Ajuste Rpido: Se mantienen listas ligadas separadas de
acuerdo a los tamaos de los huecos, para as buscarle a
los procesos un hueco ms rpido en la cola
correspondiente.
Administracin de memoria
Tcnicas de Administracin de Memoria
Administracin de memoria
Memoria Virtual

Problema:
Kernel
Ejecutar un programa
que necesita ms
memoria que la que hay 400Kb
disponible.
200Kb

?
1000Kb 600Kb

Memoria Real
Administracin de memoria
Memoria Virtual

Solucin:

Hacer creer al programa que Kernel


Se est ejecutando en un espacio
de direcciones de tamao
400Kb
apropiado.

200Kb
+ 400Kb
?
1000Kb 600Kb

Memoria Real
Administracin de memoria
Memoria Virtual

Idea base: tamao combinado del programa,


los datos y la pila de ejecucin puede exceder la
cantidad de memoria real disponible para l.

El sistema operativo mantiene aquellas partes del


programa que se estn utilizando en cada momento
en la memoria principal y el resto permanece
en el disco.
Administracin de memoria
Memoria Virtual

Estadsticamente, se ha demostrado:

Todo programa o proceso no utiliza


todo su espacio de direcciones en todo momento

Los programas tienden a usar mucho las instrucciones


que estn cercanas a la localidad de la
instruccin que se est ejecutando actualmente.
Administracin de memoria
Memoria Virtual

Estructura del bus de memoria


Administracin de memoria
Memoria Virtual

Unidad de Administracin de Memoria (MMU)

Es un conjunto de chips, que asocian


las direcciones virtuales con las direcciones
de memoria fsica.

La idea central de la memoria virtual es que


direccin es diferente de localizacin fsica.
Administracin de memoria
Memoria Virtual

Resumiendo

Memoria Fsica

MMU
Memoria Virtual
Administracin de memoria
Memoria Virtual

Implementacin

Memoria Virtual

Paginacin Segmentacin
Administracin de memoria
Memoria Virtual
Implementacin: Paginacin

La memoria fsica es particionada en bloques de tamao


fijos llamados frames.
La memoria lgica es particionada en bloques del mismo
tamao llamados pginas.
Cada direccin generada por la CPU es dividida en 2
partes: numero de pagina (p) y offset en la pgina (d)
El nmero de pgina es usado como ndice en una tabla
de pginas.
La tabla de pginas contiene la direccin base de cada
pgina en la memoria fsica.
Administracin de memoria
Memoria Virtual

Implementacin: Paginacin

Pginas Frames

Memoria Fsica

Memoria Virtual
Administracin de memoria
Memoria Virtual
Implementacin: Paginacin Direccin Virtual
b d

# pgina Desplazamiento

Pginas Frames

Memoria Virtual Memoria Fsica

Espacio de Dir. Virtuales: 64kb 16 pginas


Tamao de pginas : 4kb

Memoria Fsica :32kb 8 frames


Tamao de Frames : 4kb
Administracin de memoria
Memoria Virtual
Implementacin: Paginacin

Direccin Virtual
b d

Tabla de Direcciones
Virtuales (TDV)

Estado de la Pgina : Memoria o


Disco, Modificada, etc.

N del frame que le corresponde


en memoria fsica
Administracin de memoria
Memoria Virtual

Implementacin: Paginacin

Direccin Virtual
b d

Tabla de Direcciones
Virtuales (TDV)

El bit de caching. Si est esta desactivado, cuando se produzca


una operacin de E/S, el sistema operativo busca la informacin
en el hardware y no una copia antigua en el cach.
Administracin de memoria
Memoria Virtual

Implementacin: Paginacin

Direccin Virtual
b d

En la TDV, se busca cul


es el frame que corresponde
a la pgina b. En este caso
es b.
b
Administracin de memoria
Memoria Virtual
Implementacin: Paginacin

Direccin Virtual
b d

b b + d

A b se le agrega el
Desplazamiento d y se
Obtiene la direccin fsica.
Administracin de memoria
Memoria Virtual

Implementacin: Paginacin
Fallos de pgina
Sucede cuando se est buscando una pgina
cualquiera y sta no est cargada en memoria
problemas para el administrador de memoria.
tiene que ir a buscar la pgina al disco y cargarla en memoria.
Lo anterior si es que hay espacio
Si no hay espacio, debe escoger una pgina
y enviarla a disco.
En la TDV debe actualizar el registro de sta pgina indicando
que ya no est en RAM.
Y despus cargar la pgina deseada desde el disco hacia la
memoria principal.
Administracin de memoria
Memoria Virtual

Implementacin: Paginacin

Fallos de pgina
Administracin de memoria
Memoria Virtual
Implementacin: Paginacin
Fallos de pgina. Algoritmos de reemplazo.
FIFO:
Se escoge la pgina que haya entrado primero y est cargada
en RAM.
No es eficiente porque no aprovecha ninguna
caracterstica de ningn sistema.
Es justa e imparcial.

La no usada recientemente:
Se escoge la pgina que no haya sido usada (referenciada) en
el ciclo anterior.
Pretende aprovechar el hecho de la localidad en el conjunto de
trabajo.
Administracin de memoria
Memoria Virtual
Implementacin: Paginacin
Fallos de pgina. Algoritmos de reemplazo.
La usada menos recientemente:
Escoge la pgina que se us hace ms tiempo
Nota: como ya tiene mucho sin usarse es muy probable que
siga sin usarse en los prximos ciclos.

La no usada frecuentemente:
Escoge cualquier pgina que se use muy poco, menos veces
que alguna otra.
Toma en cuenta la cantidad de referencias que tiene una
pgina.
Administracin de memoria
Memoria Virtual
Implementacin: Paginacin
Fallos de pgina. Algoritmos de reemplazo.
La no usada frecuentemente:
Escoge cualquier pgina que se use muy poco, menos veces
que alguna otra.
Toma en cuenta la cantidad de referencias que tiene una
pgina.

La menos frecuentemente usada:


Busca en forma exhaustiva aquella pgina que se ha usado
menos que todas las dems.
Administracin de memoria
Memoria Virtual
Implementacin: Paginacin
Fallos de pgina. Algoritmos de reemplazo.
En forma aleatoria:
Elige cualquier pgina sin aprovechar nada.
Es justa e imparcial, pero ineficiente.
Administracin de la Memoria
Memoria Virtual
Segmentacin

La segmentacin es un esquema de administracin


de memoria que soporta la visin del usuario de la
memoria.

Cdigo fuente

Stack Tabla de smbolos


Administracin de la Memoria
Memoria Virtual
Segmentacin

Cada segmento tiene un nombre (nmero) y un


largo.

La direccin virtual especifica el segmento y el offset del


segmento

Direccin Virtual
s d
Administracin de la Memoria
Memoria Virtual
Segmentacin

Para mapear la direcciones bidimensionales en una


dimensin (direccin fsica) se utiliza la tabla de
segmentos.

Cada entrada en la tabla tiene una base y un lmite


del segmento.

La base indica donde comienza el segmento en la


memoria fsica.
Administracin de la Memoria
Memoria Virtual
Segmentacin
Direccin Virtual
s d

< limite

limite base +

base + d
Tabla de segmentos. Direccin Fsica.
Administracin de la Memoria
Memoria Virtual
Segmentacin

Segmento 0 Segmento 1 Segmento 2

Texto
Stack
Tabla de
Smbolos
Administracin de la Memoria
Memoria Virtual
Segmentacin

Ventajas

Los segmentos no tienen tamao definido y estn


asociados a un tipo de dato en particular.

Facilita el uso de cdigo compartido entre varios


Procesos.

Proporciona proteccin y facilita la utilizacin de los


recursos compartidos.
Administracin de la Memoria
Memoria Virtual
Paginacin / Segmentacin

Se aprovechan los conceptos de la divisin lgica


de los programas (segmentos) con el espacio de
direcciones virtuales de las pginas.

Un proceso esta repartido en la memoria real en


pequeas unidades (pginas), las que estn
unidas a travs de segmentos.
Administracin de la Memoria
Memoria Virtual
Paginacin / Segmentacin

Se aprovechan los conceptos de la divisin lgica


de los programas (segmentos) con el espacio de
direcciones virtuales de las pginas.

Un proceso esta repartido en la memoria real en


pequeas unidades (pginas), las que estn
unidas a travs de segmentos.
Administracin de la Memoria
Memoria Virtual
Paginacin / Segmentacin

Direccin Virtual de memoria en Paginacin y


Segmentacin

Direccin Virtual
s d

Direccin := (s,d) 2D
Administracin de la Memoria
Memoria Virtual
Paginacin / Segmentacin

Direccin Virtual de memoria en un Sistema


combinado

Direccin Virtual
s p d

Direccin := (p, s, d)
Administracin de la Memoria
Memoria Virtual
Paginacin / Segmentacin

Direccin Virtual de memoria en un Sistema


combinado

Direccin Virtual
s p d

Direccin := (s, p, d)
Administracin de la Memoria
Memoria Virtual
Paginacin / Segmentacin

. . .
. . .
Tabla de Proc Tabla de Segmentos Tabla de Pginas
Proceso N Segmento M

Frames en memoria real


Administracin de la Memoria
Memoria Virtual
Paginacin / Segmentacin

Tipos de fallos

Por Segmento Cuando se hace referencia a una


direccin y el segmento que la
Por Pgina contiene no est en RAM
Administracin de la Memoria
Memoria Virtual
Paginacin / Segmentacin

Tipos de fallos: por segmento

Cuando se hace referencia a una direccin y el


segmento que la contiene no est en RAM, se
provoca un fallo por falta de segmento y lo que se
hace es traerlo del medio de almacenamiento
secundario y crearle una tabla de pginas.
Administracin de la Memoria
Memoria Virtual
Paginacin / Segmentacin

Tipos de fallos: por pgina

Una vez cargado el segmento se necesita


localizar la pgina correspondiente, pero si sta no
existe en RAM, se provoca un fallo de pgina y se
debe cargar del disco.

Finalmente se puede traer la direccin deseada por


medio del desplazamiento de la direccin virtual.
Administracin de la Memoria
Sistemas de Archivos

Sistemas de Archivos
Administracin de la Memoria
Sistemas de Archivos

La mayora de aplicaciones necesitan almacenar y recuperar


informacin.

Un proceso puede almacenar una cantidad limitada de esta en


su propio espacio de direcciones ==> muy pequeo

Algunas veces varios procesos necesitan accesar a la misma


informacin simultneamente.
Administracin de la Memoria
Sistemas de Archivos

Solucin:

Almacenar la informacin en medios externos, en unidades


denominadas archivos.

La informacin almacenada en los archivos debe ser


persistente, es decir, no debe depender de la
creacin y terminacin de un proceso
Administracin de la Memoria
Sistemas de Archivos
Archivos:

Los archivos son administrados por el sistema operativo. Su


estructura, nombre, forma de acceso, uso, proteccin e
implantacin son responsabilidad de l.

La parte del sistema operativo que se encarga de esta labor se


conoce con el nombre de sistema de archivos.
Administracin de la Memoria
Sistemas de Archivos
Sistema de Archivos:

Establece el formato fsico en el cual almacenar los datos en


discos duros, cintas o discos flexibles.

Conceptos asociados:

Pistas, sectores, cilindros


Tiempo de bsqueda.
IDE, SCSI, E-IDE
Administracin de la Memoria
Sistemas de Archivos
Temas a tratar

Implantacin del Sistema de Archivos

Implantacin de Directorios

Administracin del Espacio en Disco

Registro de bloques Libres

También podría gustarte