Você está na página 1de 58

Sistemas Operativos

Tema 11: Segmentacin y


Paginacin de la Memoria
(Tema 14 en apuntes prof. Rovayo)

1
Tema 11: Segmentacin y paginacin de la memoria

ndice:
1. Segmentacin

2. Administracin de memoria segmentada

3. Paginacin

4. Administracin de memoria paginada

5. Sistemas combinados

2
Tema 11: Segmentacin y paginacin de la memoria

ndice:
1. Segmentacin

2. Administracin de memoria segmentada

3. Paginacin

4. Administracin de memoria paginada

5. Sistemas combinados

3
Tema 11: Segmentacin y paginacin de la memoria

1. Segmentacin
Espacio lgico de direcciones es bidimensional
Direcciones lgicas constan de:
Indicador de segmento
Desplazamiento
Segmento = trozo de memoria consecutiva
Idea: dividir programa en trozos de memoria
independientes: Espacio Fsico
Cdigo Direccin Lgica de Direcciones
Pila ind. seg. desplazamiento 000
Datos
.

4
FFF
Tema 11: Segmentacin y paginacin de la memoria

1. Segmentacin

1. Traduccin de direcciones segmentadas

2. Proteccin

3. Superposicin de segmentos

4. Formas de usar los descriptores

5
Tema 11: Segmentacin y paginacin de la memoria

1. Segmentacin

1. Traduccin de direcciones segmentadas

2. Proteccin

3. Superposicin de segmentos

4. Formas de usar los descriptores

6
Tema 11: Segmentacin y paginacin de la memoria

1.1 Traduccin de direcciones segmentadas


Direccin Lgica Espacio Fsico
ind. seg. desplazamiento
de Direcciones
000
NO SI
ERROR d<t + Segmento 1

base tamao
0 0A00 1000 Segmento 2
1 6F10 4000
2 B100 2000 Segmento 3

FFF
Tabla de descriptores de Segmentos 7
Tema 11: Segmentacin y paginacin de la memoria

1. Segmentacin

1. Traduccin de direcciones segmentadas

2. Proteccin

3. Superposicin de segmentos

4. Formas de usar los descriptores

8
Tema 11: Segmentacin y paginacin de la memoria

1.2 Proteccin
Direccin Lgica ERROR
Espacio Fsico
ind. seg. desplazamiento
de Direcciones
NO 000
NO SI SI
ERROR d<t vlido?
Segmento 1

base tamao r w x
0 0A00 1000 1 0 0 Segmento 2
1 6F10 4000 1 1 0
2 B190 2000 0 0 1 Segmento 3

FFF
Tabla de descriptores de Segmentos 9
Tema 11: Segmentacin y paginacin de la memoria

1. Segmentacin

1. Traduccin de direcciones segmentadas

2. Proteccin

3. Superposicin de segmentos

4. Formas de usar los descriptores

10
Tema 11: Segmentacin y paginacin de la memoria

1.3 Superposicion de segmentos


Varios segmentos pueden estar parcial o totalmente
solapados en memoria
Una direccin fsica se puede corresponder con
mltiples direcciones lgicas 000

1000
2000

base tamao r w x
4000
0 1000 4000 1 0 0
1 2000 4000 1 1 0
A000
2 4000 5000 1 1
0 0
3 4000
A000 5000 1 1
0 0
FFF
11
Tema 11: Segmentacin y paginacin de la memoria

1. Segmentacin

1. Traduccin de direcciones segmentadas

2. Proteccin

3. Superposicin de segmentos

4. Formas de usar los descriptores

12
Tema 11: Segmentacin y paginacin de la memoria

1.4 Formas de usar los descriptores


Cuntos segmentos pueden haber en el sistema?
Cada proceso debe poder crear un nmero suficiente de
segmentos
Intel Pentium: 16.383 segmentos
Tabla de segmentos demasiado grande para MMU!
Tabla en memoria y MMU contiene su direccin
000

base tamao r w x
BASE
LIMITE

BASE LOCAL
LIMITE LOCAL

13
Tema 11: Segmentacin y paginacin de la memoria

1.4 Formas de usar los descriptores


PROBLEMA: Tiempo de acceso se multiplica por dos
Primer acceso: tabla de descriptores
Segundo acceso: direccin efectiva

Soluciones (no excluyentes):


Uso de registros descriptores de segmento en MMU
Uso de memoria asociativa

14
Tema 11: Segmentacin y paginacin de la memoria

1.4 Formas de usar los descriptores


