La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones.

Presentaciones similares


Presentación del tema: "Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones."— Transcripción de la presentación:

1 Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones Fijas INTERCAMBIO Introducción Particiones Variables Algoritmos de gestión Libre / Ocupado –Lista encadenada y Mapa de bits MEMORIA VIRTUAL Paginación Algoritmos de sustitución de páginas Cuestiones de diseño

2 Gestión de Memoria2 Introducción Cada vez, más memoria, más barata y ocupa menos: 198216KB16.000 pts.PseudoPC 19851MB500.000 pts.Victory (Unix) PC 19918MB77.500 pts. 199864MB17.900 pts.128MB51.900 pts. 2002256MB13.800 pts.512MB29.700 pts. 2005512MB9.500 pts.1GB29.900 pts. Sin embargo,¡ SIEMPRE AMPLIANDO ! 512K, 640K, 1M, 4M, 8M, 16M, 32M, 64M, 128M MSDOSWin95WinNTWin00 70MB120MB275MB Ley de Parkinson ¿Windows XP?

3 Gestión de Memoria3 Introducción (objetivos) Memoria: Recurso escaso y compartido (Multiprogramación) Poca memoria para los muchos procesos que quieren ejecutarse Proteger Compartir Organización eficiente Reubicación de procesos Memoria Principal P1 P2 P3 P6 P5 P4 OBJETIVOS Gestión eficiente Lógica Secundaria Principal Caché Física segmentadalineal ?

4 Gestión de Memoria4 Introducción (¿Proceso en memoria?) Programa Objeto n Programa Objeto 2 Compilador Programa Objeto 1 Enlazador Fichero Ejecutable Cargador Memoria Programa Fuente 1 Program principal; var Vector1: array [0..$FFF] of byte := (23,43,…,53); Vector2: array [0..$4FF] of byte; begin... if Vector1[0] = Vector2[0] then Subrutina;... end. $5000… $5030cmp $9000,$A000 $5036bnz $503E $503Absr $5200 $503E… $5200(codigo de subrutina) … $9000(valores de vector1) … $A000(valores de vector2) … Proceso Código máquina ¿ ?

5 Gestión de Memoria5 Introducción (¿Formato de un fichero ejecutable?) Código Var. Inic. Var. No Inic. --------------- Tabla Símbolos InicioTamaño $1000 $5000 $8000 ------- $4000 $1000 $500 ------- $2000 Nº mágico CP inicial --------- Tabla secciones Código máquina Variables inicializadas..... Otras secciones Tabla símbolos (depurador) $0000 $1000 $5000 $8000 Fichero ejecutable UNIX Var. No Inic. ¡ Algunas secciones no ocupan espacio en el fichero ejecutable y sí en memoria ! Secciones Cabecera

6 Gestión de Memoria6 Introducción (¿Imagen de un proceso en memoria?) Nº mágico CP inicial --------- Tabla secciones Código máquina Variables inicializadas..... Otras secciones Tabla símbolos (depurador) $0000 $1000 $5000 $8000 Fichero ejecutable UNIX Código máquina Variables inicializadas Variables no inicializadas Memo. Dinámica Pila $5000 $0000 $4000 $5500 Imagen de un proceso $xxxx 0 $0000 Memoria S.O. P1 P2 P4 ? $yyyy Pn pc sp... CPU P1 sp... P4 sp... Pn sp...

7 Gestión de Memoria7 M.P. Introducción (modelo estático vs dinámico) Pi exec Pi se ejecuta en la misma zona de memoria desde que se crea hasta que termina M.P. Pi exec exit Pi exit Pi puede ir cambiando en su totalidad de zona de memoria Intercambio M.P. Pi puede ir cambiando por trozos de zona de memoria Memoria Virtual ¡ Reubicar !

8 Gestión de Memoria8 Máquina con S.O. (MSDOS) IPL + drivers FFFFF 00000 ROM RAM Monitor Primeras máquinas Monoprogramación Máquina desnuda con monitor Cargar y depurar programas Programa de usuario + drivers Sistemas empotrados S.O. Power Point Excel Word S.O. + drivers RAM ? Word S.O. + drivers RAM ROM ? Prácticas de arquitectura RS232

