Title: Sistemas Operativos I
1sisOpe Temario Curso 14/15
- Horas
- INTRODUCCIÓN 5
- PROCESOS Y THREADS 11
- GESTIÓN DE MEMORIA 7
- ENTRADA/SALIDA 2
- SISTEMA DE FICHEROS 5
2Tema 3. Gestión de Memoria
- INTRODUCCIÓN
- SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático)
- Monoprogramación
- Multiprogramación con Particiones Fijas
- INTERCAMBIO
- Introducción
- Particiones Variables
- Algoritmos de gestión Libre / Ocupado
- Lista encadenada y Mapa de bits
- MEMORIA VIRTUAL
- Paginación
- Algoritmos de sustitución de páginas
- Cuestiones de diseño
3Introducción
Cada vez, más memoria, más barata y ocupa menos
1982 16KB 16.000 pts. PseudoPC 1985 1MB 500.000
pts. Victory (Unix) PC 1991 8MB 77.500 pts.
1998 64MB 17.900 pts. 128MB 51.900
pts. 2005 512MB 57 . 1GB 180
. 2013 4GB 48 . 8GB 92 .
Sin embargo,
SIEMPRE AMPLIANDO !
Ley de Parkinson
512K, 640K, 1M, 4M, 8M, 16M, 32M, 64M, 128M
2GB 20GB
Windows 764?
4Introducción (objetivos)
Memoria Recurso escaso y compartido
(Multiprogramación)
Poca memoria para los muchos procesos que quieren
ejecutarse
Memoria Principal
- Proteger
- Compartir
- Organización eficiente
- Reubicación de procesos
5Introducción (objetivos)
Jerarquía de Memoria Capacidad y Tiempos
5ª Ed Computer Architecture Hennessy
Patterson - 2011
6Introducción (Proceso en memoria?)
7Introducción (Formato de un fichero ejecutable?)
file barreraArbol barreraArbol ELF 64-bit LSB
executable, x86-64
Var. No Inic.
Algunas secciones no ocupan espacio en el
fichero ejecutable y sí en memoria !
8Introducción (Imagen de un proceso en memoria?)
9Introducción (modelo estático vs dinámico)
Reubicar !
Pi se ejecuta en la misma zona de memoria desde
que se crea hasta que termina
10Monoprogramación
- Máquina desnuda con monitor
Sistemas empotrados
?
?
Word
Power Point
Excel
11Multiprogramación ( Particiones Fijas )
Se trocea la M.P. libre para procesos de usuario
en particiones fijas, de diversos tamaños y
reconfigurable sólo en arranque
?
320K
12Particiones Fijas ( Cuántas particiones? )
Aprovechar UCP ? Índice / Nivel de
multiprogramación
Caracterización de los procesos?
Ojo ! Aprovechar la UCP al 100 no es el único
objetivo
13Particiones Fijas ( De qué tamaño? )
Intentar aprovechar la memoria al máximo (ocupada
al 100 por Pi)
200K
40K
P200K no puede ejecutarse pese a haber 510K sin
usar
200K
60K
40K
P60K no puede ejecutarse pese a haber 5
particiones libres
14Particiones Fijas ( Planificación )
- COLAS MÚLTIPLES / SEPARADAS
200K
400K
350K
80K
300K
100K
S.O.
Particiones de igual tamaño? ? Equilibrar la
carga
15Particiones Fijas ( Planificación )
- Entra un Proceso
- Partición para él o
- Se encola
200K
400K
300K
100K
S.O.
- Más complejo y lento
- Mejor aprovechamiento de UCP y memoria
- Puede que injusticia grandes vs pequeños
16Particiones Fijas ( Reubicación )
17Particiones Fijas ( Reubicación )
- Reubicar al cargar (reubicación estática)
- 20000 Direcciones Absolutas
- Código reubicable
- JMI 8(PC)
18Particiones Fijas ( Protección )
- Controlar accesos de Pi fuera de su zona
rpAux rpAux-gtp_nextready
19Intercambio ( Introducción )
- Dos grandes problemas de las particiones fijas
sin intercambio - Muchos procesos interactivos y poca memoria para
ellos - Cómo gestionar la memoria dinámica de los
procesos?
Máximo 16 procesos
Eficiente si no hay trasiego !
Una solución?
20Intercambio ( Introducción )
Algunas cuestiones
21Intercambio ( Introducción )
- Dos grandes problemas de las particiones fijas
sin intercambio - Muchos procesos interactivos y poca memoria para
ellos - Cómo gestionar la memoria dinámica de los
procesos?
Por qué P1 pide 300K?
Intercambio ?
Qué estructura tiene la memoria dinámica de un
Pi?
22Intercambio ( Introducción )
23Particiones Variables
blockdev getbsz /dev/sda1
- Asignar a cada proceso sólo la memoria que
necesita
Solución ?
E esperando
24Particiones Variables (Compactación)
- Siempre un único hueco con toda la memoria libre
S.O.
Compactar
Costoso en tiempo
Gestión de huecos
25Algoritmos de gestión trozos (Lista Encadenada)
- Lista encadenada distribuida vs centralizada
Ordenada por direcciones y de cada trozo saber
(al menos) Tipo (Libre/Ocupado) Tamaño
P1
P3
P5
P2
P4
- Separar en 2 listas?
- Huecos
- Procesos
26Algoritmos de gestión trozos (Lista Encadenada)
- Lista encadenada distribuida vs centralizada
S.O.
P1
P3
P5
- Lista dinámica? gt Array estático gt Tamaño?
- La memoria se da a trozos (sean de 4KB)
27Algoritmos de gestión trozos (Lista encadenada)
0
1000
49999
S.O.
28Algoritmos de gestión trozos (Liberación de
Memoria)
- Lista encadenada
- Supongamos que termina un proceso (sea P2)
- Hay que tener en cuenta cuatro situaciones
- Fusionar ! ? Ventaja de tener la lista ordenada
(contigüidad)
- Conveniencia de tener la lista doblemente enlazada
29Algoritmos de gestión trozos (Asignación de
Memoria)
- Lista encadenada Asignación de memoria
- First Fit Primero en donde quepa
- Next Fit Siguiente donde quepa
- Best Fit Donde quepa mejor
Muchos huecos inútiles (demasiado pequeños)
Recorrer toda la lista !
- Worst Fit Donde quepa peor
Cómo acelerar la asignación ?
- Lista de procesos por un lado y de huecos por otro
30Algoritmos de gestión trozos (First Fit)
- FIRST FIT Primero en donde quepa
P
P
P
P
P
P
P
P
P
P
Siempre recorriendo el principio !
P
31Algoritmos de gestión trozos (Next Fit)
P
P
P
P
P
P
P
P
P
Pi grande?
Fragmentación externa
P
P
P
P
P
P
32Algoritmos de gestión trozos (Quick Fit)
- QUICK FIT Donde quepa antes
Idea Varias listas que agrupan bloques de tamaño
similar
P310
P220
P500
P900
Todavía puede mejorarse tanto la asignación
como la liberación !
33Algoritmos de gestión trozos (Mapa de Bits)
64MB/4KB 16Kbits gt 2KB
Pi pide 10K
First, Next, Best, Worst gt Viables Quick, Buddy
gt Inviables
No hay información explícita de tamaños !
34Paginación
- PROBLEMÁTICA DEL INTERCAMBIO
- ARQUITECTURA SUBYACENTE
- TRADUCCIÓN DE DIRECCIONES
- TABLA DE PÁGINAS MULTINIVEL
- UNO O VARIOS ESPACIOS DE D.V.
- TRATAMIENTO DE FALTA DE PÁGINA
Recordatorio
35Paginación ( Problemática del Intercambio )
Su gran restricción?
Solución general?
36Paginación ( Problemática del Intercambio )
Solución ?? Darle al usuario la sensación de
tener una M.P. enorme
65.536 veces menos
- El Core i7 (48/64bits de direcciones) ? 256TB
- Un PC medio dispone tan sólo de ? 4GB
- Teóricamente podemos escribir programas pensando
en el Core i7 y 256TB
M.P.
Cómo funciona todo esto ?
Arquitectura subyacente
37Paginación ( Arquitectura Subyacente )
MEMORIA VIRTUAL
No caben !
- Principio de localidad
- Meto en M.P. los trozos que hagan falta para
ejecutar Pr y Pv
La Memoria Virtual reside físicamente en memoria
secundaria
38Paginación ( Arquitectura Subyacente )
M.P.
Cachés?
39Paginación ( Arquitectura Subyacente )
- Resumiendo
- M.V. en disco y gestionado como un sistema de
particiones variables (los trozos granularidad
de M.V. son páginas) - Las páginas de M.V. necesarias para que se
ejecute un Pi están en la M.P. en uno cualquiera
de sus marcos - Principio de localidad espacial y temporal !
- Función de traducción (dv ? dr) implementada en
Hw - MMU interna vs externa !
- Las páginas se intercambian MV ? MP (Falta de
Página) gracias a la intervención del S.O.
Cómo hacer la traducción dv ? dr ?
40Paginación ( Traducción de direcciones binario )
bits dv ? bits dr ?
? 24 ? 20
0000 0000 0000 0000 0000 0000
0000 0000 0000 1111 1111 1111
41Paginación ( Traducción de direcciones
hexadecimal )
Demasiado lento!
42Paginación ( Tabla de Páginas M.P. caché TLB )
- Toda la T.P. en M.P. una caché de la T.P. en la
MMU
1M entradas
Tasas de acierto del 98 !
Fallo de Caché ?
43Paginación ( Traducción de direcciones
descriptor )
- Aspecto de un descriptor de página
P
B
R
M
L E J
MARCO
C
PRESENTE Permisos LECTURA BLOQUEADA ESC
RITURA REFERENCIADA EJECUCIÓN MODIFICADA CACHE
(Si/No)
Dirección en disco ?
44Paginación ( Tabla de Páginas multinivel )
Intel Core i7 gt DV 48 bits, páginas 4KB y
descriptores 4B gt 256GB para la TP
Ejercicio 2 12.12.2001
45Paginación ( Tabla de Páginas multinivel Intel
Core i7 )
46Paginación ( Uno o varios espacios de dv )
- Un único espacio de direcciones virtuales para
todos los procesos
Ver ejercicio 3 20/6/00
47Paginación ( Uno o varios espacios de dv )
- Un espacio de direcciones virtuales para cada
proceso
48Paginación ( Tratamiento de Falta de Página )
- Cuántas Faltas de Página puede generar una
instrucción?
?
- Extraer instrucción ? Leer dv 003000 ? F.P.
- Decodificarla
- Ejecutarla ? Escribir dv 0045FB ? F.P.
49Paginación ( Tratamiento de Falta de Página )
- El tratamiento de F.P. recae en el S.O.
1.048.576 marcos !
50Paginación ( Tratamiento de Falta de Página II )
8
3 ? Seleccionar víctima, tocar TP y arrancar
E/S Sólo si sucia !
4 ? Salvando (DMA) página sucia en disco
5 ? Fin E/S. Página 2 salvada. Marco 5 libre.
Quién actualiza la TLBcaché ?
51Paginación ( Tratamiento de Falta de Página II )
Resumiendo 1 ? Referencia a página no cargada en
M.P. 2 ? Excepción BERR y se bloquea al proceso 3
? Seleccionar víctima, tocar TP y arrancar E/S
Sólo si sucia ! 4 ? Salvando (DMA) página sucia
en disco. CPU para otro Pi 5 ? Fin E/S. Página 2
salvada. Marco 5 libre. 6 ? Arrancar E/S para
cargar Página 9 en Marco 5. 7 ? Transferencia DMA
disco?MP. CPU para otro Pi 8 ? Fin E/S. Página 9
cargada en Marco 5. P ? Preparado 9 ? Actualizar
TP 10 ? Rearrancar Mov C,D cuando preparado ?
UCP
52Paginación ( Algoritmos de sustitución de páginas
)
OBJETIVO Minimizar el número de Faltas de Página
(F.P.)
Accesos ........ 001000, 0043FA, 001002,
006400, 001006, 006402, 006406,
006408, 001008, 00640A, 00100A,
00100E, 00640E, 001012 ..
1
11
Cuantos más marcos mejor?
3
53Paginación ( Algoritmos de sustitución de páginas
)
ALGORITMOS IDEAL Más tiempo tarde en volver a ser
referenciada NRU No utilizada recientemente FIFO
Más tiempo lleva en Memoria Principal LRU Menos
recientemente usada 2nd Chance Segunda
oportunidad RELOJ FIFO LRU
54Paginación ( Algoritmos de sustitución de páginas
)
55Paginación (Cuestiones de diseño conjunto de
trabajo)
- Qué hacer cuando un proceso pasa a ejecución?
Muchas F.P. evitables
CT(t1, 10)
1,2,5,6,7
56Paginación ( Cuestiones de diseño trasiego )
Más Procesos?
gt ? CT mayor que MP gt Trasiego
2n gt 512B .. 4/8KB y aumentando Superpáginas!
57Paginación (Cuestiones de diseño superpáginas )
58Paginación ( Cuestiones de diseño otras )
- Asignación local frente a global
FIN
Retirar temporalmente algún proceso Intercambio?