Registros descriptores
En MMU: varios registros capaces de contener un
descriptor
Se puede copiar en ellos los descriptores que se
vayan a usar en el futuro inmediato
Dos tipos de registros:
de propsito general
especializados

15
Tema 11: Segmentacin y paginacin de la memoria

1.4 Formas de usar los descriptores


Registros descriptores de propsito general
MMU contiene un conjunto de registros sobre los que
cargar prximos descriptores a usar, y
Dos tipos de direcciones:
Las que hacen referencia a un descriptor de tabla en memoria
necesitan ms bits para hacer referencia al descriptor
Las que hacen referencia a un descriptor en MMU
necesitan menos bits para referir al descriptor

0 BASE TAM PERM


1 BASE TAM PERM
2 BASE TAM PERM
3 BASE TAM PERM
4 BASE TAM PERM



16
Tema 11: Segmentacin y paginacin de la memoria

1.4 Formas de usar los descriptores


Registros descriptores especializados
MMU contiene registros capaces de albergar un
descriptor, y
Dos tipos de direcciones:
Las que hacen referencia a un descriptor de tabla en memoria
Las que NO hacen referencia a ningn descriptor
Emplean un descriptor de MMU, segn el tipo de instruccin

DS BASE TAM PERM


SS BASE TAM PERM

CS BASE TAM PERM

17
Tema 11: Segmentacin y paginacin de la memoria

1.4 Formas de usar los descriptores


Descriptores en memoria asociativa
MMU contiene una memoria asociativa indexada por n
de descriptor
Para cada acceso:
Se busca en memoria asociativa el n de descriptor
Si est: se emplea el descriptor guardado en mem. asociativa
Si no est: se carga (es necesario acceso a tabla en memoria)
Si se llena memoria asociativa: reemplazo

2 desplazamiento
5 0A00 1000 1 0 0
2 6F10 4000 1 1 0
14 B190 2000 0 0 1

18
Tema 11: Segmentacin y paginacin de la memoria

1.4 Formas de usar los descriptores


Descriptores en memoria asociativa
Memoria asociativa es transparente
Se puede usar en conjuncin con registros en MMU!

19
Tema 11: Segmentacin y paginacin de la memoria

ndice:
1. Segmentacin

2. Administracin de memoria segmentada

3. Paginacin

4. Administracin de memoria paginada

5. Sistemas combinados

20
Tema 11: Segmentacin y paginacin de la memoria

2. Administracin de memoria segmentada


Gestin: particiones variables
Mapas de bits
Listas de control

Segmentacin proporciona posibilidades adicionales:


Crecimiento de los procesos
Comparticin de segmentos
Carga de segmentos a peticin
Enlace dinmico

21
Tema 11: Segmentacin y paginacin de la memoria

2. Administracin memoria segmentada


Crecimiento de los procesos
Dos formas de crecimiento:
Asignando nuevos segmentos al proceso
Creciendo algn segmento asignado 000

1000

0 1800 2000

3000

base tamao r w x Crecible 4800

0 1000
3000 1800
1000 1 1 0 True

1 2000 1000 0 0 1 False

22
Tema 11: Segmentacin y paginacin de la memoria

2. Administracin memoria segmentada


Comparticin de segmentos
Objetivos:
Optimizacin uso de memoria
Comparticin de informacin
Ejemplo 1: si varios usuarios ejecutan un mismo
programa
Pueden compartir cdigo y constantes del programa: slo se
cargan una vez!
Si cdigo usa libreras comunes: pueden compartirse
segmentos de libreras con otros programas
Ejemplo 2: procesos que comparten datos
Datos en segmento compartido
Gestin: tabla de segmentos compartidos
23
Tema 11: Segmentacin y paginacin de la memoria

2. Administracin memoria segmentada


Carga de segmentos a peticin
Algunas MMU disponen de bit presente en descriptor:
Segmentos no presentes estn definidos, pero no estn en
memoria
Acceso a segmento no presente=fallo de segmento
Ante un fallo de segmento, SO es responsable de cargar
segmento

0 400 000

base tamao r w x P 2000

0 -
3000 800 1 1 0 10 3000

1 2000 1000 0 0 1 1

24
Tema 11: Segmentacin y paginacin de la memoria

2. Administracin memoria segmentada


Carga de segmentos a peticin
Aplicacin: cargar segmentos cuando son referidos por
primera vez
En archivo ejecutable hay informacin sobre segmentos
definidos por proceso:
Identificacin y localizacin en archivo
Tipo
Punto de entrada
Tamao
Proteccin
Al cargar ejecutable, cargador slo define segmentos
Al intentar ejecutar primera instruccin: primer fallo de
segmento
SO carga segmentos conforme van siendo referidos
25
Tema 11: Segmentacin y paginacin de la memoria

