La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema 11: Segmentación y Paginación de la Memoria

Presentaciones similares


Presentación del tema: "Tema 11: Segmentación y Paginación de la Memoria"— Transcripción de la presentación:

1 Tema 11: Segmentación y Paginación de la Memoria
Sistemas Operativos Tema 11: Segmentación y Paginación de la Memoria (Tema 14 en apuntes prof. Rovayo)

2 Tema 11: Segmentación y paginación de la memoria
Índice: Segmentación Administración de memoria segmentada Paginación Administración de memoria paginada Sistemas combinados 2

3 Tema 11: Segmentación y paginación de la memoria
Índice: Segmentación Administración de memoria segmentada Paginación Administración de memoria paginada Sistemas combinados 3

4 Tema 11: Segmentación y paginación de la memoria
Espacio lógico de direcciones es bidimensional Direcciones lógicas constan de: Indicador de segmento Desplazamiento Segmento = trozo de memoria consecutiva Idea: dividir programa en trozos de memoria independientes: Código Pila Datos …. La dirección lógica (la que ven los procesos) es bidimiensional, pues consta de algo que identifica a un segmento (indicador de segmento) y un desplazamiento El espacio físico de direcciones es, como siempre, lineal Los segmentos son trozos de memoria con significado para los procesos: datos, código, etc. El indicador identifica a un segmento, y el desplazamiento es la “dirección dentro del segmento”. Espacio Físico de Direcciones Dirección Lógica ind. seg. desplazamiento 00…0 4 4 FF…F

5 Tema 11: Segmentación y paginación de la memoria
Traducción de direcciones segmentadas Protección Superposición de segmentos Formas de usar los descriptores

6 Tema 11: Segmentación y paginación de la memoria
Traducción de direcciones segmentadas Protección Superposición de segmentos Formas de usar los descriptores

7 Tema 11: Segmentación y paginación de la memoria
1.1 Traducción de direcciones segmentadas Dirección Lógica Espacio Físico de Direcciones ind. seg. desplazamiento 00…0 d<t ERROR NO SI + Segmento 1 La traducción se lleva a cabo por hardware en la MMU (Memory Management Unit) Comprobaciones que se efectúan: ¿Está definido el descriptor de segmento? Si no es así, error de acceso: segmento no validado. ¿Está el desplazamiento dentro del segmento? Si no es así, error de acceso: desplazamiento no válido. base tamaño Segmento 2 0A00 1000 1 6F10 4000 2 B100 2000 Segmento 3 FF…F Tabla de descriptores de Segmentos

8 Tema 11: Segmentación y paginación de la memoria
Traducción de direcciones segmentadas Protección Superposición de segmentos Formas de usar los descriptores

9 Tema 11: Segmentación y paginación de la memoria
1.2 Protección ERROR Dirección Lógica Espacio Físico de Direcciones ind. seg. desplazamiento NO 00…0 d<t ¿válido? ERROR NO SI SI Segmento 1 Se determina si es válido el acceso o no en función de los bits de protección y del tipo de acceso. Algunos procesadores se ahorran bits de protección haciendo que algunas opciones sean implícitas. Por ejemplo, en familia 80286: Bit E: Tipo de segmento. 0: Datos (siempre se pueden leer, nunca se pueden ejecutar) 1: código (siempre se pueden ejecutar, nunca se pueden modificar) R/W: En segmentos de código, si R/W= 1 el segmento se puede leer En segmentos de datos, si R/W = 1 el segmento se puede modificar base tamaño r w x 0A00 1000 6F10 4000 B190 2000 Segmento 2 1 2 Segmento 3 FF…F Tabla de descriptores de Segmentos

10 Tema 11: Segmentación y paginación de la memoria
Traducción de direcciones segmentadas Protección Superposición de segmentos Formas de usar los descriptores

