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: KB pts.PseudoPC 19851MB pts.Victory (Unix) PC 19918MB pts MB pts.128MB pts MB pts.512MB pts MB9.500 pts.1GB 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 $ $4000 $1000 $ $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 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 % 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 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 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 K 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 TSTR JMI SUB#1,R0 0005AJMP ADD#1,R ? Problemas

15 Gestión de Memoria15 Particiones Fijas ( Reubicación ) S.O TSTR JMI SUB#1,R0 2005AJMP ADD#1,R ? a)Reubicar al cargar (reubicación estática) Direcciones Absolutas Dirección de carga b)Reubicación dinámica Registro de Reubicación dv dr c)Código reubicable JMI 8(PC) SOLUCIONES

16 Gestión de Memoria16 Particiones Fijas ( Protección ) S.O TSTR JMI SUB#1,R0 2005AJMP ADD#1,R FC00 Controlar accesos de Pi fuera de su zona FC dv 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 ¡ 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? 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. $ K 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 A 300K A B 100K B C 200K C 200 A C B S.O. D 150K D C 200 B S.O. 150 E 225K B D C 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 A 300K A B 100K B C 200K C 200 A C B S.O. D 150K D C B S.O. E 225K B E D C B S.O. 125 E D C S.O. 225 C 200 B 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 Ocupado $ $ dirTrozo Tipo Tamaño Sig P1 Libre $ $ Ocupado $ $01F Libre $00D $ Libre $ $03C Ocupado $00C $ P3P5 ¿Lista dinámica? => Array estático => ¿Tamaño? La memoria se da a trozos (sean de 4KB) P H P F00 H 00D P 00C H C00

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 ,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 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 ! Se le dan 12K (3 trozos) PiPj Pk ocupado libre

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?) La M.P. se divide en marcos MMU fallo 9 S.O. ? 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 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 ? M.V. de 16MB M.P. de 1MB Páginas de 4KB M.P M.V MMU Página 2 en Marco 1 (4096)

39 Gestión de Memoria39 Paginación ( Traducción de direcciones binario ) ¿ # bits dv ? ¿ # bits dr ? M.V. de 16MB M.P. de 1MB Páginas de 4KB M.V bits dv PáginaOffset 12 M.P dr MarcoOffset

40 Gestión de Memoria40 Paginación ( Traducción de direcciones hexadecimal ) M.V FFF HHH PAG OFF FFF FFF 000 FFF M.P FFF HH HHH MAR OFF FFF FF 000 FF FFF A FFF Tabla de páginas 02 51A P 02 Presente Marco A

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 A3 caché Página Marco Cachés de 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 F42 A C2 TLB FFE01 B00AB dr C FF0 13 FF4 13 FF8 13 FFC 003A (003*4) T.P. 84A28 ¿ Página no presente ? P 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 –

45 Gestión de Memoria45 Paginación ( Tabla de Páginas invertida ) M.V. M.P 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 $ 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 (I) Hay marco libre M.V ? Política de ubicación simple: uno cualquiera (II) No hay marco libre M.P ? ? Política de sustitución no tan simple

51 Gestión de Memoria51 S.O. M.V mov C,D M.P MMarcoP Paginación ( Tratamiento de Falta de Página II ) 3 Seleccionar víctima, tocar TP y arrancar E/S ¡ Sólo si sucia ! ¿Víctima 2 ? 115 0FA Salvando (DMA) página sucia en disco 5 Fin E/S. Página 2 salvada. Marco 5 libre. 7 mov C,D ¿ 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, $ } {.. 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1,..} Serie de Referencia Un solo marco ? F.P o más marcos ? F.P. 3 ¿Cuantos más marcos mejor? Sean dos marcos M0 M F.P. 3 M0 M M0 M 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

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