2. Administracin memoria segmentada


Carga de segmentos a peticin
Si memoria se llena: reemplazo
Podemos ejecutar procesos que usen ms memoria de la que
fsicamente disponemos (Memoria Virtual)

000
S1
S2

S3
S4

S5

S6
S7
FFF 26
Tema 11: Segmentacin y paginacin de la memoria

2. Administracin memoria segmentada


Enlace dinmico
Enlace= construccin de ejecutable a partir de ficheros
compilados (ficheros objeto)
Objetivo: reducir trabajo de montador de enlaces
Tipos de enlace dinmico:
Durante la carga
En tiempo de ejecucin
Enlace durante la carga:
En archivo ejecutable hay nombres simblicos para
segmentos y objetos:
CALL [librera:rutina]
Cargador sustituye nombres por descriptores y direcciones
reales
27
Tema 11: Segmentacin y paginacin de la memoria

2. Administracin memoria segmentada


Enlace dinmico
Enlace dinmico durante la ejecucin
(Ejemplo: MULTICS)
000


call [100]

100 1 16:70
0 300

300 seg:func

seg= 16
70 func:

28
Tema 11: Segmentacin y paginacin de la memoria

ndice:
1. Segmentacin

2. Administracin de memoria segmentada

3. Paginacin

4. Administracin de memoria paginada

5. Sistemas combinados

29
Tema 11: Segmentacin y paginacin de la memoria

3. Paginacin
Espacio lgico de direcciones lineal
Dividido de forma transparente en trozos de igual
tamao (pginas)
Traductor divide las direcciones lgicas en
n de pgina
Espacio Lgico Espacio Fsico
desplazamiento
de Direcciones de Direcciones
000 000
Direccin Lgica
Pgina desplazamiento
n k+1 k 0 } 2k


Traductor Dinmico
de Pginas
n k+1 k 0
Marco desplazamiento FFF
FFF
Direccin Fsica 30
Tema 11: Segmentacin y paginacin de la memoria

3. Paginacin

1. Traduccin de direcciones paginadas

2. Organizacin de la tabla de pginas

31
Tema 11: Segmentacin y paginacin de la memoria

3. Paginacin

1. Traduccin de direcciones paginadas

2. Organizacin de la tabla de pginas

32
Tema 11: Segmentacin y paginacin de la memoria

3.1 Traduccin de direcciones paginadas


La traduccin se lleva a cabo mediante una tabla de
pginas
Tabla de pginas se indexa por n pgina y
proporciona n de marco
Direccin Lgica
2 desplazamiento

Marco P
0 8 1
1 1204 1
2 12 1
3 - 0 12 desplazamiento
Direccin Fsica
33
Tema 11: Segmentacin y paginacin de la memoria

3. Paginacin

1. Traduccin de direcciones paginadas

2. Organizacin de la tabla de pginas

34
Tema 11: Segmentacin y paginacin de la memoria

3.2 Organizacin de la tabla de pginas


Tamao de la tabla de pginas: determinado por
tamao del espacio de direcciones
tamao de la pgina
Si espacio de direcciones = 4Gb y tamao de pgina
= 4K: 1M entradas!
Posibilidades:
Tabla de pginas en el traductor
Tabla de pginas en memoria
Tabla de pginas multinivel
Tablas de pginas para todo el sistema
Traductores sin tabla de pginas

35
Tema 11: Segmentacin y paginacin de la memoria

3.2 Organizacin de la tabla de pginas


Tabla de pginas en el traductor
Slo es viable si hay pocas pginas
En MMU: conjunto de registros indexados por n de
pgina
Inconvenientes:
SO debe sustituir tabla de pginas cada vez que
Se conmuta de procesos
Se transfiere control al SO

36
Tema 11: Segmentacin y paginacin de la memoria

3.2 Organizacin de la tabla de pginas


Tabla de pginas en memoria
La tabla se saca del traductor y almacena en
memoria
Traductor slo contiene
Direccin de primera entrada
Tamao de la tabla
Inconvenientes:
Cada acceso a memoria: implica dos accesos
Uno a tabla de pginas
Otro a la direccin efectiva

Solucin: memoria asociativa

37
Tema 11: Segmentacin y paginacin de la memoria

3.2 Organizacin de la tabla de pginas


Tabla de pginas multinivel
Idea: paginar la tabla de pginas
Facilita manipulacin y almacenamiento de la tabla
Ejemplo a dos niveles:
Direccin Lgica
DP
pagina
NP desplazamiento