9 Gestión de Memoria9 Estático En arranque Multiprogramación ( Particiones Fijas ) Se trocea la M.P. libre para procesos de usuario en particiones fijas, de diversos tamaños y reconfigurable sólo en arranque S.O. 300K 200K 100K 115K ? 320K S.O. 600K 250K 50K CUESTIONES DE DISEÑO ¿Cuántas particiones? ¿De qué tamaño? Reubicación Protección ¿Planificación? Tabla de particiones Tamaño y Libre / Ocupada Cola/s de procesos entrantes

10 Gestión de Memoria10 Particiones Fijas ( ¿Cuántas particiones? ) Aprovechar UCP Índice / Nivel de multiprogramación % de uso de la UCP Nivel de Multipro- gramación 1 2 3 4 5 6 7 8 9 10 100 80 60 40 20 50% de su tiempo hacen E/S ¿Caracterización de los procesos? 80% de su tiempo hacen E/S 20% de su tiempo hacen E/S ¡ Ojo ! Aprovechar la UCP al 100% no es el único objetivo Usuarios interactivos

11 Gestión de Memoria11 Particiones Fijas ( ¿De qué tamaño? ) Intentar aprovechar la memoria al máximo (ocupada al 100% por Pi) GRANDES S.O. 300K 50K Fragmentación interna 40K 200K P 200K no puede ejecutarse pese a haber 510K sin usar PEQUEÑAS S.O. 250K 50K 40K 200K 60K P 60K no puede ejecutarse pese a haber 5 particiones libres Fragmentación externa

12 Gestión de Memoria12 Particiones Fijas ( Planificación ) COLAS MÚLTIPLES / SEPARADAS S.O. 200K 400K 300K 100K 350K 80K Entra un Proceso Cola de la partición Mejor Ajuste A 250 B 70 C 80 D 150 E 90 F 125 Sale un Proceso P 100K ¿Quién entra? FIFOB Más grandeE Más cortoC 110515 Tiempos Se libera P 400K Partición grande libre y 6 procesos bloqueados ¿Particiones de igual tamaño? Equilibrar la carga

13 Gestión de Memoria13 Particiones Fijas ( Planificación ) COLA ÚNICA S.O. 200K 400K 300K 100K Entra un Proceso Partición para él o Se encola A 250 Sale un Proceso P 200K ¿Quién entra? B 70 C 80 D 150 F 90 E 125 4 11025 5 153 FIFOB Más grandeD Más cortoF Tiempos Más complejo y lento Mejor aprovechamiento de UCP y memoria Puede que injusticia: grandes vs pequeños

14 Gestión de Memoria14 Particiones Fijas ( Reubicación ) S.O. A 250 128K 512K 256K 100K Programa Partición ¡No siempre la misma! IF A >= 0 THEN A := A-1 ELSE A := A+1 ¿Direcciones Absolutas? TSTR0 JMIELSE SUB#1,R0 JMPNEXT ELSEADD#1,R0 NEXT 00000 00050TSTR0 00052JMI00060 00058SUB#1,R0 0005AJMP00062 00060ADD#1,R0 00062 ? Problemas

15 Gestión de Memoria15 Particiones Fijas ( Reubicación ) S.O. 20000 20050TSTR0 20052JMI00060 20058SUB#1,R0 2005AJMP00062 20060ADD#1,R0 20062 ? a)Reubicar al cargar (reubicación estática) +20000 Direcciones Absolutas Dirección de carga 20060 20062 b)Reubicación dinámica Registro de Reubicación 20000 00060 dv +20060 dr c)Código reubicable JMI 8(PC) SOLUCIONES

16 Gestión de Memoria16 Particiones Fijas ( Protección ) S.O. 20000 20050TSTR0 20052JMI00060 20058SUB#1,R0 2005AJMP00062 20060ADD#1,R0 20062........... 5FC00 Controlar accesos de Pi fuera de su zona 20000 5FC00 00060 dv +20060 dr Registro de Reubicación (Registro Base) No direccionable? SI dr>RL Excepción