11 Tema 11: Segmentación y paginación de la memoria
1.3 Superposicion de segmentos Varios segmentos pueden estar parcial o totalmente solapados en memoria Una dirección física se puede corresponder con múltiples direcciones lógicas 00…0 1000 Los segmentos superpuestos pueden tener incluso distintos permisos (segmentos 0 y 1) Si segmentos totalmente superpuestos: segmentos alias Aplicación: para implementar la técnica de copy on write mencionada en capítulo 8 (en animación) Se crea inicialmente un segmento de datos, con permiso de lectura y escritura Al crear el segmento de COW (click), este se crea con la misma dirección y tamaño (totalmente solapado) pero nótese que se quita permiso de escritura en ambos segmentos Si se intenta escribir en uno de los dos segmentos, fallo de protección (click) Entonces se copia el segundo segmento sobre una nueva ubicación (click), actualizándose la dirección del segundo segmento y restituyéndose en ambos el permiso de escritura (hazlo notar, que casi pasa desapercibido) Otra aplicación: en un micro que no permita modificar segmentos de código, se puede crear un segmento alias de dato para modificarlo. 2000 base tamaño r w x 4000 1000 4000 1 2000 4000 A000 2 4000 5000 3 A000 4000 5000 FF…F

12 Tema 11: Segmentación y paginación de la memoria
Traducción de direcciones segmentadas Protección Superposición de segmentos Formas de usar los descriptores

13 Tema 11: Segmentación y paginación de la memoria
1.4 Formas de usar los descriptores ¿Cuántos segmentos pueden haber en el sistema? Cada proceso debe poder crear un número suficiente de segmentos Intel Pentium: segmentos ¡Tabla de segmentos demasiado grande para MMU! Tabla en memoria y MMU contiene su dirección La tabla local de descriptores es un subconjunto de la global 00…0 base tamaño r w x BASE LIMITE BASE LOCAL LIMITE LOCAL

14 Tema 11: Segmentación y paginación de la memoria
1.4 Formas de usar los descriptores PROBLEMA: Tiempo de acceso se multiplica por dos Primer acceso: tabla de descriptores Segundo acceso: dirección efectiva Soluciones (no excluyentes): Uso de registros descriptores de segmento en MMU Uso de memoria asociativa

15 Tema 11: Segmentación y paginación de la memoria
1.4 Formas de usar los descriptores Registros descriptores En MMU: varios registros capaces de contener un descriptor Se puede copiar en ellos los descriptores que se vayan a usar en el futuro inmediato Dos tipos de registros: de propósito general especializados La tabla local de descriptores es un subconjunto de la global

16 Tema 11: Segmentación y paginación de la memoria
1.4 Formas de usar los descriptores Registros descriptores de propósito general MMU contiene un conjunto de registros sobre los que cargar próximos descriptores a usar, y… Dos tipos de direcciones: Las que hacen referencia a un descriptor de tabla en memoria necesitan más bits para hacer referencia al descriptor Las que hacen referencia a un descriptor en MMU necesitan menos bits para referir al descriptor Con descriptores en memoria hacen falta 14 bits para referir al descriptor Con 16 descriptores en registros hacen falta 4 bits para referir al descriptor Dos ventajas por tanto: tiempo y menor tamaño de las instrucciones que emplean estas direcciones BASE TAM PERM BASE TAM PERM 1 BASE TAM PERM 2 BASE TAM PERM 3 BASE TAM PERM 4

17 Tema 11: Segmentación y paginación de la memoria
1.4 Formas de usar los descriptores Registros descriptores especializados MMU contiene registros capaces de albergar un descriptor, y Dos tipos de direcciones: Las que hacen referencia a un descriptor de tabla en memoria Las que NO hacen referencia a ningún descriptor Emplean un descriptor de MMU, según el tipo de instrucción DS: para instrucciones de manejo de datos en general SS: Para instrucciones de manipulación de la pila: PUSH, POP, etc. CS: Para instrucciones de salto y llamadas a rutinas BASE TAM PERM DS BASE TAM PERM SS BASE TAM PERM CS

