Vous êtes sur la page 1sur 58

Unidad 2: Gestin de Memoria

Tema 3, Gestin de Memoria:


3.1 Definiciones y tcnicas bsicas. 3.2 Gestin de memoria contigua: Particin, fragmentacin, algoritmos de ubicacin... 3.3 Paginacin: Estructura de la tabla de paginas, tabla de pg. invertida,... 3.4 Segmentacin y tcnicas combinadas.
Escuela Universitaria de Informtica (Segovia)

3.1 Definiciones y tcnicas bsicas.


Introduccin:
En la actualidad:
El coste de memoria ha descendido mucho. El tamao de la memoria principal ha crecido mucho.

Sin embargo nunca hay suficiente memoria principal para contener todos los programas y estructuras de datos. Una de las tareas principales del SO es gestionar la memoria que supone cargar y descargar bloques desde y hacia el almacenamiento secundario.

Escuela Universitaria de Informtica (Segovia)

3.1 Definiciones y tcnicas bsicas.


Introduccin: Definicin de Memoria.
Memoria: amplia tabla de datos, cada uno de ellos con su propia direccin (conjunto de celdas referenciables por medio de una direccin lineal) El tamao de esa tabla y los datos incluidos en ella dependen de cada arquitectura. Para que los programas puedan ser ejecutados, sus cdigos y sus datos deben de estar cargados en memoria principal. La informacin que es necesario almacenar se guarda en dispositivos de almacenamiento secundario (memoria secundaria). El SO (sistemas multitarea) tratar de repartir de forma eficiente la memoria para introducir tantos procesos como sea posible.
Escuela Universitaria de Informtica (Segovia) 3

3.1 Definiciones y tcnicas bsicas.


Introduccin: Localidad.
Los procesos se referencian y stas referencias, en un intervalo de tiempo, se agrupan, en un subconjunto de espacios de direcciones, llamado localidad. Localidad Espacial: Al referenciar una posicin de memoria, las posiciones (localidades) prximas tambin se ven referenciadas. Este hecho lo observamos en:
Ejecucin secuencial de cdigo. Colocacin prxima de las variables relacionadas. Acceso a estructuras de datos matriciales y pilas.

Localidad Temporal: Tras referenciar una posicin de memoria en t, probablemente vuelva a ser referenciada en t + t:
Formacin de ciclos. Subrutinas. Pilas.

Escuela Universitaria de Informtica (Segovia)

3.1 Definiciones y tcnicas bsicas.


Introduccin: Jerarqua de Memoria.
Organizacin jerrquica segn coste, velocidad y tamao. Nota: Son voltiles por encima de la memoria principal.

Escuela Universitaria de Informtica (Segovia)

3.1 Definiciones y tcnicas bsicas.


Introduccin: Gestor de Memoria.
Parte del SO encargada de asignar memoria a los procesos, tratar de repartir de forma eficiente la memoria para introducir tantos procesos como sea posible. Varios procesos podrn ejecutarse de forma concurrente teniendo en cuenta que:
La memoria desaprovechada debe de ser la menor posible.
Evitando fragmentacin. Memoria ocupada por varias copias de un mismo objeto. Memoria ocupada por las estructuras de datos necesarias para la operacin del gestor de memoria.

Debe de proporcionar proteccin y comparticin. No debe de perjudicar al rendimiento, debiendo minimizar:


Complejidad de los procesos en el tiempo. Procesos suplementarios (tiempos) de acceso a memoria. Escuela Universitaria de Informtica (Segovia) 6

3.1 Definiciones y tcnicas bsicas.


Gestin de la memoria principal:
Memoria principal: almacn de datos de acceso rpido, que son compartidos por la CPU y los dispositivos de E/S. Es el nico dispositivo de almacenamiento grande que la CPU puede direccionar y acceder directamente. Las instrucciones deben estar en la MP para que la CPU pueda ejecutarlas (es preciso cargar los programas en MP). El SO se encarga de las siguientes actividades relacionadas con la gestin de memoria:
Saber qu partes de la memoria se estn usando, cules estn libres y quin las est usando. Decidir qu procesos cargar en la memoria. Asignar y liberar espacio de memoria.
Escuela Universitaria de Informtica (Segovia)