17 Gestión de Memoria17 Intercambio ( Introducción ) Dos grandes problemas de las particiones fijas sin intercambio: AMuchos procesos interactivos y poca memoria para ellos B¿Cómo gestionar la memoria dinámica de los procesos? 20 usuarios desean usar editor 1MB S.O. 16 particiones de 1MB Máximo 16 procesos 4 try later ¿Una solución? ? Ampliar la M.P. con más particiones en disco S.O. P1 P2 P16 P17 P18 P19 P20 P1 P19 ¡ Eficiente si no hay trasiego !

18 Gestión de Memoria18 Intercambio ( Introducción ) ¿ Cuándo intercambiar ? S.O. P2 P16 P17 P18 P20 P1 P19 ? Algunas cuestiones: ¿ Quién por quién ? ¿ Coste del intercambio ? Word Excel ¡ 111..297 mseg !

19 Gestión de Memoria19 Intercambio ( Introducción ) Dos grandes problemas de las particiones fijas sin intercambio: AMuchos procesos interactivos y poca memoria para ellos B¿Cómo gestionar la memoria dinámica de los procesos? S.O. 300K 200K 100K P1 300 ¿Por qué P1 pide 300K? 300 250 200 150 100 titf K Particiones FijasPartición de 300K ¿ Intercambio ? P 100K P 200K P 300K P 100K ¿Qué estructura tiene la memoria dinámica de un Pi?

20 Gestión de Memoria20 Intercambio ( Introducción ) Componentes de MP de un Pi Código Pila Datos Fijo Varía (bsr y rts) Varía (new y dispose) Necesita 325K y le doy 400K (crecer) 200K (C) + 75K (D) + 50K (P) Pila Código Datos 25K 50K ? S.O. $00000 400K 50K 300K $FFFFF Pila Código Datos Pila Código Datos Fragmentación Protección Pila Código Datos 200K Dos zonas no contiguas ?

21 Gestión de Memoria21 Particiones Variables Asignar a cada proceso sólo la memoria que necesita S.O. 800 224 A 300K A 300 500 B 100K B 100 400 C 200K C 200 A C B 100 300 S.O. D 150K D C 200 B 100 150 S.O. 150 E 225K B D C 200 150 S.O. 250 D C S.O. E Fragmentación externa E esperando ¿ Solución ?

22 Gestión de Memoria22 Particiones Variables (Compactación) Siempre un único hueco con toda la memoria libre S.O. 800 224 A 300K A 300 500 B 100K B 100 400 C 200K C 200 A C B 100 300 S.O. D 150K D C 200 350 B 100 150 S.O. E 225K B E D C 200 225 B 100 150 S.O. 125 E D C S.O. 225 C 200 B 100 500 Compactar Costoso en tiempo ¿ Siempre ? ¿ De vez en cuando ? ¿ Cuándo ? Gestión de huecos

23 Gestión de Memoria23 S.O. P1P3P5P2P4 Algoritmos de gestión trozos (Lista Encadenada) Lista encadenada: distribuida vs centralizada Ordenada por direcciones y de cada trozo saber (al menos): Tipo (Libre/Ocupado); Tamaño P1 Ocupado 5MB Libre 6MB Libre 4MB

24 Gestión de Memoria24 S.O. Algoritmos de gestión trozos (Lista Encadenada) P1P3P5 Lista encadenada: distribuida vs centralizada 64MB 2056413124 Ocupado $0050 0000 $0140 0000 dirTrozo Tipo Tamaño Sig P1 Libre $0060 0000 $0190 0000 Ocupado $0040 0000 $01F0 0000 Libre $00D0 0000 $0230 0000 Libre $0040 0000 $03C0 0000 Ocupado $00C0 0000 $0300 0000 P3P5 ¿Lista dinámica? => Array estático => ¿Tamaño? La memoria se da a trozos (sean de 4KB) P 00500 01400 H 00600 01900 P 00400 01F00 H 00D00 02300 P 00C00 03000 H 00400 03C00

25 Gestión de Memoria25 Algoritmos de gestión trozos (Liberación de Memoria) P1P2P3 Lista encadenada: Supongamos que termina un proceso (sea P2) Hay que tener en cuenta cuatro situaciones: P1P3P1P2 P3P2P1P3 ¡ Fusionar ! Ventaja de tener la lista ordenada (contigüidad) Conveniencia de tener la lista doblemente enlazada