18 Tema 11: Segmentación y paginación de la memoria
1.4 Formas de usar los descriptores Descriptores en memoria asociativa MMU contiene una memoria asociativa indexada por nº de descriptor Para cada acceso: Se busca en memoria asociativa el nº de descriptor Si está: se emplea el descriptor guardado en mem. asociativa Si no está: se carga (es necesario acceso a tabla en memoria) Si se llena memoria asociativa: reemplazo 2 desplazamiento 5 2 14 0A00 1000 6F10 4000 B190 2000

19 Tema 11: Segmentación y paginación de la memoria
1.4 Formas de usar los descriptores Descriptores en memoria asociativa Memoria asociativa es transparente ¡Se puede usar en conjunción con registros en MMU!

20 Tema 11: Segmentación y paginación de la memoria
Índice: Segmentación Administración de memoria segmentada Paginación Administración de memoria paginada Sistemas combinados 20

21 Tema 11: Segmentación y paginación de la memoria
2. Administración de memoria segmentada Gestión: particiones variables Mapas de bits Listas de control Segmentación proporciona posibilidades adicionales: Crecimiento de los procesos Compartición de segmentos Carga de segmentos a petición Enlace dinámico

22 Tema 11: Segmentación y paginación de la memoria
2. Administración memoria segmentada Crecimiento de los procesos Dos formas de crecimiento: Asignando nuevos segmentos al proceso Creciendo algún segmento asignado 00…0 1000 Para crecer un segmento: Si hay suficiente espacio libre detrás: cambiar tamaño en descriptor Si no hay suficiente espacio: Copiar a hueco libre (compactando si es necesario) Cambiar tamaño (y dirección base, claro está) Posibilidad de crecimiento automático A cada segmento, asociar un atributo “permitir crecer” Si se sobrepasa límite en un segmento que puede crecer, el tratamiento de la excepción lo que hará será crecer el segmento. Indica que gracias a la segmentación, todas las direcciones son reubicables 1800 2000 3000 base tamaño r w x 2000 1000 Crecible True False 4800 1000 3000 1000 1800 1

23 Tema 11: Segmentación y paginación de la memoria
2. Administración memoria segmentada Compartición de segmentos Objetivos: Optimización uso de memoria Compartición de información Ejemplo 1: si varios usuarios ejecutan un mismo programa… Pueden compartir código y constantes del programa: ¡sólo se cargan una vez! Si código usa librerías comunes: pueden compartirse segmentos de librerías con otros programas Ejemplo 2: procesos que comparten datos Datos en segmento compartido Gestión: tabla de segmentos compartidos Gestión: tabla que contiene… Identificación segmentos compartidos Procesos que los comparten Características, etc…

24 Tema 11: Segmentación y paginación de la memoria
2. Administración memoria segmentada Carga de segmentos a petición Algunas MMU disponen de bit “presente” en descriptor: Segmentos no presentes están definidos, pero no están en memoria Acceso a segmento no presente=fallo de segmento Ante un fallo de segmento, SO es responsable de cargar segmento Es responsabilidad del SO determinar dónde está un segmento no presente. Muy habitualmente, en disco. 00…0 400 base tamaño r w x P 800 2000 1000 1 2000 - 3000 1 3000 1

25 Tema 11: Segmentación y paginación de la memoria
2. Administración memoria segmentada Carga de segmentos a petición Aplicación: cargar segmentos cuando son referidos por primera vez En archivo ejecutable hay información sobre segmentos definidos por proceso: Identificación y localización en archivo Tipo Punto de entrada Tamaño Protección Al cargar ejecutable, cargador sólo define segmentos Al intentar ejecutar primera instrucción: primer fallo de segmento SO carga segmentos conforme van siendo referidos

26 Tema 11: Segmentación y paginación de la memoria
2. Administración memoria segmentada Carga de segmentos a petición Si memoria se llena: reemplazo Podemos ejecutar procesos que usen más memoria de la que físicamente disponemos (Memoria Virtual) 00…0 Si se llena la memoria, ante un fallo de segmento que no podamos cargar por no haber espacio, necesitamos algún criterio por el que quitar un segmento y usar su espacio para cargar el segmento recién referido Haz constar que esto es memoria virtual segmentada S1 S2 S3 S4 S5 S6 S7 FF…F