3.1 Definiciones y tcnicas bsicas.


Requisitos de la gestin de memoria (Reubicacin):
Un problema asociado consiste en saber si un proceso puede residir en cualquier parte de la memoria fsica. Reubicacin:
El programador no conoce qu otros programas residirn en la memoria en el momento de la ejecucin. Mientras se est ejecutando el programa, puede que se descargue en el disco y que vuelva a la memoria principal, pero en una ubicacin distinta a la anterior (reubicacin). Se deben traducir las referencias a la memoria encontradas en el cdigo del programa a las direcciones fsicas reales.

Escuela Universitaria de Informtica (Segovia)

3.1 Definiciones y tcnicas bsicas.


Reubicacin, Vinculacin de direcciones:
Compilacin: Si en el momento de la compilacin se sabe en qu parte de la memoria va a residir el proceso, es posible generar cdigo absoluto. Carga: Si al compilar el programa no se sabe en qu parte de la memoria va a residir el proceso, el compilador deber generar cdigo reubicable. En este caso la vinculacin final se efectuar en el momento de la carga. Ejecucin: Si durante la ejecucin los procesos cambian de segmento, la vinculacin hay que realizarla durante la ejecucin.
Escuela Universitaria de Informtica (Segovia)

3.1 Definiciones y tcnicas bsicas.


Reubicacin, Direcciones lgicas/fsicas:
En qu momento (etapa) se realiza esta reubicacin?
Carga (enlazador o cargador) => Reubicacin esttica. Ejecucin (hardware) => Reubicacin dinmica.

Reubicacin dinmica:

- Direccin fsica: la que llega a la memoria. - Direccin lgica o virtual: la generada por la CPU. - El MMU (Unidad de Manejo de Memoria) es el dispositivo que traduce direcciones virtuales a fsicas.
Escuela Universitaria de Informtica (Segovia) 10

3.1 Definiciones y tcnicas bsicas.


Reubicacin, Carga dinmica:
Para que un proceso se ejecute:
Cdigo + Datos => Memoria fsica

Consecuencia:
Tamao de un proceso limitado al tamao de la memoria fsica.

Carga dinmica:
Las rutinas no se cargan hasta que se invocan (hasta que el programa llame a alguna rutina del mismo), mientras tanto permanecen en disco.
Escuela Universitaria de Informtica (Segovia)

11

3.1 Definiciones y tcnicas bsicas.


Reubicacin, Enlace dinmico:
Similar a la carga dinmica, pero efectuando el enlace en tiempo de ejecucin: bibliotecas dinmicas (DLL).
Las bibliotecas del sistema no se enlazan de forma esttica a los programas. Los programas incluyen un fragmento en la imagen por cada referencia a una rutina. Este fragmento permite localizar y en su caso cargar la rutina necesaria en tiempo de ejecucin. Una vez localizada la rutina, el fragmento se sustituye en la imagen por la direccin de la rutina.

Ejemplos de enlace dinmico:


UNIX: shared libraries (shlib) Windows: dynamic load libraries (dll).
Escuela Universitaria de Informtica (Segovia) 12

3.1 Definiciones y tcnicas bsicas.


Reubicacin, superposiciones o recubrimientos (overlays):
Se utiliza cuando un proceso es ms grande que el tamao de memoria que se le asigna. Muchos programas no necesitan todo el cdigo al mismo tiempo, sino que se ejecutan por fases.
Se mantiene en memoria slo lo que se necesita.

El programa se descompone en mdulos separados (recubrimientos), que se cargan en un rea de memoria al efecto. Si se carga un recubrimiento, borra al que se encontraba ya cargado. El programa de usuario es responsable de cargar recubrimientos segn se necesiten.
Escuela Universitaria de Informtica (Segovia)

13

3.1 Definiciones y tcnicas bsicas.


Intercambio (swapping):
Objetivo: Cuando un proceso queda bloqueado o en espera, la memoria que ocupa podra desasignrsele. Intercambio: Cuando un proceso pierde la CPU, se vuelca su imagen de la memoria al disco (swap out). Cuando se decide reanudar el proceso, se recupera su imagen del disco (swap in).

Escuela Universitaria de Informtica (Segovia)