Marco P
Direccin 0 8 1
0 0AFF00 1 1204 1
1 100700 2 12 1 marco desplazamiento
2 108800 3 - 0
Direccin Fsica
3 FFA100
Tabla de pginas
38
Directorio
Tema 11: Segmentacin y paginacin de la memoria

3.2 Organizacin de la tabla de pginas


Tabla de pginas multinivel
Ventajas:
Tabla de pgina no tiene por qu ser ocupar direcciones
consecutivas
Tabla de pgina no tiene por qu estar cargada completa en
memoria

Inconvenientes:
Tiempo de acceso se multiplica por tres

Solucin: memoria asociativa

39
Tema 11: Segmentacin y paginacin de la memoria

3.2 Organizacin de la tabla de pginas


Tabla de pginas para todo el sistema
Son tambin multinivel
MMU tiene direccin de una tabla que tiene una
entrada por proceso y contiene direccin de tabla de
pginas/directorio de dicho proceso:
PID pagina desplazamiento

Marco P
Direccin 0 8 1
dir t.procs. 0 0AFF00 1 1204 1
1 100700 2 12 1 marco desplazamiento
2 108800 3 - 0
Direccin Fsica
3 FFA100
Tabla de pginas
Tabla de procesos 40
Tema 11: Segmentacin y paginacin de la memoria

3.2 Organizacin de la tabla de pginas


Tabla de pginas para todo el sistema
Conmutar de tabla de proceso: cambiar PID
Inconvenientes:
Tiempo de acceso se multiplica por tres
Solucin:
Memoria asociativa, indexada por PID + N de pgina

PID:4 2 desplazamiento

4 5 0A00
4 2 6F10
5 2 B190

41
Tema 11: Segmentacin y paginacin de la memoria

3.2 Organizacin de la tabla de pginas


Traductores sin tabla de pginas
Hardware no impone estructura de tabla de pginas
Hardware slo dispone de memoria asociativa
Si no se encuentra pgina en memoria asociativa:
excepcin
SO es responsable de:
determinar asociacin entre n de pgina y n de marco
Actualizar la memoria asociativa
Ventajas:
Flexibilidad: hardware no impone la organizacin de la TP
Traductor se simplifica notablemente
Parte del ahorro en hardware del traductor se puede invertir
en aumentar el tamao de la memoria asociativa
42
Tema 11: Segmentacin y paginacin de la memoria

ndice:
1. Segmentacin

2. Administracin de memoria segmentada

3. Paginacin

4. Administracin de memoria paginada

5. Sistemas combinados

43
Tema 11: Segmentacin y paginacin de la memoria

4. Administracin de memoria paginada


Gestin: particiones variables, con importantes
simplificaciones:
Todos los marcos son iguales no hay que elegir
No importa que marcos libres no estn consecutivos

De especial inters:
Elementos de administracin
Entrada/Salida y paginacin
Carga de pginas a peticin

44
Tema 11: Segmentacin y paginacin de la memoria

4. Administracin de la memoria paginada


Elementos de administracin
Tabla de asignacin de marcos a procesos
Una entrada por marco
En cada entrada:
PID de proceso, si marco asignado
0, si marco libre
Ayuda: conservar la posicin de la primera/prxima entrada
libre
Proceso
0 PID1
Siguiente libre 1 PID1
2 PID2
3 Libre
4 PID1

45
Tema 11: Segmentacin y paginacin de la memoria

4. Administracin de la memoria paginada


Elementos de administracin
Listas de marcos asignados a procesos
N de marcos es fijo: listas implementadas mediante tabla
En cada entrada (una por marco):
Siguiente marco en la lista
-1, si marco es el ltimo
En PCB: ndices del primer y ltimo marco asignados a
proceso
0 2

1 0
PCB proceso 1
primero 2 3
Proceso 1: marcos 0, 2, 3, y 6 3 6
ltimo
Libres: dems marcos 4 PID1

primero 5 7

Libres 6 -1


46
Tema 11: Segmentacin y paginacin de la memoria

4. Administracin de la memoria paginada


Entrada/Salida y paginacin
Problema: buffers de lectura o escritura
Ocupan direcciones lgicas consecutivas
Pero las direcciones fsicas son distintas, incluso no
consecutivas Vamos a
hacer una
000 000
escriturita en
disco de estos
datos que
tengo yo
aqu

FFF 47
FFF
Tema 11: Segmentacin y paginacin de la memoria

4. Administracin de la memoria paginada


