administracion de memoria

28
Instituto Tecnológico Superior de El Mante Sistemas Operativos Unidad III: Administración de memoria ISC. Roberto Rangel Anguiano Cd. Mante, Tamaulipas A 30 de Septiembre de 2013

Upload: elias-rosales

Post on 13-Jun-2015

450 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Administracion de memoria

Instituto Tecnológico Superiorde El Mante

Sistemas OperativosUnidad III: Administración de

memoria

ISC. Roberto Rangel Anguiano

Cd. Mante, Tamaulipas A 30 de Septiembre de 2013

Page 2: Administracion de memoria

Memoria

• La memoria es un recurso importante que se debe administrar con cuidado.

• La parte del sistema operativo que administra la jerarquía de memoria se denomina administrador de memoria.

Page 3: Administracion de memoria

Programador

• Idealmente, lo que a todo programador le gustaría es una memoria infinitamente grande y rápida que además no sea volátil, es decir, que no pierda su contenido cuando se interrumpa la alimentación eléctrica.

Page 4: Administracion de memoria

Administración de la memoria en los sistemas monoprogramados

Programa de usuario

Núcleo en RAM

OxFF…

ل

Programa de usuario

Núcleo en ROMOxFF…

ل

Programa de usuario

Sistema Operativo en RAM

OxFF…

ل

Controladores de dispositivos en ROM

Tres formas de organización de la memoria RAM, con un sistema operativo y un proceso de usuario. Todo el programa es cargado a memoria para su ejecución

Programa de usuario

Sistema Operativo

Dirección del registro limite

CPU

Registro limite

Protección de la Memoria

PC de IBM

BIOS

Page 5: Administracion de memoria

Administración de la memoria en los sistemas multiprogramados

Núcleo del S.O512

Proceso 1

Proceso 2

Proceso 3

Proceso n

d1

d2

d3

d4

dm

●●●

●●●

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. ¿Qué proceso ocupa cual espacio?.

2. 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.

3. La protección de las zonas de memoria ocupadas por los procesos, máxime en sistemas multiusuario donde los procesos pueden pertenecer a distintos usuarios.

Direcciones de

memoria

Page 6: Administracion de memoria

Gestión de Memoria

Los requisitos que se intentan satisfacer en la gestión de la memoria en los sistemas donde se emplea la multiprogramación o los sistemas multiusuarios son:

1. Reubicación.

2. Protección.

3. Compartición.

4. Organización lógica.

5. Organización física.

Memoria Principal

Reubicación Compartición

Protección, organización física y lógica

Memoria Virtual

Page 7: Administracion de memoria

Asignación de memoria contigua

Núcleo del S.O512

512 k

512 k

512 k

512 k

512 k

512 k

512 k

Particiones estáticas

Organización de la memoria:

La memoria se divide en regiones con límites fijos, con dos alternativas:

1. particiones igual tamaño o

2. particiones de diferentes tamaños.

Núcleo del S.O 512

128 k

256 K320 k

512 k

576 k

768 k

1 M

Asignación de procesos a la memoria:

Se pueden tener dos esquemas de asignación de memoria en particiones estáticas utilizando colas de procesos:

1. Colas de planificación para cada partición.

2. Una cola de planificación para la memoria (mayor eficiencia)

Page 8: Administracion de memoria

Asignación de memoria contigua

Sistema operativo512

512 k

512 k

512 k

512 k

512 k

512 k

512 k

Proceso A 128 K

Particiones estáticas

Una vez introducido un proceso en una partición, permanece en ella hasta su finalización aunque se encuentren libres otras particiones. Esto provoca una pérdida de eficiencia

Los trabajos se traducían mediante compiladores y ensambladores absolutos, para ejecutarse en una partición específica

Proceso B256 K

Proceso C640 K

Listos

Bloqueados Ejecución

Espera eventoTermina

eventoInterrupción

de reloj

384 k

256 k

384 k

Proceso del S.O. 128 K

Solicitud para entrar al sistemas

BloqueadosSuspendidos

Listos Suspendidos

Interrupción de reloj

Memoria

secundaria

¿Cuántos procesosPueden colocarse en memoria secundaria?

1024 K

Page 9: Administracion de memoria

