Documentos de Académico
Documentos de Profesional
Documentos de Cultura
04-Administración de Memorias
04-Administración de Memorias
1
Administración de la Memoria
Funciones:
2
Adm. memoria
Es necesario un mecanismo
procesos de protección para evitar
accesos de los procesos al
área del Sistema Operativo
3
Administraciones de Memoria (tipos)
- Simple contigua
- Particionado fijo
- Particionado variable (con/sin compactación)
- Paginación
- Paginación por demanda (con memoria virtual)
- Segmentación
- Segmentación paginada
4
Simple Contigua
5
Simple contigua
S.O.
Proc1
Espacio libre
6
Simple contigua (cont.)
S.O.
Proc1 Proc1
???
7
Simple contigua (cont.)
S.O.
Proc1 Proc1
8
Simple contigua (cont.)
• Administración trivial
• No permite multiprogramación
9
Variantes: Overlay
• Simula más memoria física
S.O. Subrutina A
Subrutina A Subrutina B
Subrutina B Subrutina C
Proceso 1
10
Overlay (cont.)
S.O. Sub A
Sub A Sub B
Sub C Sub C
Proceso 1
11
Variantes: Swapping
• Simula multiprogramación
S.O. A Proceso A
A
B
Proceso B
12
Swapping (cont.)
• Simula multiprogramación
S.O. A A
B
B
13
• Mejora posible:
– Particionar la memoria y asignar un proceso
distinto a cada partición .
14
Particionada Fija
15
Particionada fija
S.O.
Espacio libre
Proc1
Espacio libre
Proc2
Espacio libre
16
Particionada fija (cont.)
• Necesita guardar en una tabla de
particiones:
– Dirección de comienzo de la partición
– Tamaño de la partición
17
Particionada fija (cont.)
18
Particionada fija (cont.)
S.O.
Proc1
Proc1
Espacio libre
Proc2
Proc2
19
Particionada fija (cont.)
S.O.
Proc1
Proc1
Proc2
Espacio libre
Proc2 Proc3
20
Particionada fija (cont.)
S.O.
Proc1
Proc1
Proc3 Proc2
???
Proc3
Proc2
21
Particionada fija (cont.)
S.O.
Proc1
Proc1
Proc3 Proc2
desperdicio Proc3
Proc3
Proc2
22
Particionada fija (cont.)
S.O.
Proc1
Proc3
desperdicio Proc3 Fragmentación Interna a la
partición
Proc2
23
Particionada Variable
24
Particionada variable
S.O.
Proc1
Proc1
Proc3 Proc2
libre
Proc2 Proc3
25
Particionada variable (cont.)
S.O.
Proc2
libre
Proc3 Proc3
libre
Proc2
26
Particionada variable (cont.)
S.O.
Proc4 Proc2
libre
Proc3 Proc3
libre
Proc2 Proc4
27
Particionada variable (cont.)
S.O.
Proc4
libre
Proc3 Proc5
libre
???
Proc2
28
Particionada variable (cont.)
S.O.
Proc4
libre
Proc3
libre Fragmentación Externa
Proc2
29
Particionada variable (cont.)
• Una posible solución a la fragmentación externa:
– Compactación (Memoria-a-Memoria)
30
Particionada variable (cont.)
- En la compactación Memoria-Disco-Memoria la
CPU queda libre para ejecutar otros procesos
mientras el canal de E/S robando ciclos va
extrayendo los procesos de la memoria y
depositandolo en el disco para luego reingresarlo al
sistema en otra ubicación.
- Cuando la compactación se realiza en Memoria la
CPU debe estar dedicada a esta tarea no pudiendo
ejecutar otros procesos de usuario!!
31
Particionada Variable (cont.)
• Estrategia de asignación
– Mejor ajuste
– Peor ajuste
– Primer ajuste
32
Estrategia de asignación
S.O.
Peor ajuste
Primer ajuste
libre Proc4
libre
Proc2
33
• Mejora posible:
– Particionar la memoria para poder asignar una
parte a cada proceso (ya visto)
Y, además,
34
Paginación
35
Paginación
• Idea:
– partir la memoria en bloques (frames)
– partir el proceso en páginas
bloque 0
página 0
1
bloque 1
página 1
2
bloque 2
página 2
3
bloque 3 Proc1
bloque 4
bloque 5
37
Paginación (cont.)
S.O.
bloque 0
página 0
Proc1 pág. 1
página 1
bloque 2
página 2
Proc1 pág. 2 Proc1
Proc1 pág. 0
bloque 5
38
Paginación (cont.)
S.O. página 0
página 1
bloque 0
página 2
Proc1 pág. 1 Proc1
bloque 2
página bloque
Proc1 pág. 2 0 4
Proc1 pág. 0 1 1
2 3
bloque 5
Tabla de Distribución de
páginas (TDP) 39
Paginación (cont.)
40
Paginación (cont.)
S.O. página 0
página 1
bloque 0
página 2
Proc1 pág. 1 Proc1
bloque 2
Proc1 pág. 2
Proc1 pág. 0 Hay fragmentación?
bloque 5
41
Paginación (cont.)
• Si el tamaño de las páginas y los bloques
son iguales, sólo puede haber
fragmentación interna al proceso en el
último bloque.
42
Paginación (cont.)
• Direcciones lógicas (virtuales):
44
Paginación (cont.)
45
Paginación (cont.)
Cada acceso a una posición de memoria real
implica dos accesos:
46
Paginación (cont.)
S.O. página 0 página bloque
0 4
página 1 1 1
Proc2 pág. 0 2 3
página 2
Proc1 pág. 1 Proc1
Proc2 pág. 2 página bloque
página 0
Proc1 pág. 2 0 0
página 1 1 5
Proc1 pág. 0 2 2
página 2
Proc2 pág. 1
Proc2
47
Paginación (cont.)
S.O. página 0
bloque página proceso página 1
0 0 2
Proc2 pág. 0 1 1 1
página 2
Proc1
Proc1 pág. 1 2 2 2
3 2 1 página 0
Proc2 pág. 2 4 0 1
5 1 2
página 1
Proc1 pág. 2
Tabla de Distribución bloques (TDB). Es el
página 2
Proc1 pág. 0 mapa de memoria.
Proc2
Proc2 pág. 1
48
Paginación (cont.)
• Tabla de páginas (TDP):
– 1 por proceso
49
Paginación por demanda
o Paginación con
memoria virtual
50
Paginación por demanda
Idea: no todas las páginas se cargan
simultáneamente...
51
Paginación por demanda (cont.)
S.O. página 0
página 1
bloque 0
página 2
Proc1 pág. 0 Proc1
bloque 2
bloque 3 Sólo carga la
primera página
bloque 4
(entry point)
bloque 5
52
Paginación por demanda (cont.)
Recordemos la tabla de páginas (TDP)
página bloque
0 4
1 1
2 3
53
Paginación por demanda (cont.)
Tabla de páginas
54
Paginación por demanda (cont.)
S.O. página 0
página 1
Proc 2 pág. 0
página 2
Proc3 pág. 0 Proc4
Proc1 pág. 4
Tiene que cargar la
Proc2 pág. 9 primera página pero no
Proc3 pág. 2 hay lugar => remoción
Proc2 pág. 1
55
Paginación por demanda (cont.)
La página removida debe
S.O. guardarse en memoria virtual
sii esa página cambió!
Proc 2 pág. 0
Proc3 pág. 0
Proc1 pág. 4
Proc2 pág. 9 Proc3 pág. 2
Proc4 pág. 0
Proc2 pág. 1 Disco
56
Cache (TLB)
57
Algoritmos de remoción
- FIFO
58
Paginación por demanda (cont.)
59
Tabla de distribución de bloques
62
Qué páginas no pueden removerse??
64
Ejemplo:
- Direccionamiento 14 bits
- Memoria real de 4 K
- Tamaño de página 256 bytes
a) Tamaño máximo de un programa a ejecutar en esta instalación??
66
Ejemplo de seguimiento de una traza con diferentes algoritmos
de remoción.
1–2–3–1–3–1–4–2–1–5
LRU : least recently used (la que hace más tiempo que no se referencia)
1 2 3 1 3 1 4 2 1 5 Traza
1 2 3 1 3 1 4 2 1 5
1 2 3 1 3 1 4 2 1
1 2 2 2 3 1 4 2
2 3 3 4 Candidata
X X X X X Fracasos
67
LFU : least frequently used (la que fue menos usada en veces)
1 2 3 1 3 1 4 2 1 5
1 2 3 1(2) 3(2) 1(3) 1(3) 1(3) 1(4) 1(4)
1 2 3 1(2) 3(2) 3(2) 2(2) 2(2) 2(2)
1 2 2 2 4 3(2) 3(2) 3(2)
2 4 4 5
1 2 3 1 3 1 4 2 1 5
1 2 3 3 3 3 4 4 4 5
1 2 2 2 2 3 3 3 4
1 1 1 1 2 2 2 3
1 1 1 2
68
Anomalía de Belady
Se puede pensar que incrementar la memoria
indefinidamente otorgará el mejor índice de
hallazgos pero esto no es cierto en los algoritmos
de remoción FIFO.
Bellady demostró que incrementarla no sólo no
mejora sino que empeora el índice de hallazgos en
cierto casos concretos.
69
Ejemplo de seguimiento de una traza que muestra
la anomalía de Belady
Traza: 1 – 2 – 3 – 4 - 1 – 2 – 5 – 1 – 2 – 3 – 4 - 5
FIFO con M = 3
1 2 3 4 1 2 5 1 2 3 4 5
1 2 3 4 1 2 5 5 5 3 4 4
1 2 3 4 1 2 2 2 5 3 3
Candidata 1 2 3 4 1 1 1 2 5 5
Fracasos X X X X X X X X X
Indice de fracasos = 9 / 12
FIFO con M = 4
1 2 3 4 1 2 5 1 2 3 4 5
1 2 3 4 4 4 5 1 2 3 4 5
1 2 3 3 3 4 5 1 2 3 4
1 2 2 2 3 4 5 1 2 3
Candidata 1 1 1 2 3 4 5 1 2
Fr. X X X X X X X X X X
Indice de fracasos = 10 / 12
70
Anomalía de Belady
con LRU
LRU con M = 3
T 1 2 3 4 1 2 5 1 2 3 4 5
1 2 3 4 1 2 5 1 2 3 4 5
1 2 3 4 1 2 5 1 2 3 4
Candidata 1 2 3 4 1 2 5 1 2 3
Fracasos X X X X X X X X X X
Indice de fracasos = 10 / 12
LRU con M = 4
T 1 2 3 4 1 2 5 1 2 3 4 5
1 2 3 4 1 2 5 1 2 3 4 5
1 2 3 4 1 2 5 1 2 3 4
1 2 3 4 1 2 5 1 2 3
Candidata 1 2 3 4 4 4 5 1 2
Fr. X X X X X X X X
Indice de fracasos = 8 / 12
71
Anomalía de Belady
con LRU
T 1 2 3 4 1 2 5 1 2 3 4 5
1 2 3 4 1 2 5 1 2 3 4 5
M=3 1 2 3 4 1 2 5 1 2 3 4
1 2 3 4 1 2 5 1 2 3
==============================================
M=4 1 2 3 4 4 4 5 1 2
(*)
M (m, r ) M (m 1, r )
72
Predicción de Tasas de Page
Fault
LRU con M = 4
T 1 2 3 4 1 2 5 1 2 3 4 5
1 2 3 4 1 2 5 1 2 3 4 5
1 2 3 4 1 2 5 1 2 3 4
1 2 3 4 1 2 5 1 2 3
Candidata 1 2 3 4 4 4 5 1 2
==================================================
3 3 3 4 5 1
==================================================
Fr. X X X X X X X X
==================================================
Dist. i i i i 4 4 i 3 3 5 5 5
76
Segmentación
• Idea:
– partir el proceso en unidades lógicas
– usar la memoria necesaria para cada unidad
– cargar los segmentos a medida que se los
necesite
77
Segmentación (cont.)
S.O.
s1
libre s1 s2
s3 s3
s4 s5
libre
Proc1
s4
78
Segmentación (cont.)
• Direcciones lógicas:
79
Segmentación
80
81
Segmentación
Importante:
• para poder compartir un segmento entre
distintos procesos, debe ser reentrante (no
posee variables propias sino que las
referencia siempre en base a un
direccionamiento indirecto y su código no
se automodifica).
82
Segmentación (cont.)
S.O. s1 s2
s3
s1 s4 s5
libre Proc1
s3
No hay fragmentación
s2 interna.
libre
Sí hay fragmentación
externa a los procesos.
s5 s4
83
84
Direccionamiento Indirecto de
Un Segmento a Otro
85
Segmentación
paginada
86
Similar a segmentación, con el agregado que
cada segmento es dividido en páginas.
87
Ventajas y desventajas de Segmenta-
ción paginada
88
Ejemplos de Sistemas de
paginación
89
Paginación de dos niveles
90
Paginación de tres niveles - Linux
91