27 Tema 11: Segmentación y paginación de la memoria
2. Administración memoria segmentada Enlace dinámico Enlace= construcción de ejecutable a partir de ficheros compilados (ficheros objeto) Objetivo: reducir trabajo de montador de enlaces Tipos de enlace dinámico: Durante la carga En tiempo de ejecución Enlace durante la carga: En archivo ejecutable hay nombres simbólicos para segmentos y objetos: CALL [librería:rutina] Cargador sustituye nombres por descriptores y direcciones reales

28 Tema 11: Segmentación y paginación de la memoria
2. Administración memoria segmentada Enlace dinámico Enlace dinámico durante la ejecución (Ejemplo: MULTICS) 00…0 Las referencias a objetos en otros segmentos están definidas indirectamente mediante un puntero a una dirección que supuestamente contiene la dirección del objeto Si dicha dirección tiene levantado el bit de excepción de enlace: se produce excepción de enlace En dicho caso, la dirección no apunta al objeto, sino a una cadena en memoria con el nombre simbólico de segmento y objeto SO determina el indicador de segmento y el desplazamiento del objeto dentro del segmento Sustituye esta dirección lógica en la dirección intermedia, y baja bit de enlace Se reenlanza el acceso. A partir de este momento, al estar a 0 el bit de enlace, los siguientes accesos no provocarán excepción de enlace call … [100] 100 0 16:70 300 “seg:func” seg= 16 … 70 func: … …

29 Tema 11: Segmentación y paginación de la memoria
Índice: Segmentación Administración de memoria segmentada Paginación Administración de memoria paginada Sistemas combinados 29

30 Tema 11: Segmentación y paginación de la memoria
Espacio lógico de direcciones lineal Dividido de forma transparente en trozos de igual tamaño (páginas) Traductor divide las direcciones lógicas en nº de página desplazamiento (click) La dirección lógica está dividida en nº de página lógica y desplazamiento, y (click) la traducción a dirección física consiste en encontrar el número de página físico (nº de marco) correspondiente a dicha página lógica. Esto tiene como consecuencia (click) que el tanto espacio lógico como físico está dividido en páginas del mismo tamaño y la traducción consiste simplemente en encontrar la correspondencia (click) entre página y marco. Nótese (click) que consecuencia de ello es que todas las páginas son del mismo tamaño (2k), y además todas las páginas empiezan en una posición de memoria múltiplo de dicho tamaño (frontera de página). Espacio Lógico de Direcciones Espacio Físico de Direcciones 00…0 00…0 Dirección Lógica Página desplazamiento } 2k n k+1 k Traductor Dinámico de Páginas n k+1 k Marco desplazamiento FF…F FF…F Dirección Física 30

31 Tema 11: Segmentación y paginación de la memoria
Traducción de direcciones paginadas Organización de la tabla de páginas 31

32 Tema 11: Segmentación y paginación de la memoria
Traducción de direcciones paginadas Organización de la tabla de páginas 32

33 Tema 11: Segmentación y paginación de la memoria
3.1 Traducción de direcciones paginadas La traducción se lleva a cabo mediante una tabla de páginas Tabla de páginas se indexa por nº página y proporciona nº de marco Dirección Lógica Si se accede a una página no presente, la MMU genera un fallo de página. Es responsabilidad del SO localizar y cargar la página. El resto de cosas que puede haber en la tabla de página lo veremos en el próximo tema. Comenta que para que cada proceso pueda tener su conjunto de páginas lógicas, también puede existir una tabla de página local a cada proceso, y una tabla de páginas global. 2 desplazamiento Marco P 8 1 1204 12 - 1 2 3 12 desplazamiento Dirección Física 33

34 Tema 11: Segmentación y paginación de la memoria
Traducción de direcciones paginadas Organización de la tabla de páginas 34