Asignación de memoria contigua

Particiones estáticas

Sistema operativo

Procesosnuevos

Cuando un proceso se introduce en una partición, lo más probable es que su tamaño no sea el mismo (es decir, sea algo menor) que el de la partición. Esto origina un problema de desperdicio de memoria conocido como fragmentación interna.

Algunas colas estarán saturadas por procesos que tienen un tamaño similar a la partición mientras que otras estarán vacías o semivacías.

Sistema operativo

Procesosnuevos

Page 10: Administracion de memoria

Asignación de memoria contigua

Particiones estáticas

Se minimiza la partición interna porque cada proceso es asignado a la partición más pequeña. Para ello se supone que se conoce el tamaño de la cantidad de memoria que ocupa un proceso lo cual no siempre es cierto.

Procesosnuevos

Sistema operativo512

128 k

256 K320 k

512 k

576 k

768 k

1 M

Procesosnuevos

Sistema operativo512

128 k

256 K320 k

512 k

576 k

768 k

1 M

Page 11: Administracion de memoria

PROCESO

10000

10100

Memoria RAM●●●

●●●

●●●

●●●

Askdlkelirlekrlkerklerlkerlkerlkertlkertlertlertjlekrtlekrtlkertletjl

Askdlkelirlekrlkerklerlkerlkerlkertlkertlertlertjlekrtlekrtlkertletjl

Askdlkelirlekrlkerklerlkerlkerlkertlkertlertlertjlekrtlekrtlkertletjl

Askdlkelirlekrlkerklerlkerlkerlkertlkertlertlertjlekrtlekrtlkertletjl

Proceso

Askdlkelirlekrlkerklerlkerlkerlkertlkertlertlertjlekrtlekrtlkertletjl

Askdlkelirlekrlkerklerlkerlkerlkertlkertlertlertjlekrtlekrtlkertletjl

Askdlkelirlekrlkerklerlkerlkerlkertlkertlertlertjlekrtlekrtlkertletjl

Askdlkelirlekrlkerklerlkerlkerlkertlkertlertlertjlekrtlekrtlkertletjl

0

100

Dirección relativaDirección real

Registro Base (RB) 10000

Acumulador (A)100

MMURB + A

CPU

Ejecución de la instrucción del

proceso

BCP

Información sobre las

direcciones reales

Enviado por el BUS

Programa

Pila

Datos

La traducción de las direcciones virtuales a reales es implementada por una Unidad de Manejo de Memoria (MMU).

Page 12: Administracion de memoria

A A

F

A

B

C

D

C

E

C

E

Asignación de memoria contigua

Particiones dinámicas

0123456789

1011121314

G

Memoria Virtual

A, F, C o E

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

No hay espacio

Page 13: Administracion de memoria

A A

F

A

B

C

D

C

E

C

E

Asignación de memoria contigua

Particiones dinámicas

0123456789

1011121314

El continuo ingreso y salida de los procesos producen huecos en la memoria demasiado pequeños para que un proceso pueda colocarse. A este tipo de fragmentación se le conoce como fragmentación externa.

La recuperación de los huecos de memoria puede llevarse a cabo por medio de la técnica de compactación 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 compactación.

Page 14: Administracion de memoria

A

F

G

C

E

Asignación de memoria contigua

Particiones dinámicas

H?

Estrategias de colocación

Primer ajuste. Primera partición de memoria que se encuentre libre.

Mejor ajuste. Busca y asigna la partición de memoria que mejor se ajuste al tamaño del proceso tratando de dejar libre la menor cantidad de memoria

Peor ajuste. Se busca y asigna la partición de mayor tamaño para dejar libre la mayor cantidad de memoria para que pueda colocarse otro proceso en ella.

Page 15: Administracion de memoria

Administración de memoria particiones estáticas

Partición estática.

Es suficiente con guardar en una tabla la información sobre la partición que está libre o que está ocupada y qué proceso se encuentra en ella, así como la direcciones de comienzo y fin de la partición.

¿Cómo se lleva el control de la memoria que se encuentra disponible y aquella que esta ocupada?

No. de partición

Libre/ocupada

Id del Proceso

Inicio de la

partición

Fin de la partición

Tabla de administración de la memoria

