Está en la página 1de 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) 1
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) 2
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) 4
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) 5
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) 7
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) 8
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) 9
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

También podría gustarte