Está en la página 1de 24

SISTEMAS OPERATIVOS

Administracin de Memoria

INSTITUTO TECNOLOGICO DE CIUDAD MADERO Administracin de la memoria en los sistemas monoprogramados


Tres formas de organizacin de la memoria RAM, con un sistema operativo y un proceso de usuario. Todo el programa es cargado a memoria para su ejecucin

OxFF

Programa de usuario

Sistema Operativo en ROM

OxFF

Controladores de dispositivos en ROM

OxFF

Sistema Operativo en RAM

Programa de usuario

Programa de usuario
Sistema Operativo en RAM

Sistema Operativo

Programa de usuario

Direccin del registro limite

CPU
Registro limite

Proteccin de la Memoria

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO Administracin de la memoria en los sistemas multiprogramados

Los problemas que aparecen en los sistemas multiprogramados y/o multiusuarios son: 1. Llevar un recuento de las zonas de memoria ocupadas por los procesos. Que proceso ocupa cual espacio El momento de escribir un programa no se sabe en qu zona de memoria se ubicar, siendo posible que durante la vida de un proceso ste cambie varias veces de lugar. La proteccin de las zonas de memoria ocupadas por los procesos, mxime en sistemas multiusuario donde los procesos pueden pertenecer a distintos usuarios.

Sistema operativo 512

d1

Proceso 1
d2

2.

Proceso 2
d3

Proceso 3
d4

Direcciones de memoria

3.

Proceso n

dm

Sistemas Operativos

Departamento de Sistemas y Computacin

INSTITUTO TECNOLOGICO DE CIUDAD MADERO Asignacin de memoria contigua

Particiones estticas
Organizacin de la memoria:
Sistema operativo 512

La memoria se divide en regiones con lmites fijos, con dos alternativas: 1. particiones igual tamao o 2. particiones de diferentes tamaos.

Sistema operativo 512 128 k

512 k 512 k 512 k 512 k 512 k

256 K 320 k

512 k
Asignacin memoria: de procesos a la

576 k 768 k 1M

512 k
512 k

Se pueden tener dos esquemas de asignacin de memoria en particiones estticas utilizando colas de procesos: 1. Colas de particin. planificacin para cada

2. Una cola de planificacin para la memoria (mayor eficiencia)

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO Asignacin de memoria contigua

Particiones estticas
512 k 512 k 512 k Procesos nuevos 512 k 512 k 512 k 512 k

Los trabajos se traducan mediante compiladores y ensambladores absolutos, para ejecutarse en una particin especfica
Sistema operativo 512

Sistema operativo 512

512 k 512 k 512 k Procesos nuevos 512 k 512 k 512 k 512 k

Una vez introducido un proceso en una particin, permanece en ella hasta su finalizacin aunque se encuentren libres otras particiones. Esto provoca una prdida de eficiencia

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO Asignacin de memoria contigua

Particiones estticas
Sistema operativo

Algunas colas estarn saturadas por procesos que tienen un tamao similar a la particin mientras que otras estarn vacas o semivacas.

Sistema operativo

Procesos nuevos

Procesos nuevos

Cuando un proceso se introduce en una particin, lo ms probable es que su tamao no sea el mismo (es decir, sea algo menor) que el de la particin. Esto origina un problema de desperdicio de memoria conocido como fragmentacin interna.

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO Asignacin de memoria contigua

Particiones estticas
Sistema operativo 512 128 k Sistema operativo 512 128 k

256 K 320 k

256 K 320 k

512 k
Procesos nuevos

512 k
Procesos nuevos

576 k 768 k 1M

576 k 768 k 1M

Se minimiza la particin interna porque cada proceso es asignado a la particin ms pequea. Para ello se supone que se conoce el tamao de la cantidad de memoria que ocupa un proceso lo cual no siempre es cierto.

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO

Direccin relativa Direccin real

Memoria RAM

CPU
Registro Base (RB) 10000

10000

Programa Datos BCP


Informacion sobre las direcciones reales

Acumulador (A) 100

Ejecucin de la instruccin del proceso

Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl

10100

PROCESO

100

Proceso
Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl

Pila

MMU RB + A

Enviado por el BUS La traduccin de las direcciones virtuales a reales es implementada por una Unidad de Manejo de Memoria (MMU).

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO Asignacin de memoria contigua

Particiones dinmicas
Memoria Virtual
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
G

A
No hay espacio

F B C D E E C

A, F, C o E

Pasar temporalmente un proceso para dar oportunidad a un nuevo proceso para ejecutarse

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO Asignacin de memoria contigua

Particiones dinmicas
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 El continuo ingreso y salida de los procesos producen huecos en la memoria demasiado pequeos para que un proceso pueda colocarse. A este tipo de fragmentacin se le conoce como fragmentacin externa.

F B C D E E C

La recuperacin de los huecos de memoria puede llevarse a cabo por medio de la tcnica de compactacin donde los espacios disponibles de memoria son colocados en la parte inferior y los procesos en la parte superior. Sin embargo, este proceso es demasiado lento y posiblemente no justifique el consumo de recursos, debido a que el sistema debe estar inactivo para poder realizar la compactacin.

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO Asignacin de memoria contigua

Particiones dinmicas
A

Estrategias de colocacin
F

Primer ajuste. Primera particin de memoria que se encuentre libre.

C H E

Mejor ajuste. Busca y asigna la particin de memoria que mejor se ajuste al tamao del proceso tratando de dejar libre la menor cantidad de memoria
Peor ajuste. Se busca y asigna la particin de mayor tamao para dejar libre la mayor cantidad de memoria para que pueda colocarse otro proceso en ella.

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO Administracin de memoria particiones estticas

Cmo se lleva el control de la memoria que se encuentra disponible y aquella que esta ocupada?
Particin esttica. Es suficiente con guardar en una tabla la informacin sobre la particin que est libre o que est ocupada y qu proceso se encuentra en ella, as como la direcciones de comienzo y fin de la particin. Particin dinmica pueden ser implementada por 1. Mapa de bits. 2. Listas enlazadas. 3. Sistema de los asociados.

Tabla de administracin de la memoria


No. de particin Libre/ ocupada Id del Proceso Inicio de la particin Fin de la particin

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO Administracin de memoria particiones estticas


Mapas de bits Se divide la memoria en bloques de cierto tamao y se mantiene en memoria una tabla donde cada bit se utiliza para identificar un bloque ocupado (1) o libre (0). Si las particiones son muy pequeas se tendr un mapa de bits muy grande y viceversa. Listas enlazadas La lista esta compuesta por los siguientes campos: Bit que representa un proceso o una particin disponible. Numero de bloque de inicio. Numero de bloques utilizados. Puntero al siguiente nodo en la lista. Ventajas: La actualizacin de la lista enlazada es directa. Desventaja: La bsqueda del un hueco que pueda satisfacer la solicitud de memoria para un proceso es lento. La solucin puede ser la creacin de dos listas enlazadas, una para los procesos y otra para los espacios libres. Esto provoca que se d mantenimiento a dos listas cuando un proceso termina y cuando se otorga memoria a otro proceso. Inicio Longitud A P 0 5 H 5 3 P B 8 6 C P 14 D 4 E

Hueco o proceso

18

20

26

29

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO Administracin de memoria particiones estticas

Sistemas asociados Consiste en tener la memoria inicialmente como un gran espacio libre que se ir particionando en mltiplos de potencia de 2 cada vez que un proceso haga la solicitud de memoria.
1 MB
64 K 64 K 64 K 64 K 64 K 64 K

P 56 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

512 KB
128 K 128 K 128 K 128 K 128 K 128 K 128 K 128 K

256 KB 128 KB

B
256 K 256 K 256 K 256 K

512 K 1M

512 K

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO

Soporte del Hardware para la reubicacin.


Direccin Relativa o lgica
Imagen de un Proceso en Memoria Principal Bloque de control de Proceso Cdigo
Sumador

Memory Management Unit

Acumulador Registro Base

Datos Pila

Registro Lmite

Comparador