14

3.1 Definiciones y tcnicas bsicas.


Intercambio (swapping):
Problemas:
Aumenta el tiempo de cambio de contexto. E/S que accede por DMA.

Mejoras:
Varios procesos en memoria. Intercambio un proceso mientras se ejecuta otro.

Qu se necesita para llevarlo a cabo?


Proceso intercambiador (tipo PMP). Criterios para elegir vctima (poltica de swapping out). Espacio en disco para almacenar la imagen de los procesos.
rea especfica para el intercambio (rea de swap). Ficheros de intercambio.

Criterios para gestionar el espacio de intercambio (poltica de gestin del rea de swap).
Escuela Universitaria de Informtica (Segovia) 15

3.1 Definiciones y tcnicas bsicas.


Requisitos de la gestin de memoria (Proteccin):
El cdigo de un proceso no puede hacer referencia a posiciones de memoria de otros procesos sin permiso. Es imposible comprobar las direcciones absolutas de los programas, puesto que se desconoce la ubicacin de un programa en la memoria principal. Debe comprobarse durante la ejecucin:
El sistema operativo no puede anticiparse a todas las referencias a la memoria que har un programa.

Escuela Universitaria de Informtica (Segovia)

16

3.1 Definiciones y tcnicas bsicas.


Requisitos de la gestin de memoria (Compartimiento):
Permite el acceso de varios procesos a la misma zona de la memoria principal. Nota: Es mejor permitir a cada proceso que acceda a la misma copia del programa, en lugar de tener cada uno su propia copia aparte.

Escuela Universitaria de Informtica (Segovia)

17

3.1 Definiciones y tcnicas bsicas.


Requisitos de la gestin de memoria (Org. lgica/fsica):
Organizacin lgica:
Los programas se organizan en mdulos. Los mdulos pueden escribirse y compilarse independientemente. Pueden otorgarse distintos grados de proteccin (slo lectura, slo ejecucin) a los mdulos. Compartir mdulos.

Organizacin fsica:
La memoria disponible para un programa y sus datos puede ser insuficiente:
Mediante superposicin varios mdulos son asignados a la misma regin de memoria.

El programador no conoce cunto espacio habr disponible.


Escuela Universitaria de Informtica (Segovia)

18

3.2 Gestin de memoria contigua.


Asignacin contigua:
La memoria principal debe dar cabida al SO y a los procesos de usuario. Generalmente se divide la memoria en dos particiones, una para el SO residente y otra para los procesos de usuario (se suele utilizar un registro base para proteger al SO).
Escuela Universitaria de Informtica (Segovia)

19

3.2 Gestin de memoria contigua.


Particiones de la memoria:
Particiones estticas, particiones de igual tamao:
Cualquier proceso cuyo tamao sea menor o igual que el tamao de la particin puede cargarse en cualquier particin libre. Si todas las particiones estn ocupadas, el sistema operativo puede sacar un proceso de una particin. Un programa puede que no se ajuste a una particin. El programador debe disear el programa mediante superposiciones. No requieren el uso de memoria virtual. Es una poltica de gestin de memoria que prcticamente ha quedado obsoleta. Ej: SO IBM OS/360 - 1964.
Escuela Universitaria de Informtica (Segovia)

20

3.2 Gestin de memoria contigua.


Particiones estticas:
El uso de la memoria principal es ineficiente. Cualquier programa, sin importar lo pequeo que sea, ocupar una particin completa. Este fenmeno se denomina fragmentacin interna.

Escuela Universitaria de Informtica (Segovia)

21

3.2 Gestin de memoria contigua.


Particiones estticas:
Particiones de igual tamao:
Puesto que todas las particiones son de igual tamao, no importa la particin que se use.

Particiones de distintos tamaos:


Pueden asignar cada proceso a la particin ms pequea en la que quepa. Hace falta una cola para cada particin. Los procesos estn asignados de forma que se minimiza la memoria desaprovechada dentro de cada particin.

Escuela Universitaria de Informtica (Segovia)

22

3.2 Gestin de memoria contigua.