35 Tema 11: Segmentación y paginación de la memoria
3.2 Organización de la tabla de páginas Tamaño de la tabla de páginas: determinado por… tamaño del espacio de direcciones tamaño de la página Si espacio de direcciones = 4Gb y tamaño de página = 4K: ¡1M entradas! Posibilidades: Tabla de páginas en el traductor Tabla de páginas en memoria Tabla de páginas multinivel Tablas de páginas para todo el sistema Traductores sin tabla de páginas El tamaño del espacio de direcciones es 2(nº de bits de direcciones) 35

36 Tema 11: Segmentación y paginación de la memoria
3.2 Organización de la tabla de páginas Tabla de páginas en el traductor Sólo es viable si hay pocas páginas En MMU: conjunto de registros indexados por nº de página Inconvenientes: SO debe sustituir tabla de páginas cada vez que… Se conmuta de procesos Se transfiere control al SO Comenta que el inconveniente se refiere al caso en que queramos que cada proceso pueda tener su propio conjunto de páginas. Lo más peligroso es lo segundo (cambiar tabla de páginas al transferirse control a SO) pues, por ejemplo, puede retrasar la atención de las interrupciones. Posible solución: dos conjuntos de registros Uno para sistema Otro para proceso activo 36

37 Tema 11: Segmentación y paginación de la memoria
3.2 Organización de la tabla de páginas Tabla de páginas en memoria La tabla se saca del traductor y almacena en memoria Traductor sólo contiene Dirección de primera entrada Tamaño de la tabla Como solución al doble acceso no es viable el uso de registros en MMU, ya que la paginación es transparente La memoria asociativa sí es solución, pues esta memoria también es transparente Mismo funcionamiento que con segmentación, pero: Al usarse más páginas que segmentos en cada región de código, el nº de entradas debe ser sensiblemente mayor Cuando se produce una conmutación de procesos, debe invalidarse la memoria asociativa Inconvenientes: Cada acceso a memoria: implica dos accesos Uno a tabla de páginas Otro a la dirección efectiva Solución: memoria asociativa 37

38 Tema 11: Segmentación y paginación de la memoria
3.2 Organización de la tabla de páginas Tabla de páginas multinivel Idea: paginar la tabla de páginas Facilita manipulación y almacenamiento de la tabla Ejemplo a dos niveles: Dirección Lógica Normalmente, tanto el directorio como las tablas de páginas ocupan una página. DP pagina NP desplazamiento Marco P 8 1 1204 12 - Dirección 0AFF00 100700 108800 FFA100 1 1 2 marco desplazamiento 2 3 Dirección Física 3 Tabla de páginas 38 Directorio

39 Tema 11: Segmentación y paginación de la memoria
3.2 Organización de la tabla de páginas Tabla de páginas multinivel Ventajas: Tabla de página no tiene por qué ser ocupar direcciones consecutivas Tabla de página no tiene por qué estar cargada completa en memoria Inconvenientes: Tiempo de acceso se multiplica por tres Solución: memoria asociativa 39

40 Tema 11: Segmentación y paginación de la memoria
3.2 Organización de la tabla de páginas Tabla de páginas para todo el sistema Son también multinivel MMU tiene dirección de una tabla que tiene una entrada por proceso y contiene dirección de tabla de páginas/directorio de dicho proceso: Igualmente, tanto la tabla de procesos como las tablas de páginas ocupan una página. Ante una conmutación de procesos, basta cambiar el PID  PID pagina desplazamiento Marco P 8 1 1204 12 - Dirección 0AFF00 100700 108800 FFA100 1 dir t.procs. 1 2 marco desplazamiento 2 3 Dirección Física 3 Tabla de páginas Tabla de procesos 40

41 Tema 11: Segmentación y paginación de la memoria
3.2 Organización de la tabla de páginas Tabla de páginas para todo el sistema Conmutar de tabla de proceso: cambiar PID Inconvenientes: Tiempo de acceso se multiplica por tres Solución: Memoria asociativa, indexada por PID + Nº de página PID:4 2 desplazamiento 4 5 2 0A00 6F10 B190 41