Entrada/Salida y paginacin
Soluciones:
Dado que entrada/salida es responsabilidad de SO,
ste traduce y usa direcciones fsicas
Y si el buffer ni siquiera ha quedado contiguo?
SO programa varias operaciones, una por cada trozo
de buffer en espacio fsico
Puede ser problemtico para dispositivos de bloque
Usar buffer contiguo en espacio de SO
Que el DMA vea direcciones lgicas
Ser el caso si DMA y MMU integrados en CPU

48
Tema 11: Segmentacin y paginacin de la memoria

4. Administracin de la memoria paginada


Carga de pginas a peticin
Mediante bit de pgina presente: las pginas se
pueden cargar cuando son referidas por primera vez
Para cargar una pgina, slo hay que asignarle un
marco libre
Si no quedan marcos libres: memoria virtual
Elegir un marco que contenga una pgina que supongamos
no vaya a hacer falta en futuro inmediato
Sustituir dicha pgina por la recin referida
Memoria virtual segmentada o paginada?
Comparemos por
Tamao de las transferencias
Complejidad de administracin
Operaciones de entrada/salida 49
Tema 11: Segmentacin y paginacin de la memoria

4. Administracin de la memoria paginada


Carga de pginas a peticin
MV segmentada vs paginada: tamao de transferencias
Paginacin:
Todas las transferencias de pgina del mismo tamao
(tpicamente en torno a 4K)
Segmentacin:
Distinto tamao cada segmento
Posibilidad de segmentos muy grandes

50
Tema 11: Segmentacin y paginacin de la memoria

4. Administracin de la memoria paginada


Carga de pginas a peticin
MV segmentada vs paginada: complejidad administracin
Paginacin:
Todos los marcos son iguales cualquiera vale para cualquier
pgina
Segmentacin:
Hay que cargar el segmento en un hueco de tamao suficiente
Fragmentacin del espacio libre

51
Tema 11: Segmentacin y paginacin de la memoria

4. Administracin de la memoria paginada


Carga de pginas a peticin
MV segmentada vs paginada: operaciones entrada/salida
Problema: si hay memoria virtual, es posible que el
segmento/pgina destino/fuente de una operacin no
est presente
Posible solucin:
Bloquear en memoria las pginas/segmentos que contienen
los buffers de E/S

Paginacin:
Las pginas bloqueadas son del orden de varios Kilobytes
Segmentacin:
Y si buffer est en un segmento de datos muy grande?
52
Tema 11: Segmentacin y paginacin de la memoria

ndice:
1. Segmentacin

2. Administracin de memoria segmentada

3. Paginacin

4. Administracin de memoria paginada

5. Sistemas combinados

53
Tema 11: Segmentacin y paginacin de la memoria

5. Sistemas combinados
Segmentacin: es til para los procesos
Organizacin de datos, cdigo
Mecanismos de proteccin
Comparticin de datos y cdigo
Optimizacin del espacio ocupado

Paginacin: es til para el sistema operativo


Memoria virtual
Dispersin en memoria

Segmentacin o paginacin?
Ambos! Sistemas combinados:
Segmentacin paginada
Segmentacin y paginacin independientes 54
Tema 11: Segmentacin y paginacin de la memoria

5. Sistemas combinados
Segmentacin paginada
Cada segmento dividido en pginas
En descriptor, en lugar de direccin base de segmento:
direccin de tabla de pginas del segmento.
Direccin Lgica
indicador pgina desplazamiento

Marco P

8 1
1204 1
tabla tamao r w x
12 1
7FFF 800 1 1 0 marco desplazamiento
- 0
2000 1000 0 0 1 Direccin Fsica


Tabla de pginas
Tabla de segmentos 55
Tema 11: Segmentacin y paginacin de la memoria

5. Sistemas combinados
Segmentacin paginada
Inconvenientes:
Cada segmento debe empezar y acabar en frontera de pgina
Tamao del segmento: mltiplo del tamao de pgina

Segmentacin y paginacin independientes


La paginacin es transparente
y si pusiramos un sistema paginado bajo un sistema
segmentado?

56
Tema 11: Segmentacin y paginacin de la memoria

5. Sistemas combinados
Segmentacin y paginacin independientes
Ejemplo: arquitectura IA32
Direccin Lgica Segmentada
directorio pagina desplazamiento
selector desplazamiento 31 20 12 0
31 0

Tabla de descriptores de segmentos Directorio de pginas

Tabla de pginas
+
direccin intermedia
31 0
marco desplazamiento
NO SI
PG? 31 12 0

direccin fsica 57
31 0
58

Você também pode gostar