Partición dinámica pueden ser implementada por

1. Mapa de bits.

2. Listas enlazadas.

3. Sistema de los asociados.

Page 16: Administracion de memoria

Administración de memoria particiones dinámicas

Mapas de bits

Se divide la memoria en bloques de cierto tamaño 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 pequeñas 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 partición disponible. Numero de bloque de inicio. Numero de bloques utilizados. Puntero al siguiente nodo en la lista.

Ventajas:

La actualización de la lista enlazada es directa.

Desventaja:

La búsqueda del un hueco que pueda satisfacer la solicitud de memoria para un proceso es lento. La solución puede ser la creación 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.

A B C D E

P 0 5 ● H 5 3 ● P 8 6 ● P 14 4 ●

H 18 2 ● P 20 6 ● P 26 3 ● H 29 3 XHueco o proceso

InicioLongitud

Page 17: Administracion de memoria

Administración de memoria particiones dinámicas

Sistemas asociados

Consiste en tener la memoria inicialmente como un gran espacio libre que se irá particionando en múltiplos de potencia de 2 cada vez que un proceso haga la solicitud de memoria.

P

B

1 MB

512 KB

256 KB

128 KB

P 56 K

512 K 512 K

256 K 256 K256 K 256 K

128 K 128 K 128 K 128 K 128 K 128 K 128 K 128 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

64 K

1 M

Page 18: Administracion de memoria

Bloque de control de Proceso

Código

Datos

Pila

Dirección Relativa o lógica

Sumador

Comparador

Registro Base

Registro Límite

Interrupción al Sistema Operativo

Dirección Absoluta, física o real

Imagen de un Proceso en

Memoria Principal

Soporte del Hardware para la reubicación.

AcumuladorM

emo

ry M

anag

em

ent

Un

it

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 dinámicos durante la ejecución.

La Unidad Manejadora de Memoria (MMU) realiza la traducción de las direcciones relativas en direcciones físicas en la memoria principal.

Page 19: Administracion de memoria

Palabra 0

Palabra z

Palabra 0

Palabra z

Palabra 0

Página 0

Palabra z

Página 1

Palabra 1

Palabra z

Página n-1

Programa XYZ

1 11 0 1 1 10 1 0 1 1 10 1 1

1 2

Los ordenadores modernos normalmente tienen un tamaño de palabra de 16, 32 ó 64 bits.

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

palabra

Marco n-1

Página 0

Página n-1

Página

Marco 0

Página

Memoria

ProgramaXYZ

1. Cada página consiste en z palabras contiguas

2. Un espacio de direcciones N de un programa consiste de n páginas (0,1,2,3…n-1) (n*z direcciones virtuales)

3. el espacio de memoria consiste de m marcos de paginas (0,z,2z,…,(m-1)z)(m*z posiciones)

La técnica de paginación simple es similar a la partición estática.

Las diferencias están en que, con paginación las particiones son más pequeñas, un programa puede ocupar más de una partición y éstas no tienen por qué estar contiguas.

Memoria virtual

Paginación

Page 20: Administracion de memoria

0123456789

1011121314

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

0123456789

1011121314

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

0123456789

1011121314

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

0123456789

1011121314

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

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

0123456789

1011121314

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

0123456789

1011121314

(a) 15 páginas libres

b) Carga del proceso A

c) Carga del proceso B

d) Carga del proceso C

e) Expulsión del proceso B

f) Carga del proceso D

0123

------

012

456

1112

01234

789

10

0123

1314

Tablas del páginas del Proceso A

Tablas del páginas del Proceso B

Tablas del páginas del Proceso C

0123

Tablas del páginas del Proceso D

Listas de marcos libres

Page 21: Administracion de memoria

Una dirección virtual a es equivalente a una dirección dada como una dupla (p, d), en la cual p es

el número de la página y d el número de la palabra dentro de la página

Palabra 0

Palabra z

Palabra 0

Palabra z

Palabra 0

Página 0

Palabra z

Página 1

Palabra 1

Palabra z

