Gestión de la Memoria - Staff — Department of Computer...

Preview:

Citation preview

Marisa Gil

Introducció als Sistemes Operatius 1

Gestión de la Memoria

1. Introducción2. Modelos de gestión del espacio físico3. Memoria Virtual4. Otros modelos

BibliografíaSilberschat and Galvin

Sistemas Operativos. Conceptos fundamentales.Parte III: Administración de almacenamiento

Introducción a los Sistemas Operativos

Marisa Gil

Introducció als Sistemes Operatius 2

Ideas a recapitular

• Todo lo que se ejecuta ha de estar en memoria principal• Multiprogramación => varios procesos en memoria física• Todos los procesos comparten el mismo espacio físico =>

• el SO ha de garantizar protección

• después de la CPU, la memoria es el recurso más importante para gestionar

.C .EXE0

Mespacio de nombres espacio lógico del programa

espacio físico

GESTION DE LA MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 3

Montaje de un fichero ejecutable

editor compilador montador

códigofuente(LAN)

códigoobjeto

códigoejecu-table

compilar

montar

DISCO

librerías con otrosmódulos objeto cargador

cargar enmemoriafísica

MEMORIA

GESTION DE LA MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 4

Multiprogramación

• Cuánta memoria asignar a cada proceso• Equiparticiones

• Cantidad fija

• Cantidad variable

• Dónde ubicar a cada proceso• Momento de vincular la dirección lógica a la física

• Vínculo estático/variable en ejecución

• Grado de multiprogramación• Número máximo de procesos que se pueden cargar en memoria

GESTION DE LA MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 5

MMU

Alguien se ha de encargar de:• direcciones lógicas iguales convivan en el espacio físico sin problemas,

• exista protección entre procesos y para el SO,

• la gestión del espacio físico (libre y ocupado) sea eficiente

GESTION DE LA MEMORIA

CPUMMU

@ lógica @ física

Marisa Gil

Introducció als Sistemes Operatius 6

Registro de reubicación

• También se conoce como Registro Base:• Contiene la dirección a partir de la cual está cargado el programa

• El Sistema Operativo tiene su propio Registro de Reubicación (RR)• Además, el SO pude saltarse si quiere el RR y generar direcciones físicas

• utilizar el RR del programa de usuario

• generar directamente direcciones físicas

GESTION DE LA MEMORIA

CPU

MMU@ lógica @ física

@física(bypass del

circuíto)

Marisa Gil

Introducció als Sistemes Operatius 7

Registro de reubicación

• Fijo : lo inicializamos al principio y ya no se modifica en todala ejecución del programa.REUBICACIÓN ESTÁTICA.

• Variable: puede modificarse su valor durante la ejecución deun programa: un programa puede moverse en memoriadurante su ejecución.REUBICACIÓN DINÁMICA.

GESTION DE LA MEMORIA

SO

0

P

RRS

RRU

RRS RRUmodo

PSW

bypass

CPU +@lógica @física

(inhibir el multiplexor)

0 00 11 01 1

RRU

RRS

Carga en memoria

Marisa Gil

Introducció als Sistemes Operatius 8

Protección

• Controlar por hardware que no se supere la zona de memoria asignada

GESTION DE LA MEMORIA

RRU

RRSRRU

modo

CPU +@lógica @física

TAMAÑO

+

< sí

no

error

TAMAÑO

Marisa Gil

Introducció als Sistemes Operatius 9

Gestión del espacio (I)

• Buscar espacio libre para un programa en memoria física.• Fragmentación: hay memoria suficiente, pero no un trozo de tamaño adecuado.• Compactación: reorganizar la memoria libre agrupando todo el espacio libre.

• Sólo es posible si hayreubicación dinámica.

• Costoso en tiempo: ver qué procesos son los más adecuados, dónde hacer elhueco, parar los procesos,...

GESTION DE LA MEMORIA

a)b)

Marisa Gil

Introducció als Sistemes Operatius 10

Gestión del espacio (II):SWAPPING

• Utilizar un dispositivo de almacenamiento secundario (disco) para aumentar elespacio físico.

• Aumenta, por tanto, el grado de multiprogramación.

• Sólo se pueden ejecutar los procesos en memoria física.

• Dependiendo del tipo de reubicación es más o menos eficiente y útil.

GESTION DE LA MEMORIA

swap out swap in

a)

b)

b) Reubicación dinámica

a) Reubicación estática(única ubicación permitida)

Marisa Gil

Introducció als Sistemes Operatius 11

Gestión del espacio (y III):Modelos no contiguos

• ¿Podemos trocear un programa e ir metiendo los fragmentos en los sitios libresque encontremos?

• Cada fragmento necesita un registro de reubicación

• Permite aprovechar el espacio sin necesidad de compactación