42 Tema 11: Segmentación y paginación de la memoria
3.2 Organización de la tabla de páginas Traductores sin tabla de páginas Hardware no impone estructura de tabla de páginas Hardware sólo dispone de memoria asociativa Si no se encuentra página en memoria asociativa: excepción SO es responsable de: determinar asociación entre nº de página y nº de marco Actualizar la memoria asociativa Ventajas: Flexibilidad: hardware no impone la organización de la TP Traductor se simplifica notablemente Parte del ahorro en hardware del traductor se puede invertir en aumentar el tamaño de la memoria asociativa Si se hace más grande la memoria asociativa, disminuirá el nº de búsquedas fallidas, que puede compensar la pérdida de eficiencia que implica hacer determinadas operaciones por programa en vez de por hardware Esto es propio de procesadores RISC Ejemplo: Procesadores MIPS (PlayStation 1 y 2, Sony PSP, Nintendo 64, etc.) 42

43 Tema 11: Segmentación y paginación de la memoria
Índice: Segmentación Administración de memoria segmentada Paginación Administración de memoria paginada Sistemas combinados 43

44 Tema 11: Segmentación y paginación de la memoria
4. Administración de memoria paginada Gestión: particiones variables, con importantes simplificaciones: Todos los marcos son iguales→ no hay que elegir No importa que marcos libres no estén consecutivos De especial interés: Elementos de administración Entrada/Salida y paginación Carga de páginas a petición 44

45 Tema 11: Segmentación y paginación de la memoria
4. Administración de la memoria paginada Elementos de administración Tabla de asignación de marcos a procesos Una entrada por marco En cada entrada: PID de proceso, si marco asignado 0, si marco libre Ayuda: conservar la posición de la primera/próxima entrada libre Ojo, una entrada por marco físico de memoria, que no por página lógica, como la tabla de páginas. Esta tabla lo que nos permite saber es dado un marco, a qué proceso está asignado Proceso PID1 PID2 Libre 1 Siguiente libre 2 3 4 45

46 Tema 11: Segmentación y paginación de la memoria
4. Administración de la memoria paginada Elementos de administración Listas de marcos asignados a procesos Nº de marcos es fijo: listas implementadas mediante tabla En cada entrada (una por marco): Siguiente marco en la lista -1, si marco es el último En PCB: índices del primer y último marco asignados a proceso Mediante estas listas podemos determinar dado un proceso qué páginas tiene asignadas, y qué páginas están libres El índice al último es para poder añadir marcos eficientemente en las listas La lista de marcos libres no necesita referencia al último porque se pueden añadir los marcos por el principio 2 3 6 PID1 7 -1 1 PCB proceso 1 2 primero Proceso 1: marcos 0, 2, 3, y 6 Libres: demás marcos 3 último 4 primero 5 Libres 6 46

47 Tema 11: Segmentación y paginación de la memoria
4. Administración de la memoria paginada Entrada/Salida y paginación Problema: buffers de lectura o escritura Ocupan direcciones lógicas consecutivas Pero las direcciones físicas son distintas, incluso no consecutivas Vamos a hacer una escriturita en disco de estos datos que tengo yo aquí… El problema es que los procesos ven un conjunto de direcciones (direcciones lógicas) que nada tienen que ver con las que ven los dispositivos (direcciones físicas) Direcciónes lógica inicial y final no coinciden con direcciones físicas Lo peor: buffer no tiene por qué ser consecutivo en espacio físico 00…0 00…0 FF…F 47 FF…F

48 Tema 11: Segmentación y paginación de la memoria
4. Administración de la memoria paginada Entrada/Salida y paginación Soluciones: Dado que entrada/salida es responsabilidad de SO, éste traduce y usa direcciones físicas ¿Y si el buffer ni siquiera ha quedado contiguo? SO programa varias operaciones, una por cada trozo de buffer en espacio físico Puede ser problemático para dispositivos de bloque Usar buffer contiguo en espacio de SO Que el DMA vea direcciones lógicas Será el caso si DMA y MMU integrados en CPU 48