Particiones estticas:
Presentan dos problemas:
El programa puede ser mayor que los espacios de la particin => diseo del programa para que slo una parte del programa est en la memoria principal en cada instante => Superposicin. Uso de la memoria principal ineficiente, cualquier programa aunque sea pequeo ocupar toda una particin => desaprovechamiento de memoria => Fragmentacin.

Escuela Universitaria de Informtica (Segovia)

23

3.2 Gestin de memoria contigua.


Fragmentacin:
Desaprovechamiento de memoria por haber realizado una mala particin. Puede ser de dos tipos:
Fragmentacin interna: Debida a la diferencia de tamaos entre la particin de memoria y el objeto residente en ella. Fragmentacin externa: Desaprovechamiento de memoria entre particiones.

Escuela Universitaria de Informtica (Segovia)

24

3.2 Gestin de memoria contigua.


Fragmentacin:
Algoritmo de ubicacin:

Escuela Universitaria de Informtica (Segovia)

25

3.2 Gestin de memoria contigua.


Fragmentacin (Algoritmo de ubicacin):
Si cada particin tuviera asociada una cola de planificacin de procesos (agrupando los procesos por tamaos) se minimiza la fragmentacin interna. Pero si hay muchos procesos de un mismo tamao pueden quedar particiones sin usar. Una nica cola de planificacin para todos los procesos: Cuando el proceso se va a cargar se selecciona la particin ms pequea disponible que pueda albergar el proceso.

Escuela Universitaria de Informtica (Segovia)

26

3.2 Gestin de memoria contigua.


Desventaja de las particiones estticas:
1. El nmero de particiones en el momento de la generacin del sistema limita el nmero de procesos activos en el sistema. 2. Puesto que los tamaos de las particiones se han programado previamente => los procesos pequeos hacen un uso muy ineficiente del espacio de las particiones.

Escuela Universitaria de Informtica (Segovia)

27

3.2 Gestin de memoria contigua.


Particiones Dinmicas:
Las particiones son variables en nmero y longitud. Cuando se carga un proceso en la memoria principal se le asigna exactamente tanta memoria como necesite. Finalmente, hay varios huecos en la memoria. Este fenmeno se denomina fragmentacin externa. Se debe usar la compactacin para desplazar los procesos que estn contiguos, de forma que toda la memoria libre quede junta en un bloque.
Escuela Universitaria de Informtica (Segovia) 28

3.2 Gestin de memoria contigua.


Efectos de la particin dinmica:

Escuela Universitaria de Informtica (Segovia)

29

3.2 Gestin de memoria contigua.


Efectos de la particin dinmica:

Escuela Universitaria de Informtica (Segovia)

30

3.2 Gestin de memoria contigua.


Solucin: Compactacin.
Para evitar esta fragmentacin el SO desplaza los procesos para que estn contiguos de forma que todos los espacios de memoria libre se agrupen en un bloque. Consume tiempo de procesado. Necesita la capacidad de reubicacin dinmica, es decir, poder mover un programa de una regin a otra de la memoria principal, sin invalidar las referencias a la memoria del programa.

Escuela Universitaria de Informtica (Segovia)

31

3.2 Gestin de memoria contigua.


Algoritmos de ubicacin con particiones dinmicas:
El SO debe decidir qu bloque libre se tiene que asignar al proceso. Ejemplos de algoritmos de ubicacin:
First Fit (Primer ajuste): Selecciona el primer bloque disponible de tamao suficientemente grande. Nota: Suele ser el ms eficiente. Best Fit (Mejor ajuste): Selecciona el bloque disponible de tamao ms prximo al solicitado. Next Fit (Siguiente ajuste): Desde la ltima ubicacin y elige el bloque disponible suficientemente grande. Nota: Necesidad de compactacin frecuente.

Escuela Universitaria de Informtica (Segovia)

32

3.2 Gestin de memoria contigua.


Algoritmos de ubicacin con particiones dinmicas:
Ejemplo: Asignacin en memoria de un bloque de 16M, mediante algoritmos de ubicacin.

Escuela Universitaria de Informtica (Segovia)

33

3.2 Gestin de memoria contigua.


