Gestión de Procesos1 Horas 1INTRODUCCIÓN5 2PROCESOS Y THREADS11 3GESTIÓN DE MEMORIA7 4ENTRADA/SALIDA2 5SISTEMA DE FICHEROS5 sisOpeTemarioCurso: 14/15
Gestión de Memoria2 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 Recordatorio + …
Gestión de Memoria3 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 MB57 €.1GB180 € GB48 €.8GB92 €. Sin embargo,¡ SIEMPRE AMPLIANDO ! 512K, 640K, 1M, 4M, 8M, 16M, 32M, 64M, 128M MSDOSWin95WinNTWin00 70MB120MB275MB Ley de Parkinson ¿Windows 7 64 ? 2GB + 20GB
Gestión de Memoria4 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 ?
Gestión de Memoria5 Introducción (objetivos) Jerarquía de Memoria: Capacidad y Tiempos 5ª Ed Computer Architecture … Hennessy & Patterson
Gestión de Memoria6 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 ¿ ?
Gestión de Memoria7 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 #file miabuelo miabuelo: MINIX-PC 32-bit executable $file barreraArbol barreraArbol: ELF 64-bit LSB executable, x86-64
Gestión de Memoria8 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...
Gestión de Memoria9 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 !
Gestión de Memoria10 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
Gestión de Memoria11 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
Gestión de Memoria12 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
Gestión de Memoria13 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
Gestión de Memoria14 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
Gestión de Memoria15 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
Gestión de Memoria16 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
Gestión de Memoria17 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
Gestión de Memoria18 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 rpAux = rpAux->p_nextready
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? 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 !
hdparm –tT /dev/sda1 128MB/s Gestión de Memoria20 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 ¡ ( ) MB … !
Gestión de Memoria21 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?
Gestión de Memoria22 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 ?
Gestión de Memoria23 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 ? blockdev –getbsz /dev/sda1
Gestión de Memoria24 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
Gestión de Memoria25 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 ¿Separar en 2 listas? Huecos Procesos
Gestión de Memoria26 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
Gestión de Memoria27 S.O. Algoritmos de gestión trozos (Lista encadenada) H DDDDD N dirTrozo Tipo Tamaño Sig P P1P P H DDDD P P2P P P H DDD P P3P P P P H 9000 DD P1P1 P
Gestión de Memoria28 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
Gestión de Memoria29 Algoritmos de gestión trozos (Asignación de Memoria) Lista encadenada: Asignación de memoria 1.First Fit“Primero en donde quepa” 2.Next Fit“Siguiente donde quepa” 3.Best Fit“Donde quepa mejor” Muchos huecos inútiles (demasiado pequeños) 4.Worst Fit“Donde 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 Fit“Donde quepa antes”
Gestión de Memoria30 Algoritmos de gestión trozos (First Fit) FIRST FIT“Primero en donde quepa” PPPPPP P’ PPPPPP 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’ P’P’ ¡ Siempre recorriendo el principio !
Gestión de Memoria31 Algoritmos de gestión trozos (Next Fit) NEXT FIT“Siguiente 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
Gestión de Memoria32 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)
Gestión de Memoria33 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
Gestión de Memoria34 Paginación PROBLEMÁTICA DEL INTERCAMBIO ARQUITECTURA SUBYACENTE TRADUCCIÓN DE DIRECCIONES TABLA DE PÁGINAS MULTINIVEL UNO O VARIOS ESPACIOS DE D.V. TRATAMIENTO DE FALTA DE PÁGINA Recordatorio
Gestión de Memoria35 ? 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
Gestión de Memoria36 M.P. Paginación ( Problemática del Intercambio ) Solución Darle al usuario la sensación de tener una M.P. enorme El Core i7 (48/64bits de direcciones) 256TB Un PC medio dispone tan sólo de 4GB veces menos M.P. Espacio de dir. del i7 Espacio de Direcciones Reales del PC Teóricamente podemos escribir programas pensando en el Core i7 y 256TB ¿ Cómo funciona todo esto ? Arquitectura subyacente M.V. M.P. Tendremos una Memoria Virtual de 256TB y mis programas se ejecutan aunque tenga menos Memoria Principal (4GB) siempre que quepan en la memoria virtual.
Gestión de Memoria37 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
Gestión de Memoria38 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?
Gestión de Memoria39 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 ?
Gestión de Memoria40 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 M.V bits PáginaOffset 12 dv M.P MarcoOffset 812 dr HHHHH “hexadecimal”
Gestión de Memoria41 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 ¡Demasiado lento! ¿Dónde está?
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é TLB” ) M.P. Tabla de Páginas dato 00851A dv MMU 009FF A3 TLBcaché Página Marco Cachés de entradas 1M entradas 5251A dr RBTP ¿ Fallo de Caché ? ¡ Tasas de acierto del 98% !
Gestión de Memoria43 Paginación ( Traducción de direcciones “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
Gestión de Memoria44 Paginación ( Tabla de Páginas “multinivel” ) Intel Core i7 => DV 48 bits, páginas 4KB y descriptores 4B => 256GB para la TP RegTP1 ¡Siempre en MP! Entran y salen de MP TP Nivel1 TP Nivel2 páginas VPN1VPN2OFF R PPNOFF dirVirtual dirReal Ejercicio 2 –
Gestión de Memoria45 Paginación ( Tabla de Páginas “multinivel” Intel Core i7 ) VPN 1VPN 2VPN 3VPN 4VP OFF CR PPN [MARCO]PP OFF 12 Page global directory Page upper directory Page middle directory Page table dirVirtual dirFísica i3,i5,i7 4ª 32GB i7 High End 64GB Xeon 1..4TB 2013
Gestión de Memoria46 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
Gestión de Memoria47 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)
Gestión de Memoria48 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
Gestión de Memoria49 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 ¡ marcos !
Gestión de Memoria50 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 TLBcaché ?
Gestión de Memoria51 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. CPU para otro Pi 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?
Gestión de Memoria52 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
Gestión de Memoria53 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 !
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 IDEAL FIFO LRU RELOJ FP
Gestión de Memoria55 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}
Gestión de Memoria56 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! sysconf (_SC_PAGESIZE)
Gestión de Memoria57 Paginación (Cuestiones de diseño: superpáginas ) VPN 1VPN 2VPN 3VP OFF dirVirtual2MB VPN 1VPN 2VP OFF 9930 dirVirtual1GB VPN 1VPN 2VPN 3VPN 4VP OFF dirVirtual4KB Intel Core i7 “long mode” Páginas de
Gestión de Memoria58 Paginación ( Cuestiones de diseño: otras ) Asignación local frente a global Control de carga Pi Pj PFF FIN Asignar + marcos Devolver marcos Retirar temporalmente algún proceso ¿Intercambio?