26 Gestión de Memoria26 Algoritmos de gestión trozos (Asignación de Memoria) Lista encadenada: Asignación de memoria 1.First FitPrimero en donde quepa 2.Next FitSiguiente donde quepa 3.Best FitDonde quepa mejor Muchos huecos inútiles (demasiado pequeños) 4.Worst FitDonde quepa peor ¡ Recorrer toda la lista ! 5.Lista de procesos por un lado y de huecos por otro ¿ Cómo acelerar la asignación ? Liberación ineficiente Ya lo tenemos [descriptores de procesos] Ordenados por tamaño First = Best ¿Next? 6.Quick FitDonde quepa antes

27 Gestión de Memoria27 Algoritmos de gestión trozos (First Fit) FIRST FITPrimero en donde quepa PPPPPP P PPPPPPP Muchos huecos pequeños al principio y uno grande al final: Ejemplo: [Fork(P 20K )] 8 + [Exit(P 20K ) + Fork(P 18K )] 8 + Fork(P 15K ) PPPPPPPP PPPPPPPP P P ¡ Siempre recorriendo el principio !

28 Gestión de Memoria28 Algoritmos de gestión trozos (Next Fit) NEXT FITSiguiente donde quepa Ejemplo: [Fork(P 20K )] 8 + [Exit(P 20K ) + Fork(P 18K )] 8 + Fork(P 15K ) P Inicio de búsqueda del siguiente hueco P PPPPPPP PPPPPPPP PPPPPPPP P PPPPPP ¿Pi grande? ! Huecos dispersos de tamaño moderado ! Fragmentación externa

29 Gestión de Memoria29 Algoritmos de gestión trozos (Quick Fit) QUICK FIT Donde quepa antes Idea: Varias listas que agrupan bloques de tamaño similar 64K 128K 256K 512K 1M 2M 4M Enormes 16324052 65112 280300360 400 800 33,53,8 32 P 310 P 220 P 500 P 900 ¡ Todavía puede mejorarse tanto la asignación como la liberación ! Sistema Buddy (Compañeros)

30 Gestión de Memoria30 S.O. ¡Doy memoria a trozos! 64MB 00000000 -------- 11111111 -------- Algoritmos de gestión trozos (Mapa de Bits) Asignación a golpe de 4K (granularidad) Pi pide 10K Fragmentación Interna ¿Tamaño del Mapa de Bits? 64MB/4KB = 16Kbits => 2KB ¿Liberación de memoria? ¿Asignación de memoria? Lista Encadenada ? First, Next, Best, Worst => Viables Quick, Buddy => Inviables ¡ No hay información explícita de tamaños ! 00000000 -------- 00011111 11111111 -------- Se le dan 12K (3 trozos) PiPj 00000000 -------- 00011111 00000000 11000111 -------- Pk 11111111111111111111111000....00 ocupado libre 00000000000000

31 Gestión de Memoria31 Paginación PROBLEMÁTICA DEL INTERCAMBIO ARQUITECTURA SUBYACENTE TRADUCCIÓN DE DIRECCIONES UBICACIÓN DE LA TABLA DE PÁGINAS UNO O VARIOS ESPACIOS DE D.V. TRATAMIENTO DE FALTA DE PÁGINA

32 Gestión de Memoria32 ? M.P. Paginación ( Problemática del Intercambio ) ¿Su gran restricción? Exigir que un Pi esté entero en M.P. para poder ejecutarse AUn Pi más grande que la M.P. no podrá ejecutarse BSi {Procesos preparados} aumenta, no cabe en M.P. Trasiego CEl intercambio Disco M.P. es mucho (dos procesos enteros) Compilador:1 Análisis léxico 2 Análisis sintáctico 3 Análisis semántico 4 Generación de código ¿Solución general? Overlays (solapamientos) Trocear

33 Gestión de Memoria33 M.P. Paginación ( Problemática del Intercambio ) Solución Darle al usuario la sensación de tener una M.P. enorme El Pentium 4 (32 bits de direcciones) 4GB Un PC medio dispone tan sólo de 512MB 8 veces menos M.P. Espacio de dir. del P 4 Espacio de Direcciones Reales del PC Teóricamente podemos escribir programas pensando en el Pentium 4 y 4GB ¿ Cómo funciona todo esto ? Arquitectura subyacente M.V. M.P. Tendremos una Memoria Virtual de 4GB y mis programas se ejecutan aunque tenga menos Memoria Principal (512MB) siempre que quepan en la memoria virtual.