Sistema de los colegas:
Sistema de los socios: Busca el equilibrio entre la ineficiencia de las particiones estticas y la complejidad de mantener las particiones dinmicas. El espacio entero disponible para la asignacin se trata como un solo bloque de tamao 2U. Si se hace una solicitud de tamao s tal que 2U-1<s<=2U, entonces el bloque entero se asigna:
En otro caso, el bloque se divide en dos colegas de igual tamao. Este proceso contina hasta que el bloque ms pequeo sea mayor o igual que s generndose.

Escuela Universitaria de Informtica (Segovia)

34

3.2 Gestin de memoria contigua.


Sistema de los colegas:

Escuela Universitaria de Informtica (Segovia)

35

3.2 Gestin de memoria contigua.


Reubicacin:
Cuando el proceso se carga en la memoria, se determina la ubicacin real (absoluta) de la memoria. Un proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones absolutas de la memoria durante su ejecucin (a partir de la carga). La compactacin tambin har que un programa ocupe una particin distinta, lo que significa que las ubicaciones absolutas de la memoria cambien.

Escuela Universitaria de Informtica (Segovia)

36

3.2 Gestin de memoria contigua.


Direcciones:
Direccin lgica:
Es una referencia a una posicin de memoria independiente de la asignacin actual de datos a la memoria. Se debe hacer una traduccin a una direccin fsica.

Direccin relativa:
La direccin se expresa como una posicin relativa a algn punto conocido.

Direccin fsica:
La direccin absoluta o la posicin real en la memoria principal.
Escuela Universitaria de Informtica (Segovia)

37

3.3 Paginacin.
Paginacin:
Solucin al problema de la fragmentacin externa. Idea fundamental:
Dividir la memoria fsica (principal) en bloques iguales de tamao fijo relativamente pequeos llamados marcos. La memoria lgica (procesos) se divide en bloques del mismo tamao llamados pginas. Ejecucin: Las pginas se cargan desde el almacenamiento auxiliar a un marco de memoria que est disponible.

El sistema operativo mantiene una tabla de pginas para cada proceso:


Muestra la posicin del marco de cada pgina del proceso. La direccin de la memoria consta de un nmero de pgina y de un desplazamiento dentro de la pgina.
Escuela Universitaria de Informtica (Segovia)

38

3.3 Paginacin.
Soporte hardware para la paginacin:
Cada direccin generada por la CPU se divide en:
Nmero de pgina p: ndice de la tabla de pginas. Desplazamiento en la pgina d.

Escuela Universitaria de Informtica (Segovia)

39

3.3 Paginacin.
Soporte hardware para la paginacin:
La direccin base de cada pgina (nmero de pgina) se combina con el desplazamiento para definir la direccin de memoria fsica. El SO controla la utilizacin de memoria mediante una tabla de marcos de pgina. El tamao de la pgina y del marco est definido por el hardware y suele ser una potencia de dos que vara entre los 512 B y los 16 MB. Cuando se utiliza paginacin las direcciones relativas y lgicas y coinciden. La paginacin puede producir fragmentacin interna.
Escuela Universitaria de Informtica (Segovia) 40

3.3 Paginacin.
Inconveniente: Fragmentacin interna.
Sucede cuando las necesidades de memoria de un proceso no coinciden con los tamaos de las pginas. Tamao de las pginas?
Pequeo:
Mejora la fragmentacin interna. Aumenta el tamao de la tabla de pginas.

Grande:
Peor desde el punto de vista de la fragmentacin interna. Tamao de las tablas de pginas menor. La E/S de disco es ms eficiente cuando la cantidad de datos transferidos es mayor.

Tendencia en los ltimos aos:


Aumentar el tamao a medida que los procesos, los conjuntos de datos y la memoria principal se han vuelto ms grandes. 2-4 KB. Escuela Universitaria de Informtica (Segovia) 41

3.3 Paginacin.
Estructura de la tabla de pginas:
Cada SO tiene sus propios mtodos para almacenar la TDP. Denominador comn:
Una tabla de pginas para cada proceso.

Cmo localiza el SO la TDP de un proceso?


BCP:
Contador de instrucciones, registros, informacin de E/S, etc, ... Y Puntero a la TDP.

Qu ocurre en un cambio de contexto?


Despachador cargar los registros con los valores del nuevo proceso. A partir de la TDP almacenada, cargar los valores correctos de la TDP en hardware.
Escuela Universitaria de Informtica (Segovia)

