gestión de la memoria - staff — department of computer...

32
Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la Memoria 1. Introducción 2. Modelos de gestión del espacio físico 3. Memoria Virtual 4. Otros modelos Bibliografía Silberschat and Galvin Sistemas Operativos. Conceptos fundamentales. Parte III: Administración de almacenamiento Introducción a los Sistemas Operativos

Upload: ngoliem

Post on 29-Jun-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la Memoria

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

Page 2: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la Memoria

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

Page 3: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión 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

Page 4: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión 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

Page 5: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión 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

Page 6: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la Memoria

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)

Page 7: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la Memoria

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

Page 8: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la 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

Page 9: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la Memoria

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)

Page 10: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la Memoria

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)

Page 11: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la Memoria

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

Page 12: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la Memoria

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

Page 13: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión 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 +

Page 14: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la Memoria

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

Page 15: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la Memoria

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

Page 16: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión 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

Page 17: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la 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

Page 18: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la 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

Page 19: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión 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

Page 20: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión 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

Page 21: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión 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

Page 22: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión 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

Page 23: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión 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

Page 24: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la Memoria

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

Page 25: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión 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

Page 26: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión 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

Page 27: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la 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

Page 28: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la 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

Page 29: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la 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

Page 30: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la 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

Page 31: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la 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

Page 32: Gestión de la Memoria - Staff — Department of Computer ...people.ac.upc.edu/marisa/miso/memo_slides.pdf · Marisa Gil Introducció als Sistemes Operatius 1 Gestión de la 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