34 Gestión de Memoria34 MEMORIA VIRTUAL Paginación ( Arquitectura Subyacente ) CPU dv Bus Datos M.V. La Memoria Virtual reside físicamente en memoria secundaria M.P. ¡ No caben ! Principio de localidad: Meto en M.P. los trozos que hagan falta para ejecutar Pr y Pv

35 Gestión de Memoria35 Paginación ( Arquitectura Subyacente ) CPU dv Bus Datos M.V. M.P. La M.V. se divide en páginas (1000B?) 0 1 2 3 5 6 7 8 9 La M.P. se divide en marcos 028 6000 MMU fallo 9 S.O. ? 9500 7500 6 dr Traducir dv dr 3000 ¿Cachés?

36 Gestión de Memoria36 Paginación ( Arquitectura Subyacente ) Resumiendo: M.V. en disco y gestionado como un sistema de particiones variables (los trozos granularidad de M.V. son páginas) Las páginas de M.V. necesarias para que se ejecute un Pi están en la M.P. en uno cualquiera de sus marcos ¡ Principio de localidad espacial y temporal ! Función de traducción (dv dr) implementada en Hw ¡ MMU interna vs externa ! Las páginas se intercambian MV MP (Falta de Página) gracias a la intervención del S.O. ¿ Cómo hacer la traducción dv dr ?

37 Gestión de Memoria37 Paginación ( Traducción de direcciones ) M.V. M.P. 0 1 2 3 5 6 7 8 9 02896 F.T. ? ¿ Qué páginas están cargadas y dónde ?

38 Gestión de Memoria38 Paginación ( Traducción de direcciones decimal ) ¿ # páginas ? ¿ # marcos ? 4096 256 M.V. de 16MB M.P. de 1MB Páginas de 4KB M.P. 0 4095 4096 8191 0 1 2 8192 12287 255 M.V. 0 4095 4096 8191 0 1 2 8192 12287 4095 MMU Página 2 en Marco 1 (4096) 8192 4096 122878191 11285 4096 2 3093 + 7189 4096 1

39 Gestión de Memoria39 Paginación ( Traducción de direcciones binario ) ¿ # bits dv ? ¿ # bits dr ? 24 20 M.V. de 16MB M.P. de 1MB Páginas de 4KB 0000 0000 0000 0000 0000 0000 1111 1111 1111 0000 0000 0001 0000 0000 0000 0000 0000 0001 1111 1111 1111 0000 0000 0010 0000 0000 0000 0000 0000 0010 1111 1111 1111 M.V. 0 4095 4096 8191 8192 12287 12 bits dv PáginaOffset 12 M.P. 0 4095 4096 8191 8192 12287 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 0000 0001 0000 0000 0000 0000 0001 1111 1111 1111 0000 0010 0000 0000 0000 0000 0010 1111 1111 1111 dr MarcoOffset 812 0000 0000 0010 0000 0000 0000 0000 0001 0000 0000 0000

40 Gestión de Memoria40 Paginación ( Traducción de direcciones hexadecimal ) M.V. 0 1 2 3 5 6 7 8 9 000 000 FFF HHH PAG OFF 008 000 008 FFF FFF 000 FFF M.P. 0 2 8 9 6 00 000 00 FFF HH HHH MAR OFF 02 000 02 FFF FF 000 FF FFF 0 1 2 3 4 5 6 7 8 9 A FFF Tabla de páginas 02 51A P 02 Presente Marco 008 51A

41 Gestión de Memoria41 Toda la T.P. en M.P. M.P. Tabla de Páginas MMU CPU Paginación ( Ubicación de la Tabla de Páginas ) dato dv Se lee el descriptor dr Se lee el dato (Caché | M.P.) ¡ Intolerable por lento ! Toda la T.P. en la M.M.U. M.P. T.P. CPU MMU dato dv dr PDP11 8 páginas de 8K ¿Viable en el 80486? 1M páginas 4K ¡ Intolerable por caro !

