Sistemas Operativos I - PowerPoint PPT Presentation

1 / 58
About This Presentation
Title:

Sistemas Operativos I

Description:

Title: Sistemas Operativos I Author: Pablo Carazo Minguela Last modified by: pcarazo Created Date: 7/26/1999 8:31:48 AM Document presentation format – PowerPoint PPT presentation

Number of Views:80
Avg rating:3.0/5.0
Slides: 59
Provided by: PabloCara8
Category:

less

Transcript and Presenter's Notes

Title: Sistemas Operativos I


1
sisOpe Temario Curso 14/15
  • Horas
  • INTRODUCCIÓN 5
  • PROCESOS Y THREADS 11
  • GESTIÓN DE MEMORIA 7
  • ENTRADA/SALIDA 2
  • SISTEMA DE FICHEROS 5

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

3
Introducció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?
4
Introducció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

5
Introducción (objetivos)
Jerarquía de Memoria Capacidad y Tiempos
5ª Ed Computer Architecture Hennessy
Patterson - 2011
6
Introducción (Proceso en memoria?)
7
Introducció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 !
8
Introducción (Imagen de un proceso en memoria?)
9
Introducción (modelo estático vs dinámico)
Reubicar !
Pi se ejecuta en la misma zona de memoria desde
que se crea hasta que termina
10
Monoprogramación
  • Máquina desnuda con monitor

Sistemas empotrados
?
?
Word
Power Point
Excel
11
Multiprogramació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
12
Particiones 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
13
Particiones 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
14
Particiones Fijas ( Planificación )
  • COLAS MÚLTIPLES / SEPARADAS

200K
400K
350K
80K
300K
100K
S.O.
Particiones de igual tamaño? ? Equilibrar la
carga
15
Particiones Fijas ( Planificación )
  • COLA ÚNICA
  • 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

16
Particiones Fijas ( Reubicación )
17
Particiones Fijas ( Reubicación )
  • Reubicar al cargar (reubicación estática)
  • 20000 Direcciones Absolutas
  • Código reubicable
  • JMI 8(PC)

18
Particiones Fijas ( Protección )
  • Controlar accesos de Pi fuera de su zona

rpAux rpAux-gtp_nextready
19
Intercambio ( 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?
20
Intercambio ( Introducción )
Algunas cuestiones
  • Cuándo intercambiar ?
  • Quién por quién ?
  • Coste del intercambio ?

21
Intercambio ( 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?
22
Intercambio ( Introducción )
23
Particiones Variables
blockdev getbsz /dev/sda1
  • Asignar a cada proceso sólo la memoria que
    necesita

Solución ?
E esperando
24
Particiones Variables (Compactación)
  • Siempre un único hueco con toda la memoria libre

S.O.
Compactar
Costoso en tiempo
Gestión de huecos
25
Algoritmos 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

26
Algoritmos 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)

27
Algoritmos de gestión trozos (Lista encadenada)
0
1000
49999
S.O.

28
Algoritmos 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

29
Algoritmos de gestión trozos (Asignación de
Memoria)
  • Lista encadenada Asignación de memoria
  1. First Fit Primero en donde quepa
  1. Next Fit Siguiente donde quepa
  1. Best Fit Donde quepa mejor

Muchos huecos inútiles (demasiado pequeños)
Recorrer toda la lista !
  1. Worst Fit Donde quepa peor

Cómo acelerar la asignación ?
  1. Lista de procesos por un lado y de huecos por otro

30
Algoritmos 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
31
Algoritmos 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
32
Algoritmos 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 !
33
Algoritmos de gestión trozos (Mapa de Bits)
  • Tamaño del Mapa de Bits?

64MB/4KB 16Kbits gt 2KB
  • Liberación de memoria?

Pi pide 10K
  • Asignación de memoria?

First, Next, Best, Worst gt Viables Quick, Buddy
gt Inviables
No hay información explícita de tamaños !
34
Paginació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
35
Paginación ( Problemática del Intercambio )
Su gran restricción?
Solución general?
36
Paginació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
37
Paginació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
38
Paginación ( Arquitectura Subyacente )
M.P.
Cachés?
39
Paginació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 ?
40
Paginación ( Traducción de direcciones binario )
bits dv ? bits dr ?
? 24 ? 20
0000 0000 0000 0000 0000 0000
0000 0000 0000 1111 1111 1111
41
Paginación ( Traducción de direcciones
hexadecimal )
Demasiado lento!
42
Paginació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é ?
43
Paginació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 ?
44
Paginació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
45
Paginación ( Tabla de Páginas multinivel Intel
Core i7 )
46
Paginación ( Uno o varios espacios de dv )
  • Un único espacio de direcciones virtuales para
    todos los procesos

Ver ejercicio 3 20/6/00
47
Paginación ( Uno o varios espacios de dv )
  • Un espacio de direcciones virtuales para cada
    proceso

48
Paginación ( Tratamiento de Falta de Página )
  • Cuántas Faltas de Página puede generar una
    instrucción?

?
  1. Extraer instrucción ? Leer dv 003000 ? F.P.
  2. Decodificarla
  3. Ejecutarla ? Escribir dv 0045FB ? F.P.

49
Paginación ( Tratamiento de Falta de Página )
  • El tratamiento de F.P. recae en el S.O.

1.048.576 marcos !
50
Paginació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é ?
51
Paginació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
52
Paginació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
53
Paginació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
54
Paginación ( Algoritmos de sustitución de páginas
)
55
Paginació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
56
Paginació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!
57
Paginación (Cuestiones de diseño superpáginas )
58
Paginación ( Cuestiones de diseño otras )
  • Asignación local frente a global
  • Control de carga

FIN
Retirar temporalmente algún proceso Intercambio?
Write a Comment
User Comments (0)
About PowerShow.com