Direccin Absoluta, fsica o real

Interrupcin al Sistema Operativo La Unidad Manejadora de Memoria (MMU) realiza la traduccin de las direcciones relativas en direcciones fsicas en la memoria principal.

Para el intercambio de procesos entre la memoria real y la memoria virtual se requiere un mecanismo que reubique los procesos sin perder las referencias que se hacen dentro de l. Los programas que emplean direcciones relativas se cargan mediante cargadores dinmicos durante la ejecucin.

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO

Memoria virtual

Los ordenadores modernos normalmente tienen un tamao de palabra de 16, 32 64 bits.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Paginacin
1.
Cada pgina consiste en z palabras contiguas

Programa XYZ Palabra 0

2.

Un espacio de direcciones N de un programa consiste de n pginas (0,1,2,3n-1) (n*z direcciones virtuales)

palabra
Pgina 0 Programa XYZ Pgina n-1 Marco n-1 Marco 0

Pgina 0 Palabra z Pgina Palabra 0 Pgina 1 Palabra z Palabra 0

La tcnica de paginacin simple es similar a la particin esttica.

Pgina

Palabra z Palabra 1 Pgina n-1 Palabra z

Las diferencias estn en que, con paginacin las particiones son ms pequeas, un programa puede ocupar ms de una particin y stas no tienen por qu estar contiguas.

Memoria

3.

el espacio de memoria consiste de m marcos de paginas (0,z,2z,,(m1)z)(m*z posiciones)

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
(a) 15 pginas libres

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

A.0 A.1 A.2 A.3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

A.0 A.1 A.2 A.3 B.0 B.1 B.2

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

A.0 A.1 A.2 A.3

B.0 B.1 B.2 C.0 C.1 C.2 C.3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

A.0 A.1 A.2 A.3

C.0 C.1 C.2 C.3

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

A.0 A.1 A.2 A.3 D.0 D.1 D.2 C.0 C.1 C.2 C.3 D.3 D.4

b) Carga del proceso A

c) Carga del proceso B Tablas del pginas del Proceso B

d) Carga del proceso C

e) Expulsin del proceso B

f) Carga del proceso D

0 1 2 3

0 1 2 3

Tablas del pginas del Proceso A

0 1 2

----

0 1 2 3

7 8 9 10

Tablas del pginas del Proceso C

0 1 2 3 4

4 5 6 11 12

Tablas del pginas del Proceso D

13 14
Listas de marcos libres

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO


Una direccin virtual a es equivalente a una direccin dada como una dupla (p, d), en la cual p es el

nmero de la pgina y d el nmero de la palabra dentro de la pgina


Palabra de 16 bits

a =( p , d )

0000010111011110
Pgina de 1024 bits = 1 K

Palabra 0 Pgina 0 Palabra z Palabra 0 Pgina 1 Palabra z Palabra 0 Marco 0


No. de pgina de 6 bits
Desplazamiento de 10 bits

0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0

Direccin lgica de bits

Palabra z Palabra 1

0
Pgina n-1 Palabra z

000101
000110
0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0

1 2

000101
Direccin fsica de 16 bits

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO

Memoria Asociativa
En la prctica es necesario que la mayora de los accesos a memoria no impliquen una consulta a la tabla de pginas, sino que nicamente requieran el acceso a la posicin solicitada. Esto

se logra mediante el uso de una


memoria asociativa interna en la MMU que mantiene informacin sobre las ltimas pginas accedidas. Esta memoria asociativa es considerada memoria cache especial de alta velocidad.

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO


Proceso P1 ed1 ed1 ed1

Pginas compartidas
Otra ventaja de la paginacin es la posibilidad de compartir programas de uso comn. Esta tcnica resulta sumamente importante en un entorno de tiempo compartido. Se pueden compartir desde editores como compiladores, ensambladores y sistemas de base de datos. Para que sean compartibles, el cdigo debe ser reentrante (no automodificable), es decir, el cdigo es slo de bsqueda o slo lectura.

3 4 6 1 Tabla de Pginas P1

0 1 2 3