Página n-1

),(a = d p

Marco 0

Palabra de 16 bits

0000010111011110Página de 1024 bits = 1 K

0 10 0 0 0 10 1 1 0 1 11 1 0

Dirección lógica de bits

No. de página de 6 bits

000101

000110

000101

0

1

2

0 10 0 0 1 01 1 1 0 1 11 1 0

Desplazamiento de 10 bits

Dirección física de 16 bits

Page 22: Administracion de memoria

Memoria Asociativa

En la práctica es necesario que la

mayoría de los accesos a memoria no

impliquen una consulta a la tabla de

páginas, sino que únicamente requieran

el acceso a la posición solicitada. Esto

se logra mediante el uso de una

memoria asociativa interna en la MMU

que mantiene información sobre las

últimas páginas accedidas.

Esta memoria asociativa es considerada

memoria cache especial de alta

velocidad.

Page 23: Administracion de memoria

Páginas compartida

s

Otra ventaja de la paginación es la

posibilidad de compartir programas de

uso común. Esta técnica 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

código debe ser reentrante (no

automodificable), es decir, el código es

sólo de búsqueda o sólo lectura.

ed1

ed1

ed1

Datos 1

ed1

ed1

ed1

Datos 1

ed1

ed1

ed1

Datos 1

3

4

6

1

3

4

6

7

3

4

6

2

ProcesoP1

ProcesoP2

ProcesoP3

Tabla de Páginas P1

Tabla de Páginas P2

Tabla de Páginas P3

Datos 1

Datos 3

ed1

ed2

ed3

Datos 2

0

1

2

3

4

5

6

7

8

9

10

Page 24: Administracion de memoria

Memoria virtual

Segmentaciónsubrutina

pila

Tabla de símbolos

Programa principal

Sqrt

Segmento 0

Segmento 1

Segmento 2

Segmento 4

Segmento 3

Límite

1000400

400

11001000

Base

14006300

4300

32004700

01

2

34

Tabla de segmentos

Segmento 0

Segmento 3

Segmento 2

Segmento 4

Segmento 1

1400

2400

3200

6700

6300

5700

4700

4300

La segmentación es un esquema de

administración de la memoria que soporta

la visión que el usuario tiene de la misma.

Un espacio de direcciones lógicas es una

colección 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

dirección mediante dos cantidades: un

nombre de segmento y un

desplazamiento.

Page 25: Administracion de memoria

Memoria virtual

Segmentación

La segmentación 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 dirección física

de comienzo del segmento y la longitud

máxima de éste (como medida de

protección, para evitar referencias a

segmentos que no corresponda).

Tabla de segmentos

Limite Base s d

CPU

< +Memoria

interrupción

no

s

Page 26: Administracion de memoria

0

1 00 0 0 1 00 1 1 1 1 00 0 0

Dirección lógica de 16 bits

No. de página

de 4 bits Desplazamiento de 12 bits

001011101110

011110011110

0

1

0 1 10 1 0 00 0 0 0 1 00 0 0

0000010000000000

0010000000100000 +Longitud Base

Tabla de segmentos del proceso

En forma análoga a la paginación, el proceso de traducción de direcciones en la segmentación, consiste en los siguientes pasos:

1. Extraer el número de segmentos de los n bits más significativos de la dirección lógica.

2. Emplear el número de segmentos como índice en la tabla de segmentos del proceso para obtener la dirección física de comienzo del segmento.

3. Comparar el desplazamiento expresado en los m bits menos significativos de la dirección lógica con la longitud del segmento, si es mayor, la dirección no es válida.

4. La dirección física buscada es la suma de la dirección física del inicio del segmento más el desplazamiento.

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

Page 27: Administracion de memoria

1. Generalmente, el programador no conoce realmente el tamaño que utilizará una estructura de datos, luego si ésta tiene asignado un segmento podrá ser expandido o reducido según sus necesidades.

2. Los programas pueden ser compilados de manera independiente aunque sean módulos 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.

Ventajas de la segmentación

Page 28: Administracion de memoria

Combinación entre paginación y segmentación

Las combinaciones entre paginación y segmentación son las siguientes:

1. Memoria no segmentada y no paginación: La dirección virtual es la misma que la dirección física.

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 lógicas.

4. Memoria segmentada paginada: La segmentación define particiones lógicas de memoria y la paginación gestiona la asignación de memoria dentro de las particiones.