Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bibliografa: [Sta05] W. Stallings, Sistemas Operativos. Aspectos Internos y Principios de Diseo (5/e), Prentice Hall, 2005. [Car07] J. Carretero et al., Sistemas Operativos (2 Edicin), McGraw-Hill, 2007 [Lov10] R. Love, Linux Kernel Development (3/e), Addison-Wesley Professional, 2010. [Mau08] W. Mauerer, Professional Linux Kernel Architecture, Wiley, 2008. 1
Objetivos
! ! ! !
! ! !
Conocer las distintas formas en las que el sistema operativo puede organizar y gestionar la memoria fsica Saber en qu consiste y para qu se utiliza el mecanismo de intercambio (swapping) Entender qu es la Memoria Virtual y por qu se utiliza Conocer los mecanismos de paginacin, segmentacin y segmentacin paginada y cmo se llevan a cabo en un sistema con memoria virtual Comprender qu es la propiedad de localidad y su relacin con el comportamiento de un programa en ejecucin Conocer la teora del conjunto de trabajo y el problema de la hiperpaginacin Conocer aspectos de implementacin en Linux de los conceptos anterioes
2
Memoria Auxiliar
Cach - copia que puede ser accedida ms rpidamente que el original Idea: hacer los casos frecuentes eficientes, los caminos infrecuentes no importan tanto Acierto de cach: item en la cach Fallo de cach: item no en cach; hay que realizar la operacin completa Tiempo de Acceso Efectivo (TAE) = Probabilidad_acierto * coste_acierto + Probabilidad_fallo * coste_fallo Funciona porque los programas no son aleatorios, explotan la localidad ! principio de localidad
4
Objetivos a conseguir
! !
Organizacin: cmo est dividida la memoria? Gestin: Dado un esquema de organizacin, qu estrategias se deben seguir para obtener un rendimiento ptimo?
Estrategias de asignacin Estrategias de sustitucin (determinacin de qu zona de memoria elegir para ser sustituida por otra) Estrategias de bsqueda
Proteccin
El SO de los procesos de usuario Los procesos de usuario entre ellos
5
Reubicacin
Capacidad de cargar y ejecutar un programa en un lugar arbitrario de la memoria
0 Programa Ejecutable
direcciones lgicas o relativas
Memoria Principal
S.O.
Cargador X N
Cargador
?
es necesario reubicarlo
6
Reubicacin esttica
Decisin de dnde ubicar el programa en tiempo de carga
0 1000
MOVE A, 100 Programa ejecutable con direcciones lgicas
1000 + M
Reubicacin dinmica
El compilador genera direcciones lgicas (relativas) La traduccin de direcciones lgicas a fsicas se hace en tiempo de ejecucin b
R.Base
CPU
Direccin Lgica b
Direccin Fsica
MOVE A, 100
Hardware
b+M
Memoria Principal
8
S.O.
Particin 1 Particin 2 R.Base
a b
CPU c
R.Lmite
c
Particin 3
d
Particin 4
Reubicacin dinmica
e
Particin 5
Intercambio (Swapping)
! !
! !
Intercambiar procesos entre memoria y un almacenamiento auxiliar El almacenamiento auxiliar debe ser un disco rpido con espacio para albergar las imgenes de memoria de los procesos de usuario El factor principal en el tiempo de intercambio es el tiempo de transferencia El intercambiador tiene las siguientes responsabilidades:
Seleccionar procesos para retirarlos de MP Seleccionar procesos para incorporarlos a MP Gestionar y asignar el espacio de intercambio
10
Se mantiene un archivo de intercambio global con la informacin de intercambio de todos los procesos Existe un archivo de intercambio para cada proceso Problema: Necesita ms espacio en disco, los accesos son ms lentos
11
12
Memoria Virtual El tamao del programa, los datos y la pila puede exceder la cantidad de memoria fsica disponible para l. Se usa un almacenamiento a dos niveles: Memoria Principal ( partes del proceso necesarias en un momento dado Memoria Secundaria ( espacio de direcciones completo del proceso
13
La MMU (Memory Management Unit) es un dispositivo hardware que traduce direcciones virtuales a direcciones fsicas Este dispositivo est gestionado por el SO! En el esquema MMU ms simple, el valor del registro base se aade a cada direccin generada por el proceso de usuario al mismo tiempo que es enviado a memoria El programa de usuario trata slo con direcciones lgicas; ste nunca ve direcciones reales
15
CPU
direccin virtual
Memoria
Controlador de disco
MMU
direccin fsica
BUS
16
2.2 Paginacin
! !
El espacio de direcciones fsicas de un proceso puede ser no contiguo La memoria fsica se divide en bloques de tamao fijo, denominados marcos de pgina. El tamao es potencia de dos, de 0.5 a 8 Kb El espacio lgico de un proceso se divide en bloques del mismo tamao, denominados pginas Los marcos de pginas contendrn pginas de los procesos
17
Paginacin (y II)
!
Las direcciones lgicas, que son las que genera la CPU se dividen en nmero de pgina (p) y desplazamiento dentro de la pgina (d)
p d
Las direcciones fsicas se dividen en nmero de marco (m, direccin base del marco donde est almacenada la pgina) y desplazamiento (d)
m d
18
Paginacin (y III)
!
Cuando la CPU genere una direccin lgica ser necesario traducirla a la direccin fsica correspondiente, la tabla de pginas mantiene informacin necesaria para realizar dicha traduccin. Existe una tabla de pginas por proceso Tabla de ubicacin en disco (una por proceso) ubicacin de cada pgina en el almacenamiento secundario Tabla de marcos de pgina, usada por el S.O. y contiene informacin sobre cada marco de pgina
19
presencia
modificacin proteccin
46
01
20
Tabla de Paginas
Pag3 Pag4
Memoria Fsica
Esquema de traduccin
Direccin virtual N. pagina
DESPLAZAMIENTO Presencia =1
no
FALTA DE PAGINA
si
RBTP
N. de marco presencia modificacin pro.
Acceso autorizado?
no
m 1
si
TABLA DE PAGINAS
Tabla de Ubicacin en Disco
Falta de pgina
1. Bloquear proceso 2. Encontrar la ubicacin en disco de la pgina solicitada (tabla de ubicacin en disco) 3. Encontrar un marco libre. Si no hubiera, se puede optar por desplazar una pgina de MP 4. Cargar la pgina desde disco al marco de MP 5. Actualizar tablas (bit presencia=1, n marco, ...) 6. Desbloquear proceso 7. Reiniciar la instruccin que origin la falta de pgina
23
La tabla de pginas se mantiene en memoria principal El registro base de la tabla de pginas (RBTP) apunta a la tabla de pginas (suele almacenarse en el PCB del proceso) En este este esquema: cada acceso a una instruccin o dato requiere dos accesos a memoria: uno a la tabla de pginas y otro a memoria un problema adicional viene determinado por el tamao de la tabla de pginas
24
) tamao del campo desplazamiento = 12 bits ) tamao nmero de pgina virtual = 20 bits ) N de pginas virtuales = 220 = 1,048,576!
!
Paginacin multinivel
!
Esta solucin opta por paginar las tablas de pginas La particin de la tabla de pginas permite al SO dejar particiones no usadas sin cargar hasta que el proceso las necesita. Aquellas porciones del espacio de direcciones que no se usan no necesitan tener tabla de pgina
26
Lo que hacemos es paginar la tabla de pginas. La direccin lgica se divide en: nmero de pgina (n bits): un nmero de pgina p1 (=k) desplazamiento de pgina p2 (=n-k) desplazamiento de pgina d (m bits) As una direccin lgica es de la forma:
p1
27
p2
28
Memoria Fsica
Pag3 Pag4 Pag1_TP Pag10 Pag7 Pag3_TP Pag1
Pginas compartidas
Memoria
! Una copia de cdigo de solo lectura (reentrante) compartido entre varios procesos. Ej. editores, compiladores, sistemas de ventanas
ed 1 ed 2 ed 3 data 1
Proceso P1
3 4 6 1
Tabla de pginas para P1
ed 1 ed 2 ed 3
ed 1 ed 2 ed 3 data 2
Proceso P2
3 4 6 7
Tabla de pginas para P2
data 3
Proceso P3
3 4 6 2
Tabla de pginas para P3
0 1 2 3 4 5 6 7 8 9
30
2.3 Segmentacin
!
Esquema de organizacin de memoria que soporta mejor la visin de memoria del usuario: un programa es una coleccin de unidades lgicas -segmentos-, p. ej. procedimientos, funciones, pila, tabla de smbolos, matrices, etc. S1 S2 S3 S3 S2 Memoria fsica
31
S1 S4
S4 Espacio de usuario
Tabla de Segmentos
!
Una direccin lgica es una tupla: <nmero_de_segmento, desplazamiento> La Tabla de Segmentos aplica direcciones bidimensionales definidas por el usuario en direcciones fsicas de una dimensin. Cada entrada de la tabla tiene los siguientes elementos (aparte de presencia, modificacin y proteccin): base - direccin fsica donde reside el inicio del segmento en memoria. tamao - longitud del segmento. 32
La tabla de segmentos se mantiene en memoria principal El Registro Base de la Tabla de Segmentos (RBTS) apunta a la tabla de segmentos (suele almacenarse en el PCB del proceso) El Registro Longitud de la Tabla de Segmentos (STLR) indica el nmero de segmentos del proceso; el n de segmento s, generado en una direccin lgica, es legal si s < STLR (suele almacenarse en el PCB del proceso)
33
Esquema de traduccin
Direccin virtual
N. Segmento
d
si
presencia modif.
d>t
no
Presencia =1
no
FALTA DE SEGMENTO
si
RBTS
D. base tamao
Acceso autorizado?
no
si
S t 1
TABLA DE SEGMENTOS
Tabla de Ubicacin en Disco
S + d Direccin real
Dir. TUD 34
La variabilidad del tamao de los segmentos y el requisito de memoria contigua dentro de un segmento complica la gestin de MP y MS Por otro lado, la paginacin simplifica eso pero complica ms los temas de comparticin y proteccin (stos van mejor en segmentacin) . Algunos sistemas combinan ambos enfoques, obteniendo la mayora de las ventajas de la segmentacin y eliminando los problemas de una gestin de memoria compleja 35
Esquema de traduccin
+ s p si d<t s t Tabla de Pginas del segmento s Tabla de Segmentos m presente? si m d direccin fsica
s : direccin base de la Tabla de Pginas del segmento s
36
d direccin virtual d
+ RBTS
3.1 Introduccin
! !
Gestin de Memoria Virtual con paginacin Criterios de clasificacin respecto a: Polticas de asignacin: Fija Variable Polticas de bsqueda: Paginacin por demanda Paginacin anticipada Polticas de sustitucin: Sustitucin local Sustitucin global
38
Introduccin (y II)
!
Independientemente de la poltica de sustitucin utilizada, existen ciertos criterios que siempre deben cumplirse: Pginas limpias frente a sucias
se pretende minimizar el coste de transferencia
Pginas compartidas
se pretende reducir el n de faltas de pgina
Pginas especiales
algunos marcos pueden estar bloqueados (ejemplo: buferes de E/S mientras se realiza una transferencia)
39
Asignacin fija
!
Asignacin por igual Se asignan el mismo nmero de marcos a todos los procesos Si hay m marcos, y n procesos. A cada proceso se se asignan m/n marcos
!
Asignacin proporcional por tamao Asigna segn tamao del proceso si=tamao de pi S = si m = nmero total de marcos la asignacin, ai, para pi es: ai = (si / S)*m
40
Las ventajas de la paginacin por demanda son: Se garantiza que en MP solo estn las pginas necesarias en cada momento La sobrecarga de decidir qu pginas llevar a MP es mnima Las ventajas de la paginacin anticipada son: Se puede optimizar el tiempo de respuesta para un proceso pero los algoritmos son ms complejos y se consumen ms recursos
41
42
!
43
Cuanto ms pequeas Aumento del tamao de las tablas de pginas Aumento del n de transferencia MP+Disco Reducen la fragmentacin interna Cuanto ms grandes Grandes cantidades de informacin que no sern usadas estn ocupando MP Aumenta la fragmentacin interna Bsqueda de un equilibrio
Podemos tener las siguientes combinaciones asignacin fija y sustitucin local asignacin variable y sustitucin local asignacin variable y sustitucin global Veremos distintos algoritmos de sustitucin y nos basaremos (por simplicidad) en que se utiliza una poltica de asignacin fija y sustitucin local Cadena de referencia, " = r1,r2,r3,...,ri, ..., : secuencia de nmeros de pginas referenciadas por un proceso durante su ejecucin
44
A) Algoritmo Optimo
!
Se sustituye la pgina que no ser objeto de ninguna referencia posterior o que se referencie ms tarde 1,2,3,4,1,2,5,1,2,3,4,5 111111111144 22222222222 3333333333 444555555 * * * * * *
45
4 marcos de pgina Problema: debemos tener un conocimiento perfecto de la cadena de referencia Se utiliza para medir cmo de bien se comportan otros algoritmos Faltas de pginas: 6
B) Algoritmo FIFO
!
Se sustituye la pgina por orden cronolgico de llegada a MP (la pgina ms antigua) 1,2,3,4,1,2,5,1,2,3,4,5 111111555544 22222211115 3333332222 444444333 * * * * * * ** **
46
4 marcos de pgina Faltas de pgina: 10 Sufre de la Anomala de Belady: ms marcos no implican menos faltas de pginas
C) Algoritmo LRU
!
Se sustituye la pgina que fue objeto de la referencia ms antigua (Least Recently Used) 4 marcos de pgina Faltas de pgina: 8 Implementacin del algoritmo: 1,2,3,4,1,2,5,1,2,3,4,5 111111111115 22222222222 3333555544 444444333 * * * * * * * *
47
Implementaciones de LRU
!
Cada pgina tiene asociado un bit de referencia R Inicialmente R= 0; en cada referencia el hardware lo pone a 1 Los marcos de pgina se representan por una lista circular y un puntero a la pgina visitada hace ms tiempo 3 Seleccin de una pgina: ref.=1 0
pgina 3 pgina 1 pgina 4
1. Consultar marco actual 2. Es R=1? Si: R=0; ir al siguiente marco y volver al paso 1 No: seleccionar para sustituir e incrementar posicin
ref.=0
pgina 2
ref.=1
2 ref.=1
49
Comparacin
n faltas de pg.
RELOJ LRU OPTIMO FIFO
n marcos asignados
Viene definido por la secuencia de referencias a pgina que realiza el proceso Importante para maximizar el rendimiento del sistema de memoria virtual (TLB, alg. sustitucin, ...)
Pginas referenciadas
Tiempo
51
Propiedad de localidad
!
Distintos tipos Temporal: Una posicin de memoria referenciada recientemente tiene una probabilidad alta de ser referenciada en un futuro prximo (ciclos, rutinas, variables globales, ...) Espacial: Si cierta posicin de memoria ha sido referenciada es altamente probable que las adyacentes tambin lo sean (array, ejecucin secuencial, ...)
52
Conjunto de Trabajo
!
Observaciones:
Mientras el conjunto de pginas necesarias puedan residir en MP, el n de faltas de pgina no crece mucho Si eliminamos de MP pginas de ese conjunto, la activacin de paginacin crece mucho
! Conjunto de trabajo (Working Set) de un proceso es el conjunto de pginas que son referenciadas frecuentemente en un determinado intervalo de tiempo
Propiedades
Los conjuntos de trabajo son transitorios No se puede predecir el tamao futuro de un conjunto de trabajo Difieren unos de otros sustancialmente
ws3 tiempo
54
Un proceso slo puede ejecutarse si su conjunto de trabajo est en memoria principal Una pgina no puede retirarse de memoria principal si est dentro del conjunto de trabajo del proceso en ejecucin
55
3.4 Hiperpaginacin
!
Productividad
Si un proceso no tiene suficientes pginas, la tasa de faltas es alta bajo uso de la CPU el SO incrementa el grado de multiprogramacin ms faltas de pginas Hiperpaginacin = el sistema operativo est ocupado en resolver faltas de pgina
Conducta esperada
Conducta real
Grado de multiprogramacin
56
Hiperpaginacin (y II)
!
57
En cada referencia, busca qu pgina (en memoria real) no es referenciada en el intervalo de tiempo: [t, t + V ] y sta es la desplazada. V: Tamao de la ventana para cada proceso Requiere un conocimiento a priori de la cadena de pginas referenciadas (irrealizable)
C,C,D,B,C,E,C,E,A,D
En la figura se representan las pginas del proceso que estn en MP Proceso de 5 pginas V =4 En t=0 slo la pgina D reside en MP
59
En t=-2 se referencia E En t=-1 se referencia D En t_0 se referencia A, y WS={A,D,E} Comenzamos a ejecutar el algoritmo en t=1
(t-V, t] WS= Valores de t: Secuencia de pgs que se referencian: A B C D E * = Hay FP E D C D E * C D C A C A C A D A -2 -1 0 1 ADE EDAC DAC 2
(-3,1]
(3,7] BCE 7
A A B C D D B C D B C D E * * E E E * B C C C
D A
C D E *
60
C) Algoritmo FFP
Se aade C Intervalo entre... Intervalo de tentre esta esta FP y la anterior: Valores de tiempo: Pginas que se referencian: A B C D E * = Hay FP E * * * D C D E * C D E C D E * A A D C -2 -1 0 1 1 C A 2 D A B C D B C D 3 B 3 4 C 5 > L? NO SI
Se aade E NO SI
Se aade D NO
2 6 E C 7 E 8 A A B C D E * B C D E B C D E E * C C D E * 9 D A 10
62
Se aade C Intervalo entre... Intervalo de tentre esta esta FP y la anterior: Valores de tiempo: Pginas que se referencian: A B C D E * = Hay FP * * * * * * * * E E E E E E E E E D D D D D D D D D D C C C C C C C C C C B B B B B A A A A A A D C C D B C E C E A D -2 -1 0 1 2 3 4 5 6 7 8 9 10 1 3 2 > L? NO SI NO SI NO
Se aade E
Se aade D
63