Datos 1 Datos 3 ed1 ed2

Datos 1
Proceso P2 ed1 ed1 ed1 Datos 1 Proceso P3 ed1 ed1 ed1

3 4 6 7 Tabla de Pginas P2

5 6 7 8

ed3 Datos 2

3 4 6 Tabla de Pginas P3

9 10

Datos 1

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO

Memoria virtual

Segmentacin
La segmentacin es un esquema de administracin de la memoria que soporta la visin que el usuario tiene de la misma. Un espacio de direcciones lgicas es una coleccin de segmentos. Cada segmento tiene un nombre y una longitud. Las direcciones especifican tanto el nombre del segmento como el desplazamiento dentro del segmento. Por lo tanto, el usuario especifica cada direccin mediante dos cantidades: un nombre de segmento y un desplazamiento.
Sqrt

subrutina

pila

1400
Segmento 3 Tabla de smbolos

2400

Segmento 0

Segmento 0

Segmento 4
Programa principal Segmento 2 Segmento 1

3200
Segmento 3

4300 4700
Segmento 2

Segmento 4

Lmite 0 1 2 3 4 1000 400 400 1100 1000

Base 1400 6300 4300 3200 4700

5700 6300

6700

Segmento 1

Tabla de segmentos

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO

Memoria virtual

Segmentacin
La segmentacin simple siempre hace uso de una tabla de segmentos para cada proceso y una tabla de segmentos en la memoria principal. La tabla de segmentos para un proceso contiene la direccin fsica de comienzo del segmento y la longitud mxima de ste (como medida de proteccin, para evitar referencias a segmentos que no corresponda). s

Tabla de segmentos s
d
Limite Base

CPU
< no
interrupcin

Memoria

+
Sistemas Operativos

Departamento de Sistemas y Computacin

INSTITUTO TECNOLOGICO DE CIUDAD MADERO

Direccin lgica de 16 bits No. de pgina de 4 bits

En forma anloga a la paginacin, el proceso de traduccin de direcciones en la segmentacin, consiste en los siguientes pasos: 1. Extraer el nmero de segmentos de los n bits ms significativos de la direccin lgica. 2. Emplear el nmero de segmentos como ndice en la tabla de segmentos del proceso para obtener la direccin fsica de comienzo del segmento. 3. Comparar el desplazamiento expresado en los m bits menos significativos de la direccin lgica con la longitud del segmento, si es mayor, la direccin no es vlida. 4. La direccin fsica buscada es la suma de la direccin fsica del inicio del segmento ms el desplazamiento.

Desplazamiento de 12 bits

0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0

0 1

001011101110 011110011110
Longitud

0000010000000000 0010000000100000

Base Tabla de segmentos del proceso

0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0

Cuando un proceso se introduce en memoria, se cargan todos sus segmentos en regiones de memoria libres y se crea la tabla de segmentos.

Departamento de Sistemas y Computacin

Sistemas Operativos

INSTITUTO TECNOLOGICO DE CIUDAD MADERO

Ventajas de la segmentacin
1. Generalmente, el programador no conoce realmente el tamao que utilizar una estructura de datos, luego si sta tiene asignado un segmento podr ser expandido o reducido segn sus necesidades. 2. Los programas pueden ser compilados de manera independiente aunque sean mdulos de otros programas. 3. Varios procesos pueden compartir segmentos, por si desean compartir datos. 4. Se pueden proteger los programas o datos asignando privilegios de acceso a los segmentos.

Combinacin entre paginacin y segmentacin


Las combinaciones entre paginacin y segmentacin son las siguientes: 1. Memoria no segmentada y no paginacin: La direccin virtual es la misma que la direccin fsica. 2. Memoria paginada no segmentada: La memoria es un espacio de direcciones paginado. 3. Memoria segmentada no paginada: La memoria es un conjunto de direcciones lgicas. 4. Memoria segmentada paginada: La segmentacin define particiones lgicas de memoria y la paginacin gestiona la asignacin de memoria dentro de las particiones.

Departamento de Sistemas y Computacin

Sistemas Operativos

También podría gustarte