42 Gestión de Memoria42 Toda la T.P. en M.P. + una caché de la T.P. en la MMU Paginación ( Tabla de Páginas M.P. + caché ) M.P. Tabla de Páginas dato 00851A dv MMU 009FF 00663 00040 00852 002A3 caché Página Marco Cachés de 8..2046 entradas 1M entradas 5251A dr RBTP ¿ Fallo de Caché ? ¡ Tasas de acierto del 98% !

43 Gestión de Memoria43 Paginación ( Tabla de Páginas Fallo caché ) M.P. dv MMU 03007 15F42 A3254 004C2 TLB 10000 57315 FFE01 B00AB dr 10 000 10 004 10 008 10 00C 10 010 13 FF0 13 FF4 13 FF8 13 FFC 003A28 10000+(003*4) 0 1 2 3 4 4095 T.P. 84A28 ¿ Página no presente ? P 84 00384 F.P. ¿ Caché llena ? !Algunos P por Software!

44 Gestión de Memoria44 4 Mb (2 10 *2 12 =2 2 *2 20 ) Texto Datos Stack Gap Paginación ( Tabla de Páginas multinivel ) Evita mantener todas las tablas de páginas en memoria Ejercicio 2 – 12.12.2001

45 Gestión de Memoria45 Paginación ( Tabla de Páginas invertida ) M.V. M.P. 0 1 2 3 5 6 7 8 9 0 2 8 9 6 F.T. Bastaría con una caché con tantas entradas como marcos Descriptor de página PMarco caché ?? Sigue siendo necesaria una T.P. completa (MP / MV) ¿ Seguro ?

46 Gestión de Memoria46 Paginación ( Tabla de Páginas descriptor ) Aspecto de un descriptor de página PBRML E JMARCO PRESENTE Permisos:LECTURA BLOQUEADAESCRITURA REFERENCIADAEJECUCIÓN MODIFICADA CACHE (Si/No) ¿ Dirección en disco ? Un disco entero, o varios, o una parte de uno, para la M.V. Un fichero especial pagefile.sys innecesario C

47 Gestión de Memoria47 P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15 M.V.FT M4 M5 M6 M7 M.P. M0 M1 M2 M3 Paginación ( Uno o varios espacios de dv ) Un único espacio de direcciones virtuales para todos los procesos P1 P2 P3 Una única T.P. Global Reubicación: Carga Registro Reubicación ¿ Cómo crece un Pi ? Muy problemático Se adapta bien a tener un disco con n*sector = página Eficiencia Ver ejercicio 3 20/6/00

48 Gestión de Memoria48 Paginación ( Uno o varios espacios de dv ) Un espacio de direcciones virtuales para cada proceso P0 P1 P2 P3 M.V.(P1)FT(P1) P0 P1 P2 P3 P1 M4 M5 M6 M7 M.P. M0 M1 M2 M3 P0 P1 P2 P3 P4 P5 P2 En la MMU, las dv se prefijan por un identificador de proceso (complejidad) Una T.P. por proceso Reubicación innecesaria ¿ Fácil crecer ? Se adapta bien a tener un fichero por Pi (ineficiente)

49 Gestión de Memoria49 Paginación ( Tratamiento de Falta de Página ) ¿Cuántas Faltas de Página puede generar una instrucción? 1.Extraer instrucción Leer dv $003000 F.P. 2.Decodificarla 3.Ejecutarla Escribir dv $0045FB F.P. ? moveD0,$0045FB clr$0003FA M.V. $002FFA CPU PCM.P. Una instrucción, 0, 1, 2 o más F.P. $003000

50 Gestión de Memoria50 Paginación ( Tratamiento de Falta de Página ) El tratamiento de F.P. recae en el S.O. M.P. 0 2 8 9 6 (I) Hay marco libre M.V. 0 1 2 3 5 6 7 8 9 ? Política de ubicación simple: uno cualquiera (II) No hay marco libre M.P. 0 2 8 9 6 3 5 1 ? ? Política de sustitución no tan simple

51 Gestión de Memoria51 S.O. M.V. 0 1 2 3 5 6 7 8 9 mov C,D M.P. 0 2 8 6 0123456701234567 3 5 7 1 MMarcoP Paginación ( Tratamiento de Falta de Página II ) 3 Seleccionar víctima, tocar TP y arrancar E/S ¡ Sólo si sucia ! 25 1 0 0 0000 3 ¿Víctima 2 ? 115 0FA3 2 4 4 Salvando (DMA) página sucia en disco 5 Fin E/S. Página 2 salvada. Marco 5 libre. 7 mov C,D 9 6 8 9 0 105 10 ¿ Quién actualiza la caché ?