• Modelos básicos:• Paginación

• Segmentación

GESTION DE LA MEMORIA

AB

C

RRA

RRC

RRB

Marisa Gil

Introducció als Sistemes Operatius 12

Paginación

• Se divide el EL del programa en bloques de igual tamaño• El tamaño es fijo, definido por la arquitectura

• Cada bloque se llamapágina (o página lógica)

• La última página tendrá una parte no ocupada (fragmentación interna)

• La memoria física también se divide en trozos de igual tamaño• Cada trozo se llamatrama (o página física)

• Por simplicidad es del mismo tamaño que la página (a veces, múltiplo)

• Cargar un programa en memoria significa encontrar un sitio para cada página• En general, encontrar tantas tramas libres como páginas ocupe

• Esta división en páginas es automática para la MMU• No existe ninguna modificación en el espacio de direcciones lineal

• Es transparente al usuario, a los programas de traducción y a la CPU

GESTION DE LA MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 13

Paginación

GESTION DE LA MEMORIA

. . .

0

2n-1

CÓDIGO

DATOS

PILA

0000110001101100

0000110001101100

ESPACIO LÓGICO

@lógica

vista por la CPU

vista por la MMUpágina desplazamiento

. . .

. . .

ESPACIO FÍSICO

Reg. reubicación +

Marisa Gil

Introducció als Sistemes Operatius 14

Paginación

GESTION DE LA MEMORIA

@lógica

@física

n d

m d

. . .

. . .

MEMORIA

. . .

TABLA de PÁGINAS

2n-1

vvv

ii

iv

número de trama

Marisa Gil

Introducció als Sistemes Operatius 15

A tener en cuenta ...

• Existe una tabla de páginas por proceso• Sólo está activa la del proceso que se está ejecutando

• Si el tamaño de la página es pequeño:• Habrá poca fragmentación interna

• El número de páginas será grande (=> la TP será grande)

• La TP estará en memoria, no en la MMU (=> 2 accesos por traducción)

• la MMU será barata: sólo mantiene la dirección de la TP (RBTP)

• Si el tamaño de la página es grande:• Habrá mucha fragmentación interna

• El número de páginas será pequeño (=> la TP será pequeña)

• Si la TP cabe en la MMU, la traducción de direcciones será rápida (1 acceso)

• la MMU será cara: mantiene la TP

• Tamaños comunes de páginas: 2K, 4K.

GESTION DE LA MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 16

TLB (Translation Lookaside Buffer)

Objetivo: mejorar el rendimiento del acceso a memoria en paginación

• Memoria cache con las PTE últimamente referenciadas.• Asociativa:

• contiene la página lógica referenciada

• el procesador pregunta al mismo tiempo a todas las entradas (hardware)

• 32, 48 entradas son valores habituales

William Stallings “Operating Systems”Cap. 5.3 Virtual MemoryMaxwell McMillan, International Editions, 1992

GESTION DE MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 17

TLB (Translation Lookaside Buffer)

@lógica

@física

p d

t d

. . .

. . .

MEMORIA

TLB

n página

CPU

n. trama val. TLBhit

TLBmiss

TABLAde

PÁGINAS

desplazamiento

GESTION DE MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 18

Segmentación

• El EL del programa se construye en bloques• El tamaño máximo de un bloque es fijo, definido por la arquitectura

• Cada bloque se llamasegmento

• El número de bloques que conforman el programa lo determina el usuario• Cada trozo puede tener una semántica asociada (código, datos,...)

• Se asocia memoria física a segmentos lógicos (segmentos físicos)

• Cargar un programa en memoria significa encontrar un sitio para cada segmento• Aparecefragmentación externa.

• Esta división en segmentos es competencia del programador• Se definen en la construcción del ejecutable (programador, compilador,...)

• El espacio de direcciones es de dos dimensiones, disperso.

GESTION DE LA MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 19

Segmentación

. . .

0

2n-1

CÓDIGO

DATOS

PILA

0000000001101100

ESPACIO LÓGICO @lógica

segmentodesplazamiento

. . .

. . .

ESPACIO FÍSICO

Reg. reubicación +

0000010000000000

segmentodesplazamiento

0000000001101101

0000001111111111

... no existen

seg. de datos

seg. de código

GESTION DE LA MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 20

Segmentación

2s-1

@lógica

@física

s d

MEMORIA

TABLA de SEGMENTOS

. . .

. . .

seg. de datos

seg. de código

@inicio segmento longitud

<

no

error+

GESTION DE LA MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 21

A tener en cuenta

• Se elimina la fragmentación interna• Se soporta el crecimiento dinámico de los segmentos• Protección/uso compartido• Desarrollo modular de programación: entidades menores de programa relaciona-

das lógicamenteMilan Milenkovic “Sistemas Operativos. Conceptos y diseño”