42

3.3 Paginacin.
Implementacin en hardware de la tabla de pginas:
Una TDP se implementa en el hardware como un conjunto de registros. Esquema de registros:
Problema: El empleo de registros para la TDP es satisfactorio si la tabla es razonablemente pequea. Solucin:
Mantener la TDP en memoria. Registro base de la tabla de pginas que apunta a la TDP: Cambio de contexto: ms rpido (slo cambiar el valor de este registro). Gran inconveniente: tiempo de traduccin. Escuela Universitaria de Informtica (Segovia)

43

3.3 Paginacin.
Implementacin en hardware de la tabla de pginas:
Solucin: usar un TLB (Translation Lookahead Buffer, o tabla de registros asociativos).
Pequeo cach especial en hardware. Cada registro consta de dos partes: clave y valor. Funcionamiento:
Se presenta una clave y, si encuentra alguna coincidencia, devuelve el valor correspondiente.

Permite bsquedas rpidas pero el hardware es costoso.

Escuela Universitaria de Informtica (Segovia)

44

3.3 Paginacin.
TLB:

Escuela Universitaria de Informtica (Segovia)

45

3.3 Paginacin.
TLB:
Funcionamiento: acceso posicin i
Obtiene el nmero de pgina donde se encuentra i. Si est en TLB => Obtenemos el marco de pgina donde se encuentra. Sino, acceso a la TDP y actualizar TLB.
Si TLB llena => Sustitucin de una de las existentes.

Ojo, cambio de contexto:


Desalojar (borrar) el TLB.

Tasa de aciertos:
Porcentaje de las veces que un nmero de pgina se encuentra en los registros asociativos. Buenas tasas de aciertos: 80% - 98%

Ejemplo: Intel 80486 => TLB de 32 entradas.


Sus fabricantes dicen que tiene una tasa de aciertos del 98%.
Escuela Universitaria de Informtica (Segovia) 46

3.3 Paginacin.
Proteccin:
Las pginas pueden tener asignados bits de proteccin (ej. lectura, escritura, ejecucin). Bit de validez/no validez
Indica si la pgina correspondiente est en el espacio de direcciones lgico del proceso y por tanto es vlida.

Sin embargo, un proceso casi nunca utiliza todo su intervalo de direcciones.


En este caso sera un desperdicio crear una TDP con entradas para todas las pginas del intervalo de direcciones.

Algunos sistemas: registro de longitud de la TDP


Indica el tamao de la TDP y se coteja con cada direccin lgica para asegurar que la direccin est en el intervalo vlido para el proceso.
Escuela Universitaria de Informtica (Segovia)

47

3.3 Paginacin.
Comparticin:
Varios procesos podran tener la misma memoria fsica apuntada en sus respectivas TDPs. La comparticin de cdigo exige que el cdigo sea reentrante, es decir, no puede modificarse a s mismo.

Escuela Universitaria de Informtica (Segovia)

48

3.3 Paginacin.
Paginacin multinivel:
Sistemas modernos => espacio de direcciones lgico muy grande (232 a 264) => la TDP crece demasiado. Problema: tamao de la TDP.
Por ejemplo, si el tamao de pgina es de 4k, un proceso podra requerir hasta 4Mb de espacio fsico para la TDP. Solucin: paginar la TDP teniendo varios niveles de pginas (ej: 80336).

Escuela Universitaria de Informtica (Segovia)

49

3.3 Paginacin.
Paginacin multinivel:
1. La MMU toma la parte asociada al n de pgina del primer nivel. 2. Busca de entrada de la TDP: Obteniendo el 2 nivel. 3. Busca la entrada de 2 nivel: Obtiene el marco de pgina. 4. Indexa el byte dentro del MP de memoria fsica.
Escuela Universitaria de Informtica (Segovia)

50

3.3 Paginacin.
Tabla de pginas invertida:
Problema: tamao que puede llegar a ocupar la TDP, ya que la TDP puede contener millones de entradas que podran consumir grandes cantidades de memoria. Idea: usar una tabla de pginas invertida.
Tiene una entrada por cada marco real de la memoria. Cada entrada consiste en la direccin virtual de la pgina almacenada en esa posicin de memoria real => slo hay una tabla de pginas en el sistema y slo tiene una entrada por cada pgina de memoria fsica.