52 Gestión de Memoria52 Paginación ( Tratamiento de Falta de Página II ) Resumiendo: 1 Referencia a página no cargada en M.P. 2 Excepción BERR y se bloquea al proceso 3 Seleccionar víctima, tocar TP y arrancar E/S ¡ Sólo si sucia ! 4 Salvando (DMA) página sucia en disco 5 Fin E/S. Página 2 salvada.Marco 5 libre. 6 Arrancar E/S para cargar Página 9 en Marco 5. 7 Transferencia DMA disco MP. CPU para otro Pi 8 Fin E/S. Página 9 cargada en Marco 5. P Preparado 9 Actualizar TP 10 Rearrancar Mov C,D cuando preparado UCP ¿O continuar?

53 Gestión de Memoria53 Paginación ( Algoritmos de sustitución de páginas ) OBJETIVO:Minimizar el número de Faltas de Página (F.P.) Accesos:{........ $001000, $0043FA, $001002, $006400, $001006, $006402, $006406, $006408, $001008, $00640A, $00100A, $00100E, $00640E, $001012..} {.. 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1,..} Serie de Referencia Un solo marco ? F.P. 11 3 o más marcos ? F.P. 3 ¿Cuantos más marcos mejor? Sean dos marcos M0 M1 11 4 1 6 F.P. 3 M0 M1 11 4 6 4 6 1 4 M0 M1 11 4 6 4 1 4 6 4 1 4 6 4 1 4 6 4 1 4 10 Margen para la mejora Algoritmos

54 Gestión de Memoria54 Paginación ( Algoritmos de sustitución de páginas ) {7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1} Serie de Referencia ALGORITMOS IDEALMás tiempo tarde en volver a ser referenciada NRUNo utilizada recientemente FIFOMás tiempo lleva en Memoria Principal LRUMenos recientemente usada 2 nd ChanceSegunda oportunidad RELOJFIFO + LRU ¡ El mismo !

55 Gestión de Memoria55 Paginación ( Algoritmos de sustitución de páginas ) 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1 IDEAL FIFO LRU RELOJ FP 7 0 1 2 3 40 1 7 9 7 0 1 2 3 40 1 7 15 0 2 3 2 0 1 7 0 1 2 3 40 1 7 12 2 30 7 0 1 2 3 4 0 1 7 14 2 3 2 0 1

56 Gestión de Memoria56 CT(t2, 10) = t2 {3,4} Paginación (Cuestiones de diseño: conjunto de trabajo) ¿Qué hacer cuando un proceso pasa a ejecución? Carga por Demanda Se van cargando las páginas que el proceso vaya necesitando Muchas F.P. evitables Prealimentación Se arranca la carga del conjunto de trabajo del proceso. Páginas usadas más recientemente 2,6,1,5,7,7,7,7,5,1,6,2,3,4,1,2,3,4,4,4,4,3,4,3,4,4,4,1,3,2,3,4,4,1,3 CT(t1, 10) = t1 {1,2,5,6,7}

57 Gestión de Memoria57 Paginación ( Cuestiones de diseño: trasiego ) Páginas = 20 CT = 7 MV MP Cabe en MP ¿Más Procesos? Páginas = 26 CT = 11 MP MV No cabe en MP => CT mayor que MP => Trasiego ¿Tamaño de página? ¿Grandes? Más Fragmentación Interna Mejor rendimiento E/S ¿Pequeñas? Mejor ajuste de localidad Más ineficiencia de E/S 2 n => 512B.. 4/8KB y aumentando ¡Superpáginas!

58 Gestión de Memoria58 Paginación ( Cuestiones de diseño: otras ) Asignación local frente a global Control de carga Pi Pj PFF FIN


Descargar ppt "Gestión de Memoria1 Tema 3.Gestión de Memoria INTRODUCCIÓN SIN INTERCAMBIO NI MEMORIA VIRTUAL (Estático) Monoprogramación Multiprogramación con Particiones."

Presentaciones similares


Anuncios Google