McGraw Hill

• Es más costoso buscar espacio libre para cargar un programa• Reaparece la fragmentación externa• Se gestiona la traducción a partir de registros especiales (ej: DS, SS,...)• MMU cara

GESTION DE LA MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 22

Modelos mixtos (I):Paginación segmentada

• El espacio lógico de un programa lo forman todas las posibles direcciones• El tamaño real de un programa es generalmente mucho más pequeño

• Muchas páginas no llegan a utilizarse

• Sólo un pequeño número de entradas de la tabla de páginas se accede

IDEA: Mantener sólo los grupos de páginas utilizadas por un programa,dividiendo la tabla de páginas en segmentos.

GESTION DE LA MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 23

Paginación segmentada

GESTION DE LA MEMORIA

@lógica

@física

. . .

. . .

MEMORIA

T. de PÁGINAS

vvv

ii

trama

en qué tabla de páginas?

stp dtp

@tabla

+

T. de PÁGINAS

vvv

i

trama

T. DE SEGMENTOS

Marisa Gil

Introducció als Sistemes Operatius 24

Modelos mixtos (II):Segmentación paginada

• Los segmentos son de tamaño variable y generan fragmentación externa• Cargar los segmentos en memoria es una operación “costosa”

• Puede no haber espacio contiguo para un segmento

• De todos los trozos de memoria libre hay que buscar el “adecuado”

IDEA: Los segmentos son conjuntos de páginas y cargar un segmento esbuscar tantas tramas libres como páginas lo componen.

GESTION DE LA MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 25

Segmentación paginada

@lógica

@física

. . .

. . .

MEMORIA

T. de PÁGINAS

vvv

ii

trama

en qué página?

ps ds

@tablaT. de PÁGINAS

vvv

i

trama

T. DE SEGMENTOS

+

GESTION DE LA MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 26

Memoria Virtual

Definición:Conjunto de mecanismos y técnicas, hardware y software, que permiten la ejecu-

ción de programas que no están enteramente cargados en memoria.

• Basta que éste en memoria la parte (código datos, pila) con la que se está traba-jando actualmente.

• Hay que tener localizable y directamente accesible el resto del programa, paracargarlo cuando sea referenciado:MEMORIA SECUNDARIA .

VentajasPermite aumentar el grado de multiprogramaciónReduce el tiempo de carga de los programas

GESTION DE MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 27

Implementación de la memoria virtual

• Modelo de memoria no contiguo (paginación o segmentación)• Mecanismos hardware para detectar que una dirección lógica no está presente

• Bit de presencia

• Mecanismos software y hardaware para gestionar la E/S del programa• FALLO DE PÁGINA (interrupción)

• Almacenamiento secundario donde está el programa íntegro• Memoria secundaria (disco, generalmente): ÁREA DE PAGINACIÓN

GESTION DE MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 28

A tener en cuenta....

• Carga inicial del programa• Paginación bajo demanda

• Prefetch

• Número de páginas que se asigna a cada programa• Reemplazo de páginas si la memoria física ya está toda llena• Hiperpaginación (THRASHING)

utilizaciónde la CPU

Grado de multiprogramación

thrashing

GESTION DE MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 29

Principio de localidad

Localidad espacial:Alta probabilidad de referenciar una dirección cercana a la actual

Localidad temporalAlta probabilidad de referenciar la dirección actual en un intervalo corto de tiempo

GESTION DE MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 30

A tener en cuenta ...

• El área de paginación es aconsejable que sea tres veces la memoria física• Programar con una buena localidad:

• datos locales,

• organización rutinas,

• bucles...

• Tamaño de la página: compromiso entre tiempo E/S y frecuencia FP• TLBs

Tacceso efectivo = (1 - p) x ma + p x tfp , 0 <= p <=1

GESTION DE MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 31

Otros tipos de gestión de memoria: Javadynamic link

class loader

execution engine

bytecodes

JVM

SISTEMA OPERATIVO

ficheros class de la APIJAVA (sólo los que se

necesitan)ficheros class

del programador

llamadas a métodos nativos del SO

GESTION DE MEMORIA

Marisa Gil

Introducció als Sistemes Operatius 32

Otros tipos de gestión de memoria: Javadynamic link

El orden en que se realizan estas tareas es estricto:1. Cargar: buscar e importar los datos binarios de un tipo.2. Linkar : realizar la verificación, preparación y (opcionalmente) resolución

a.Verificación: asegurar la correctitud del tipo importadob. Preparación: asignar memoria para clases variables e inicializar la

memoria a los valores por defectoc. Resolución: transformar las referencias simbólicas del tipo en referen-

cias directas.3. Inicialización: llamar al código JAVA que inicializa estas variables a sus pro-

pios valores iniciales.

GESTION DE MEMORIA