49 Tema 11: Segmentación y paginación de la memoria
4. Administración de la memoria paginada Carga de páginas a petición Mediante bit de página presente: las páginas se pueden cargar cuando son referidas por primera vez Para cargar una página, sólo hay que asignarle un marco libre Si no quedan marcos libres: memoria virtual Elegir un marco que contenga una página que supongamos no vaya a hacer falta en futuro inmediato Sustituir dicha página por la recién referida ¿Memoria virtual segmentada o paginada? Comparemos por… Tamaño de las transferencias Complejidad de administración Operaciones de entrada/salida 49

50 Tema 11: Segmentación y paginación de la memoria
4. Administración de la memoria paginada Carga de páginas a petición MV segmentada vs paginada: tamaño de transferencias Paginación: Todas las transferencias de página del mismo tamaño (típicamente en torno a 4K) Segmentación: Distinto tamaño cada segmento Posibilidad de segmentos muy grandes Los tamaños de bloque de los discos suelen estar entre los 4 y 32K. 50

51 Tema 11: Segmentación y paginación de la memoria
4. Administración de la memoria paginada Carga de páginas a petición MV segmentada vs paginada: complejidad administración Paginación: Todos los marcos son iguales → cualquiera vale para cualquier página Segmentación: Hay que cargar el segmento en un hueco de tamaño suficiente Fragmentación del espacio libre Los tamaños de bloque de los discos suelen estar entre los 4 y 32K. 51

52 Tema 11: Segmentación y paginación de la memoria
4. Administración de la memoria paginada Carga de páginas a petición MV segmentada vs paginada: operaciones entrada/salida Problema: si hay memoria virtual, es posible que el segmento/página destino/fuente de una operación no esté presente Posible solución: Bloquear en memoria las páginas/segmentos que contienen los buffers de E/S Paginación: Las páginas bloqueadas son del orden de varios Kilobytes Segmentación: ¿Y si buffer está en un segmento de datos muy grande? 52

53 Tema 11: Segmentación y paginación de la memoria
Índice: Segmentación Administración de memoria segmentada Paginación Administración de memoria paginada Sistemas combinados 53

54 Tema 11: Segmentación y paginación de la memoria
5. Sistemas combinados Segmentación: es útil para los procesos Organización de datos, código… Mecanismos de protección Compartición de datos y código Optimización del espacio ocupado Paginación: es útil para el sistema operativo Memoria virtual Dispersión en memoria ¿Segmentación o paginación? ¡Ambos! Sistemas combinados: Segmentación paginada Segmentación y paginación independientes 54

55 Tema 11: Segmentación y paginación de la memoria
5. Sistemas combinados Segmentación paginada Cada segmento dividido en páginas En descriptor, en lugar de dirección base de segmento: dirección de tabla de páginas del segmento. Dirección Lógica indicador página desplazamiento Marco P 8 1 1204 12 - tabla tamaño r w x 7FFF 800 2000 1000 marco desplazamiento Dirección Física Tabla de páginas Tabla de segmentos 55

56 Tema 11: Segmentación y paginación de la memoria
5. Sistemas combinados Segmentación paginada Inconvenientes: Cada segmento debe empezar y acabar en frontera de página Tamaño del segmento: múltiplo del tamaño de página Segmentación y paginación independientes La paginación es transparente ¿y si pusiéramos un sistema paginado bajo un sistema segmentado?

57 Tema 11: Segmentación y paginación de la memoria
5. Sistemas combinados Segmentación y paginación independientes Ejemplo: arquitectura IA32 Dirección Lógica Segmentada directorio pagina desplazamiento selector desplazamiento 31 20 12 31 Tabla de descriptores de segmentos Directorio de páginas + Tabla de páginas dirección intermedia 31 marco desplazamiento NO ¿PG? SI 31 12 dirección física 31

58 Cala de Macarella, Menorca. Junio 2007.


Descargar ppt "Tema 11: Segmentación y Paginación de la Memoria"

Presentaciones similares


Anuncios Google