administracion de memoria
TRANSCRIPT
![Page 1: Administracion de memoria](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/11.jpg)
●
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/25.jpg)
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
sí
no
s
![Page 26: Administracion de memoria](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022081603/557bdaa8d8b42aac4c8b4b7c/html5/thumbnails/28.jpg)
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.