2. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
Administración de la memoria en los sistemas
monoprogramados
Programa de
usuario
Sistema Operativo
en RAM
OxFF…
ﻝ
Programa de
usuario
Sistema Operativo
en ROM
OxFF…
ﻝ
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
3. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
Administración de la memoria en los sistemas
multiprogramados
Sistema operativo
512
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. Que 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
4. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
Asignación de memoria contigua
Sistema operativo
512
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.
Sistema operativo
512
128 k
256 K
320 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)
5. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
Asignación de memoria contigua
Sistema operativo
512
512 k
512 k
512 k
512 k
512 k
512 k
512 k
Procesos
nuevos
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
Sistema operativo
512
512 k
512 k
512 k
512 k
512 k
512 k
512 k
Procesos
nuevos
6. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
Asignación de memoria contigua
Particiones estáticas
Sistema operativo
Procesos
nuevos
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
Procesos
nuevos
7. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
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.
Procesos
nuevos
Sistema operativo
512
128 k
256 K
320 k
512 k
576 k
768 k
1 M
Procesos
nuevos
Sistema operativo
512
128 k
256 K
320 k
512 k
576 k
768 k
1 M
8. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
●
PROCESO
10000
10100
Memoria
RAM
●
●
●
●
●
●
●
●
●
●
●
●
Askdlkelirlekrlkerklerlkerlkerlkertlk
ertlertlertjlekrtlekrtlkertletjl
Askdlkelirlekrlkerklerlkerlkerlkertlk
ertlertlertjlekrtlekrtlkertletjl
Askdlkelirlekrlkerklerlkerlkerlkertlk
ertlertlertjlekrtlekrtlkertletjl
Askdlkelirlekrlkerklerlkerlkerlkertlk
ertlertlertjlekrtlekrtlkertletjl
Proceso
Askdlkelirlekrlkerklerlkerlkerlkertlk
ertlertlertjlekrtlekrtlkertletjl
Askdlkelirlekrlkerklerlkerlkerlkertlk
ertlertlertjlekrtlekrtlkertletjl
Askdlkelirlekrlkerklerlkerlkerlkertlk
ertlertlertjlekrtlekrtlkertletjl
Askdlkelirlekrlkerklerlkerlkerlkertlk
ertlertlertjlekrtlekrtlkertletjl
0
100
Dirección relativa
Dirección real
Registro Base (RB)
10000
Acumulador (A)
100
MMU
RB + A
CPU
Ejecución de la
instrucción del
proceso
BCP
Informacion
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).
9. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
A A
F
A
B
C
D
C
E
C
E
Asignación de memoria contigua
Particiones dinámicas
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
G
Memoria Virtual
A, F, C o E
Pasar temporalmente un proceso para dar
oportunidad a un nuevo proceso para ejecutarse
No hay espacio
10. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
A A
F
A
B
C
D
C
E
C
E
Asignación de memoria contigua
Particiones dinámicas
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
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.
11. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
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.
12. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
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.
13. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
Administración de memoria particiones estáticas
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
Inicio
Longitud
14. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
Administración de memoria particiones estáticas
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
15. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
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.
AcumuladorMemoryManagementUnit
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.
16. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
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
Programa
XYZ
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
17. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
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
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(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
0
1
2
3
--
--
--
0
1
2
4
5
6
11
12
0
1
2
3
4
7
8
9
10
0
1
2
3
13
14
Tablas del
páginas del
Proceso A
Tablas del
páginas del
Proceso B
Tablas del
páginas del
Proceso C
0
1
2
3
Tablas del
páginas del
Proceso D
Listas de
marcos libres
18. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
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 = dp
Marco 0
Palabra de 16 bits
0000010111011110
Pá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
19. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
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.
20. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
Páginas
compartidas
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
Proceso
P1
Proceso
P2
Proceso
P3
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
21. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
Memoria virtual
Segmentación subrutina
pila
Tabla de
símbolos
Programa
principal
Sqrt
Segmento 0
Segmento 1
Segmento 2
Segmento 4
Segmento 3
Límite
1000
400
400
1100
1000
Base
1400
6300
4300
3200
4700
0
1
2
3
4
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.
22. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
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 Bases d
CPU
< +
Memoria
interrupción
sí
no
s
23. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
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.
24. INSTITUTO TECNOLOGICO DE CIUDAD MADERO
Sistemas OperativosDepartamento de Sistemas y Computación
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
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.