Ventaja: Reduce la cantidad de memoria necesaria. Desventaja:


Tiempo de bsqueda en la tabla de pginas invertida. Soluciones:
Tabla de dispersin y Registros asociativos (cach). Escuela Universitaria de Informtica (Segovia) 51

3.4 Segmentacin.
Segmentacin:
Memoria como una coleccin de segmentos de tamao variable. Un espacio de direcciones lgico es una coleccin de segmentos, cada uno de ellos con nombre y longitud. Una direccin contiene el nombre del segmento y un desplazamiento. No es necesario que todos los segmentos de todos los programas tengan la misma longitud. Existe una longitud mxima de segmento. Como consecuencia del empleo de segmentos de distinto tamao, la segmentacin resulta similar a la particin dinmica.
Escuela Universitaria de Informtica (Segovia)

52

3.4 Segmentacin.
Hardware de segmentacin:
1. La MMU toma la parte asociada al n de segmento se busca en la TDS. 2. Se verifica si el desplazamiento est dentro de los lmites. 3. Indexa el byte dentro de la memoria fsica. Sumando el desplazamiento base.
Escuela Universitaria de Informtica (Segovia) 53

3.4 Segmentacin.
Hardware de segmentacin:
Una direccin lgica tiene dos partes:
Nmero de segmento: s => ndice de la tabla de segmentos. Desplazamiento dentro del segmento: d => entre 0 y el lmite (longitud) del segmento.

Proceso de traduccin: direccin lgica (s,d).


Se comprueba que s<RLTDS (Registro de longitud de la TDS). Se calcula la direccin de la entrada de la tabla de segmentos (Registro Base de la TDS + s) y se lee dicha entrada. Se coteja el desplazamiento con la longitud del segmento. Se calcula la direccin fsica del byte deseado como la suma de la base del segmento y el desplazamiento.
Escuela Universitaria de Informtica (Segovia)

54

3.4 Segmentacin.
Implementacin de la TDS:
La tabla de segmentos se puede colocar en registros rpidos o en memoria. (Una TDS que se mantiene en registros se puede consultar rpidamente). Si los programas manejan muchos segmentos, podemos tener un registro base de la tabla de segmentos, que apunta a la tabla de segmentos. Se puede usar un conjunto de registros como cach de entradas de la TDS.

Escuela Universitaria de Informtica (Segovia)

55

3.4 Segmentacin.
Ventajas de la segmentacin:
Proteccin y compartimiento:
Se puede establecer proteccin a nivel de segmentos: los segmentos de cdigo no se modifican. Un segmento puede compartirse haciendo que alguna entrada de la TDS de dos procesos distintos apunten al mismo segmento de memoria. La segmentacin produce fragmentacin externa. Puede utilizarse paginacin para encontrar memoria suficiente, o intentar ejecutar otros procesos ms pequeos, aunque tengan menor prioridad.

Escuela Universitaria de Informtica (Segovia)

56

3.4 Segmentacin.
Tcnica combinada: Segmentacin paginada.
Paginacin y segmentacin pueden combinarse (ej. 80386) con el fin de aprovechar las ventajas que ofrecen ambas polticas por separado.
Segmentacin: Flexibilidad y facilidad para la organizacin lgica. Paginacin: Mejorar el problema de la fragmentacin (importante para segmentos muy grandes).

Solucin => paginar los segmentos:


Las pginas evitan la fragmentacin. Simplificacin de la asignacin de memoria: Cualquier hueco libre ahora es vlido.
Escuela Universitaria de Informtica (Segovia) 57

3.4 Segmentacin.
Segmentacin paginada: Esquema de traduccin.
1. La MMU toma la parte asociada al n de Segmento y lo busca en la TDS. 2. Se verifica que el desplazamiento est dentro de los lmites. 3. Se obtiene la TDP de la TDS y se determina el MP. 4. Indexa el byte dentro del MP de la memoria fsica.

Escuela Universitaria de Informtica (Segovia)

58

Vous aimerez peut-être aussi