Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de...
Transcript of Sistemas operativos: una visión aplicada– Montaje: enlaza los módulos objeto del programa y de...
Sistemas operativos: una visión aplicada
Capítulo 4 Gestión de memoria
Sistemas operativos: una visión aplicada 1 © J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
• Objetivos del sistema de gestión de memoria• Modelo de memoria de un proceso• Esquemas de memoria basados en asignación contigua• Memoria virtual• Archivos proyectados en memoria• Servicios de gestión de memoria
Sistemas operativos: una visión aplicada 2 © J. Carretero, F. García, P. de Miguel, F. Pérez
Espacios lógicos independientes
LOAD R1, #1000LOAD R2, #2000LOAD R3, /1500LOAD R4, [R1]STORE R4, [R2]INC R1INC R2DEC R3JNZ /12.................
Cabecera
Fichero Ejecutable04....96100104108112116120124128132136
–Vector destino a partir de dirección 2000
–Tamaño del vector en dirección 1500
–Vector origen a partir de dirección 1000
Sistemas operativos: una visión aplicada 3 © J. Carretero, F. García, P. de Miguel, F. Pérez
Ejecución en S.O. monoprogramado
LOAD R1, #1000LOAD R2, #2000LOAD R3, /1500LOAD R4, [R1]STORE R4, [R2]INC R1INC R2DEC R3JNZ /12.................
Memoria
04812162024283236....
Sistema Operativo
Sistemas operativos: una visión aplicada 4 © J. Carretero, F. García, P. de Miguel, F. Pérez
Reubicación hardware
LOAD R1, #1000LOAD R2, #2000LOAD R3, /1500LOAD R4, [R1]STORE R4, [R2]INC R1INC R2DEC R3JNZ /12.................
Memoria
10000100041000810012100161002010024100281003210036..........
Procesador
R. Instrucción
HW traducción
LOAD R3, /1500
1150010000
+1500
PC8
Sistemas operativos: una visión aplicada 5 © J. Carretero, F. García, P. de Miguel, F. Pérez
Reubicación software
LOAD R1, #11000LOAD R2, #12000LOAD R3, /11500LOAD R4, [R1]STORE R4, [R2]INC R1INC R2DEC R3JNZ /10012.................
Memoria
10000100041000810012100161002010024100281003210036..........
Sistemas operativos: una visión aplicada 6 © J. Carretero, F. García, P. de Miguel, F. Pérez
Compartición de memoria
zona compartida
zona compartida
zona privada 1
zona privada 2
zona privada 1
zona privada 2
Mapa proceso 1
Mapa proceso 2
zona compartida
Memoria
zona priv. 1 (P2)
zona priv. 1 (P1)
zona priv. 2 (P1)
zona priv. 2 (P2)
Sistemas operativos: una visión aplicada 7 © J. Carretero, F. García, P. de Miguel, F. Pérez
Problemas al compartir memoria
zona compartida
zona compartida
Mapa proceso 1
Mapa proceso 2
zona compartida
Memoria
1000
2000
¿1100 ó 2100?10000
10100
Sistemas operativos: una visión aplicada 8 © J. Carretero, F. García, P. de Miguel, F. Pérez
Maximizar rendimiento
Dirección 50 del proceso 4
Dirección 10 del proceso 6
Dirección 95 del proceso 7
Dirección 56 del proceso 8
Dirección 0 del proceso 12
Dirección 5 del proceso 20
Dirección 0 del proceso 1
Dirección 51 del proceso 4
Dirección 88 del proceso 9
.........................................
.........................................
Memoria
0
1
2
3
4
5
6
N-1
N
Aprovechamiento de memoria óptimo e irrealizable
Sistemas operativos: una visión aplicada 9 © J. Carretero, F. García, P. de Miguel, F. Pérez
Fases en generación de ejecutable
• Aplicación: conjunto de módulos en lenguaje de alto nivel• Procesado en dos fases: Compilación y Montaje• Compilación:
– Resuelve referencias dentro cada módulo fuente– Genera módulo objeto
• Montaje (o enlace): – Resuelve referencias
entre módulos objeto– Resuelve referencias a
símbolos de bibliotecas– Genera ejecutable
incluyendo bibliotecas
Módulofuente A
Módulofuente B
Compilador
Móduloobjeto A
Móduloobjeto B
Montador
Ficheroejecutable
Bibliotecas
Sistemas operativos: una visión aplicada 10 © J. Carretero, F. García, P. de Miguel, F. Pérez
Bibliotecas de objetos• Biblioteca: colección de módulos objeto relacionados• Bibliotecas del sistema o creadas por el usuario• Bibliotecas Estáticas:
– Montaje: enlaza los módulos objeto del programa y de las bibliotecas– Ejecutable autocontenido
• Desventajas del montaje estático:– Ejecutables grandes– Código de función de biblioteca repetido en muchos ejecutables– Múltiples copias en memoria del código de función de biblioteca– Actualización de biblioteca implica volver a montar
Main
CódigoFunción A
Función B
Función de biblioteca F1
Función de biblioteca F2
Sistemas operativos: una visión aplicada 11 © J. Carretero, F. García, P. de Miguel, F. Pérez
Formato del ejecutable
Cabecera
Fichero EjecutableNúmero mágico
Contador de programa inicial
Tabla de secciones
Código
Datos con valor inicial
Tabla de símbolos
....................
CódigoDatos con v.i.Datos sin v.i....................... ........ ........
T. Símbolos
10005000------
8000
40001000500
1000
Despl. Tam.
. . . . . . . . . . . . . . . .
0
1000
5000
8000
Secciones
Sistemas operativos: una visión aplicada 12 © J. Carretero, F. García, P. de Miguel, F. Pérez
Crear mapa desde ejecutable
Sistemas operativos: una visión aplicada 13 © J. Carretero, F. García, P. de Miguel, F. Pérez
Mapa de memoria de un proceso hipotético
Sistemas operativos: una visión aplicada 14 © J. Carretero, F. García, P. de Miguel, F. Pérez
Asignación contigua
• Mapa de proceso en zona contigua de memoria principal• Hardware requerido: Regs. valla (R. base y R. límite)
– Sólo accesibles en modo privilegiado.
Sistemas operativos: una visión aplicada 15 © J. Carretero, F. García, P. de Miguel, F. Pérez
Esquema de traducción
Página
Registro basede la TP
Byte
Dirección lógica
Marco depágina
...
Sistemas operativos: una visión aplicada 16 © J. Carretero, F. García, P. de Miguel, F. Pérez
Fragmentación interna en paginación
• mem. asignada > mem. requerida– puede desperdiciarse parte de un marco asignado
T. Páginas Pr. 1
Página 0
Página 1
Página M
Marco 2
Marco 3
Marco N
..............
T. Páginas Pr. 2
Página 0
Página 1
Página P
Marco 4
Marco 1
Marco 0
..............
Marco 0
Memoria
Marco 1
Marco 2
Marco 3
Marco 4
Marco N
Pág. 1 Pr. 2
............
Pág. 0 Pr. 1
Pág. 1 Pr. 1
Pág. M Pr. 1
Pág. 0 Pr. 2
Pág. P Pr. 2
Sistemas operativos: una visión aplicada 17 © J. Carretero, F. García, P. de Miguel, F. Pérez
Esquema de traducción con 2 niveles
R egistro basede la TP
Tabla de páginasde pri mer nivel
Tab la de página sde s egundo niv el
Byte1 niveler 2º nive lDirec ción lógic a
...
...
...
M arco depáginaRegistro basede la TP
Página
Tabla de páginasde primer nivel
Tabla de páginasde segundo nivel
Byte1 niveler 2º nivelDirección lógica
...
...
...
Marco depágina
Sistemas operativos: una visión aplicada 18 © J. Carretero, F. García, P. de Miguel, F. Pérez
Ventaja de tablas multinivelmemoria
primer nivelTabla de páginas
. . .
tablas de páginassegundo nivel
. . .
. . .
. . .
primer nivelTabla de páginas
V
V
V
V
I
I
Página 0
Página 1023
Página 1024
Página 2047
Página 2048
Página 3071
Página 1048575 (2^20-1)
Pág. 1047552 (2^20-1024)
Sistemas operativos: una visión aplicada 19 © J. Carretero, F. García, P. de Miguel, F. Pérez
Esquema de traducción con TP invertida
PáginaPID
Página
Byte
i
Dirección lógica
Bytei
Dirección física
Tabla de páginas invertida
pid
Sistemas operativos: una visión aplicada 20 © J. Carretero, F. García, P. de Miguel, F. Pérez
Esquema de traducción con segmentación
memoria
tabla de segmentos
límite base
s d
dirección lógica
Excepción
> +SI
NO
Sistemas operativos: una visión aplicada 21 © J. Carretero, F. García, P. de Miguel, F. Pérez
Esquema de traducción con seg. paginada
memoria
tabla de segmentos
límite dir. T. Pág.
dirección lógica
Excepción
>SI
NO
s p d
m d
direcciónfísica
m
tabla de páginaspara segmento s
p
Sistemas operativos: una visión aplicada 22 © J. Carretero, F. García, P. de Miguel, F. Pérez
Hiperpaginación en el sistema
grado de multiprogramación
Util
izac
ión
de la
UC
P
Sistemas operativos: una visión aplicada 23 © J. Carretero, F. García, P. de Miguel, F. Pérez
Estrategia basada en frecuencia de fallos
– Si tasa < límite inferior se liberan marcos aplicando un algoritmo de reemplazo
– Si tasa > límite superior se asignan nuevos marcos• Si no marcos libres se suspende algún proceso
número de marcos
tasa
de
fallo
s de
pág
ina
límite superior
límite inferior
Sistemas operativos: una visión aplicada 24 © J. Carretero, F. García, P. de Miguel, F. Pérez
Creación del mapa inicial
Tabla de páginas
...........................
Bloque T (arch.)RX A
Bloque U (arch.)RW A
Rellenar con 0RW A
Bloque S (swap)RW A
...........................
...........................
SwapArchivo Ejecutable
Código
Datos con valor inicial
. . . . . . . . . . . . . . . .
Cabecera
PilaBloque S
Bloque T
Bloque U
1ªpág.Código
1ªpág.Dat.v.i.
1ªpág.Dat.no.v.i.
1ªpág.Pila
Sistemas operativos: una visión aplicada 25 © J. Carretero, F. García, P. de Miguel, F. Pérez
Archivo proyectado
Tabla de páginas
...........................Bloque 0 (arch.)RW A
Bloque N (arch.)RW A...........................
........................... Archivo
Bloque 0
Bloque 1
Bloque 2
Bloque N
Bloque 2
.............
10240
Mapa de memoria
Código
Datos con valor inicial
Datos sin valor inicial
Pila
Archivo Proyectado
1ªpág.Archivo
Última pág.Archivo