GESTION
DE MEMORIA PRINCIPAL
Una
memoria principal se compone de un conjunto de celdas básicas dotadas de una determinada
organización. Cada celda soporta un bit de información. Los bits se agrupan en
unidades direccionables denominadas palabras. La longitud de palabra la
determina el número de bits que la componen y constituye la resolución de la
memoria (mínima cantidad de información direccionable). La longitud de palabra
suele oscilar desde 8 bits (byte) hasta 64 bits.
Cada
celda básica es un dispositivo físico con dos estados estables (o
semi-estables) con capacidad para cambiar el estado (escritura) y determinar su
valor (lectura). Aunque en los primeros computadores se utilizaron los
materiales magnéticos como soporte de las celdas de memoria principal (memorias
de ferritas, de película delgada, etc.) en la actualidad sólo se utilizan los
materiales semiconductores.
La
organización y administración de la “memoria principal ”, “memoria primaria” o
“memoria real” de un sistema ha sido y es uno de los factores más importantes
en el diseño de los S. O.
Los
términos “memoria” y “almacenamiento” se consideran equivalentes.
Los
programas y datos deben estar en el almacenamiento principal para:
ü Poderlos
ejecutar.
ü Referenciarlos
directamente.
Se
considera “almacenamiento secundario” o “almacenamiento auxiliar” al
generalmente soportado en discos.
Los
hechos demuestran que generalmente los programas crecen en requerimientos de
memoria tan rápido como las memorias:
ü “Ley
de Parkinson parafraseada”: Los programas se desarrollan para ocupar toda la
memoria disponible para ellos.
ü La
parte del S. O. que administra la memoria se llama “administrador de la
memoria”:
ü Lleva
un registro de las partes de memoria que se están utilizando y de aquellas que
no.
ü Asigna
espacio en memoria a los procesos cuando estos la necesitan.
ü Libera
espacio de memoria asignada a procesos que han terminado.
Organización
del almacenamiento:
La
organización del almacenamiento es la forma de considerar el almacenamiento
principal, bajo los siguientes esquemas de organización:
- sistemas de usuario único
- multiprogramación con particiones fijas,
con traducción y carga con reubicación
- multiprogramación con particiones fijas,
con traducción y carga absoluta
- multiprogramación con particiones variables
- sistemas de intercambio de almacenamiento
Sea
cual sea el esquema de organización de la memoria que se adopte, hay que
decidir qué estrategias de deben utilizar para obtener un rendimiento óptimo de
la misma.
Históricamente el almacenamiento principal se ha
considerado como un recurso costoso, por lo cual su utilización debía
optimizarse. La memoria está dividida en primaria y secundaria. El traspaso de
información entre éstas es la preocupación más grande del sistema; esta
responsabilidad puede ser asignada al programador, pero esto sería una gran
pérdida de tiempo, por esto el sistema debe ocuparse de ello.
Por organización del almacenamiento se entiende la
manera de considerar este almacenamiento:
§ ¿Se coloca un solo programa de usuario o varios?
§ Si se encuentran varios programas de usuario:
ü ¿Se concede a cada uno la misma cantidad de espacio
o se divide el almacenamiento en porciones o “particiones” de
diferente tamaño?
ü ¿Se utilizará un esquema rígido de número y tamaño
de particiones o un esquema dinámico y adaptable?
ü ¿Se requerirá que los trabajos de los usuarios sean
diseñados para funcionar en una partición específica o se permitirá que se
ejecuten en cualquiera donde quepan?
ü ¿Se requerirá o no que cada trabajo sea colocado en
un bloque contiguo de memoria?
La Organización de almacenamiento
Realiza funciones en relación a:
§ Número
de usuarios en memoria
§ Cantidad
de procesos de un usuario
§ Almacenamiento
continuo o disperso
§ Los
programas deben almacenarse en un sitio específico o puede variar
ADMINISTRACIÓN
La administración de
almacenamiento define el
comportamiento de una forma de organización, también se define como: Serie de
estrategias diseñadas para obtener un rendimiento óptimo
Según
Andrew S. Tanenbaum-1994. La memoria principal es el lugar donde el CPU lee las
instrucciones a ejecutar, así como algunos datos a emplear. Una de las funciones básicas que debe
implementar un SO es la Administración de la Memoria para tener un control
sobre los lugares donde están almacenados los procesos y datos que actualmente
se están utilizando. Independientemente del esquema de organización hay que
decidir las estrategias que se utilizarán para optimizar el rendimiento. Se
refiere a los distintos métodos y operaciones que se encargan de obtener la
máxima utilidad de la memoria, organizando los procesos y programas que se
ejecutan de manera tal que se aproveche de la mejor manera posible el espacio
disponible.
Para
poder lograrlo, la operación principal que realiza es la de trasladar la
información que deberá ser ejecutada por el procesador, a la memoria principal.
Actualmente esta administración se conoce como Memoria Virtual ya que no es la
memoria física del procesador sino una memoria virtual que la representa. Entre
algunas ventajas, esta memoria permite que el sistema cuente con una memoria
más extensa teniendo la misma memoria real, con lo que esta se puede utilizar
de manera más eficiente. Y por supuesto, que los programas que son utilizados
no ocupen lugar innecesario.
Las
técnicas que existen para la carga de programas en la memoria son:
v Partición
fija: que es la división de la memoria libre en varias partes (de igual o
distinto tamaño)
v Partición
dinámica, que son las particiones de la memoria en tamaños que pueden ser
variables, según la cantidad de memoria que necesita cada proceso.
Entre
las principales operaciones que desarrolla la administración de memoria se
encuentran
1. La reubicación: Que consiste en trasladar
procesos activos dentro y fuera e la memoria principal para maximizar la
utilización del procesador
2. La protección: Son mecanismos que
protegen los procesos que se ejecutan de interferencias de otros procesos.
3. Uso compartido de códigos y datos: con lo
que el mecanismo de protección permite que ciertos procesos de un mismo
programa que comparten una tarea tengan memoria en común.
Independientemente
del esquema de organización hay que decidir las estrategias que se utilizarán
para optimizar el rendimiento.
Las
“estrategias de administración” deben considerar:
ü ¿Cuándo
se consigue un nuevo programa para colocar en la memoria?:
ü ¿Cuándo
el sistema lo pide específicamente o se intenta anticiparse a las peticiones?
ü ¿Dónde
se colocará el programa que se ejecutará a continuación?:
ü ¿Se
prioriza el tiempo de carga o la optimización en el uso del almacenamiento?
ü ¿Con
qué criterio se desplazarán programas?
JERARQUIA
DE ALMACENAMIENTO
Considera
las transferencias de información entre los diversos niveles de memoria
Los
niveles de almacenamiento incluyen:
v Almacenamiento
primario: memoria principal.
v Almacenamiento
secundario: discos, cintas, etc.
v Almacenamiento
“caché”: memoria muy veloz diseñada para aumentar la velocidad de ejecución de
los programas: Aloja la parte (instrucciones y datos) en ejecución de un
programa.
Los niveles de almacenamiento crean
“jerarquías de almacenamiento”: caché, almacenamiento primario, almacenamiento
secundario.
Al bajar en la jerarquía:
- Descienden
el costo y la velocidad.
- Aumenta
la capacidad.
“Espacio de direcciones”:
conjunto de todas las direcciones disponibles para un programa
Los programas y datos
necesitan estar en el almacenamiento principal para ser ejecutados o para poder
hacer referencia de ellos.
Los programas o datos que no
se necesitan de inmediato pueden guardarse en el almacenamiento secundario
hasta que se necesiten, y en ese momento se transfieren al almacenamiento
principal para ser ejecutados o hacer referencia a ellos.
Los sistemas con varios
niveles de almacenamiento requieren destinar recursos para administrar el
movimiento de programas y datos entre niveles
La memoria
caché o memoria de alta velocidad es mucho más rápida que el
almacenamiento principal. La memoria caché es extremadamente cara, por lo que
sólo se utilizan memorias caché relativamente pequeñas.
La
memoria caché introduce un nivel adicional de transferencia de información en
el sistema, los programas son traspasados de la memoria principal al caché
antes de su ejecución.
Los
programas en la memoria caché se ejecutan mucho más rápido que en la memoria
principal.
Al
utilizar memoria caché se espera que la sobrecarga que supone el traspaso de
programas de un nivel de memoria a otro sea mucho menor que la mejora en el
rendimiento obtenida por la posibilidad de una ejecución mucho más rápida en la
caché.
PARTICIONES
El
sistema operativo (S. O.) es el responsable de asignar memoria principal a los
procesos para que puedan ser ejecutados.
En
un modelo de memoria con asignación contigua, todo el espacio lógico de un
proceso (Código, Datos, Pila) ha de estar ubicado de forma
contigua en memoria principal, es decir en direcciones físicas consecutivas
Cuando un proceso finaliza libera la memoria ocupada.
Cuando un proceso finaliza libera la memoria ocupada.
Particiones
Múltiples de Memoria
En
este esquema, la memoria principal se encuentra dividida de forma lógica en
múltiples particiones de tamaño fijo.
El grado
máximo de multiprogramación (número máximo de procesos que pueden
ejecutarse concurremente) en estos sistemas es igual al número de particiones.
Un
proceso únicamente puede ser ubicado en una partición, si el tamaño de dicha
partición es igual o mayor que el de su espacio lógico.
El tamaño de las particiones no varía con la evolución de la memoria.
Particiones
Múltiples de Memoria con Múltiples Colas
Disponemos
de un conjunto de colas donde esperan los procesos para asignarles memoria.
Existen tantas colas como tamaños diferentes de particiones tenga la memoria.
Cada proceso es colocado en una cola u otra en función del tamaño de memoria que solicita.
Existen tantas colas como tamaños diferentes de particiones tenga la memoria.
Cada proceso es colocado en una cola u otra en función del tamaño de memoria que solicita.
Las
solicitudes de memoria para cada cola se satisfacen por orden de llegada (FIFO).
Los
procesos no abandonan su cola de solicitud mientras no se les asigne memoria.
Cuando
un proceso finaliza libera la partición de memoria que ocupaba y otro proceso
de dicha cola puede ser ubicado en ella.
FRAGMENTACIÓN DE MEMORIA
La fragmentación es generada cuando durante el
reemplazo de procesos quedan huecos entre dos o más procesos de manera no
contigua y cada hueco no es capaz de soportar ningún proceso de la lista de
espera.
Si
un proceso requiere m palabras en memoria principal para correr y se ejecutan
en una partición de n palabras, y si n es mayor que m la diferencia entre n-m
es una fragmentación interna.
Si
los programas no ocupan siempre todo el espacio disponible de memoria se
denomina fragmentación Interna.
La fragmentación interna viene dada por todos aquellos
espacios de memoria no utilizados en las particiones ocupadas por procesos cuyo
tamaño es inferior al de la partición que se le ha asignado.
Fragmentación
Externa. Ocurre cuando una
partición está disponible y no es usada, es decir es muy pequeña para que pueda
correr un proceso.
La fragmentación externa se puede reducir mediante la compactación para colocar toda la memoria libre en un solo gran bloque, pero esta sólo es posible si la relocalización es dinámica y se hace en tiempo de ejecución.
CONDENSACION
Unir o fusionar espacios o “huecos” adyacentes para
formar uno más grande.
Por ejemplo, si hay una
solicitud de usuario de 5k y en la
memoria hay disponibles 2 “huecos” contíguos pero uno es de 2k y el otro es 3k,
entonces, para poder atender ésa solicitud de usuario, se “unen” los 2 “huecos”
que formarían un sólo “hueco” de 5k, por tanto ahora si cabría la solicitud en
el “hueco” que hay disponible.
COMPACTACION
Una
solución para el problema de la fragmentación externa es la compactación. El
objetivo consiste en desplazar el contenido de la memoria para colocar junta
toda la memoria libre en un solo bloque de gran tamaño. Por ejemplo el
siguiente mapa de memoria de la Figura # 12, que puede
compactarse.
Los
tres huacos de 100K, 300K y 260K pueden compactarse en un hueco de 660K. La
compactación no siempre es posible. En la figura 12 se han movido los procesos
P4 y P3. Para que estos procesos puedan ejecutarse en sus nuevas posiciones,
hay que relocalizar todas las direcciones internas. Si la
relocalización es estática y se efectúa durante el ensamblado, o la carga,
la compactación sólo es posible si la relozalización es dinámica y se efectúa
en el momento de la ejecución.
Puede ocurrir que los agujeros (áreas libres) separados
distribuidos por todo el almacenamiento principal constituyan una cantidad
importante de memoria:
- Podría ser suficiente (el total global
disponible) para alojar a procesos encolados en espera de memoria.
- Podría no ser suficiente ningún área
libre individual (ver Figura 3.10).
La técnica de compresión
de memoria implica pasar todas las áreas ocupadas del almacenamiento a
uno de los extremos de la memoria principal:
- Deja un solo agujero grande de memoria
libre contigua.
- Esta técnica se denomina “recogida de residuos” (ver Figura 3.11).
Principales desventajas de
la compresión
Consume
recursos del sistema (ver Figura 3.12).
El
sistema debe detener todo mientras efectúa la compresión, lo que puede afectar
los tiempos de respuesta.
Implica
la relocalización (reubicación) de los procesos que se encuentran en la
memoria:
- La información de relocalización debe
ser de accesibilidad inmediata.
Una alta carga de trabajo
significa mayor frecuencia de compresión que incrementa el uso de recursos.
ESTRATEGIAS
DE COLOCACION
Las “estrategias de colocación” están relacionadas
con la determinación del lugar de la memoria donde se colocará (cargará un
programa nuevo.
Se utilizan para determinar el lugar de la
memoria donde serán colocados los programas y datos que van llegando y se
las clasifica de la siguiente manera:
- “Estrategia
de mejor ajuste”:
- Un trabajo
nuevo es colocado en el agujero en el cual quepa de forma más ajustada:
- Debe
dejarse el menor espacio sin usar.
- “Estrategia
de primer ajuste”:
- Un trabajo
nuevo es colocado en el primer agujero disponible con tamaño suficiente
para alojarlo.
- “Estrategia
de peor ajuste”:
- Consiste en
colocar un programa en el agujero en el que quepa de la peor manera, es
decir en el más grande posible:
- El agujero
restante es también grande para poder alojar a un nuevo programa
relativamente grande.
Las estrategias de colocación determinan en qué
lugar del almacenamiento primario se debe colocar una página o segmento
entrante.
NOTA:
Esto es trivial, porque una página o segmento entrante se puede ubicar en
cualquier marco de página disponible.
ADMINISTRACION DE MEMORIA VIRTUAL
Es un método mediante el cual, un sistema operativo
simula tener más memoria principal que la que existe físicamente. Para
implementar la memoria virtual se utiliza un medio de almacenamiento secundario
de alta velocidad de acceso, generalmente en disco duro de la máquina. Un
sistema de memoria virtual se implementa utilizando paginación como método de
administración de memoria básica y algún mecanismo de intercambio (para
descargar páginas de la memoria principal hacia el disco duro y para cargar
esas páginas de nuevo a la memoria).
La memoria virtual es una técnica para proporcionar
la simulación de un espacio de memoria mucho mayor que la memoria física de una
máquina. Esta “ilusión” permite que los programas se hagan sin tener en cuenta
el tamaño exacto de la memoria física. La ilusión de la memoria virtual esta
soportada por el mecanismo de traducción de memoria, junto con una gran
cantidad de almacenamiento rápido en disco duro. Así en cualquier momento el
espacio de direcciones virtual hace un seguimiento de tal forma que una pequeña
parte del, está en memoria real y el resto almacenado en el disco, y puede ser
referenciado fácilmente.
ESPACIOS DE DIRECCIONES LOGICAS VS FISICAS
Espacio de direcciones lógico: conjunto de direcciones
lógicas o virtuales generadas por un programa
Espacio de direcciones físico: conjunto de direcciones
físicas correspondientes a las direcciones lógicas en un instante dado
PAGINACION
En la gestión de memoria con intercambio, cuando
había que pasar un proceso a ejecución, era necesario traer el proceso entero
de disco a memoria principal.
Con memoria virtual hemos dicho que no se trae todo el proceso, sino que cuando se hace referencia a una dirección de memoria virtual cuya correspondiente memoria física reside en disco, se trae el contenido de disco a RAM.
¿Quiere esto decir que la unidad de intercambio de memoria es el byte? Si lo fuera, daría lugar a que continuamente se estuviesen generando operaciones de E/S, lo cual sería poco eficaz. Claramente, parece más conveniente utilizar bloques más grandes, para aprovechar de manera más eficiente cada operación de E/S.
Con memoria virtual hemos dicho que no se trae todo el proceso, sino que cuando se hace referencia a una dirección de memoria virtual cuya correspondiente memoria física reside en disco, se trae el contenido de disco a RAM.
¿Quiere esto decir que la unidad de intercambio de memoria es el byte? Si lo fuera, daría lugar a que continuamente se estuviesen generando operaciones de E/S, lo cual sería poco eficaz. Claramente, parece más conveniente utilizar bloques más grandes, para aprovechar de manera más eficiente cada operación de E/S.
Características
de la paginación
- El espacio de
direcciones lógico de un proceso puede ser no contiguo.
- Se divide la
memoria física en bloques de tamaño fijo llamados marcos (frames).
- Se divide la
memoria en bloques de tamaño llamados páginas.
- Se mantiene
información en los marcos libres.
- Para correr
un programa de en páginas de tamaño, se necesitan encontrar n marcos y
cargar el programa.
- Se establece
una tabla de páginas para trasladar las direcciones lógicas a físicas.
- Se produce
fragmentación interna.
Ventajas
de la paginación
- Es posible
comenzar a ejecutar un programa, cargando solo una parte del mismo en
memoria, y el resto se cargara bajo la solicitud.
- No es
necesario que las paginas estén contiguas en memoria, por lo que no se
necesitan procesos de compactación cuando existen marcos de páginas libres
dispersos en la memoria.
- Es fácil
controlar todas las páginas, ya que tienen el mismo tamaño.
- El mecanismo
de traducción de direcciones (DAT) permite separar los conceptos de
espacio de direcciones y espacios de memoria. Todo el mecanismo es
transparente al usuario.
Desventajas
de la paginación
- El costo de
hardware y software se incrementa, por la nueva información que debe
manejarse y el mecanismo de traducción de direcciones necesario. Se
consumen muchos más recursos de memoria, tiempo en el CPU para su
implantación.
- Se deben
reservar áreas de memoria para las PMT de los procesos. Al no ser fijo el
tamaño de estas, se crea un problema semejante al de los programas (cómo
asignar un tamaño óptimo sin desperdicio de memoria, u ovearhead del
procesador).
SEGMENTACIÓN
Es un esquema de manejo de memoria mediante el cual
la estructura del programa refleja su división lógica, llevándose a cabo una
agrupación lógica de la información en bloques de tamaño variable denominados
segmentos. Cada uno de ellos tienen información lógica del programa: subrutina,
arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una
colección de segmentos, que generalmente reflejan la división lógica del
programa.
Objetivos:
- Modularidad de programas: Cada rutina del programa puede ser un bloque sujeto a cambios y
recopilaciones, sin afectar por ello al resto del programa.
- Estructuras de datos de largo variable: Ejm. Stack, donde cada estructura tiene su
propio tamaño y este puede variar.
- Protección: Se
pueden proteger los módulos del segmento contra accesos no
autorizados.
- Compartición: Dos o más procesos pueden ser un mismo segmento, bajo reglas de
protección; aunque no sean propietarios de los mismos.
- Enlace dinámico entre segmentos: Puede evitarse realizar todo el proceso de enlace antes de
comenzar a ejecutar un programa. Los enlaces se establecerán sólo cuando
sea necesario.
Ventajas
de la segmentación
El
esquema de segmentación ofrece las siguientes ventajas:
- El programador puede conocer las
unidades lógicas de su programa, dándoles un tratamiento particular.
- Es posible compilar módulos
separados como segmentos el enlace entre los segmentos puede suponer hasta
tanto se haga una referencia entre segmentos.
- Debido a que es posible separar
los módulos, se hace más fácil la modificación de los mismos. Cambios
dentro de un módulo no afecta al resto de los módulos.
- Es fácil el compartir
segmentos.
- Es posible que los segmentos
crezcan dinámicamente según las necesidades del programa en
ejecución.
- Existe la posibilidad de definir
segmentos que aún no existan. Así, no se asignará memoria, sino a partir
del momento que sea necesario hacer usos del segmento. Un ejemplo de esto,
serían los arreglos cuya dimensión no se conoce hasta tanto no se comienza
a ejecutar el programa. En algunos casos, incluso podría retardar la
asignación de memoria hasta el momento en el cuál se referencia el arreglo
u otra estructura de datos por primera vez.
PAGINACION POR DEMANDA
Las paginas son cargadas por demanda, no se llevan
páginas del almacenamiento secundario al primario hasta que son referenciadas
explícitamente por un proceso en ejecución.
Las
razones del atractivo de esta estrategia son:
v Los resultados de computabilidad, en especial el “problema
de parada”, indican que el camino que tomará la ejecución de un
programa no se puede predecir con exactitud.
v Garantiza que solo las páginas que necesita el
proceso sean traídas al almacenamiento principal.
v La sobrecarga de proceso para decidir qué página
traer al almacenamiento principal es mínima.
v El principal inconveniente está en los procesos que
requieren acumular sus páginas una por una:
v Los tiempos de espera de páginas son considerables.
- Es creciente
la cantidad de almacenamiento primario afectada al proceso que espera
páginas, por lo que el “producto espacio - tiempo” se
incrementa.
El “producto
espacio - tiempo” indica la cantidad de almacenamiento que usa un
proceso y la cantidad de tiempo que lo usa.
“La reducción del producto
espacio - tiempo de las esperas de páginas de un proceso es una meta importante
de las estrategias de administración del almacenamiento” (ver Figura 3.38).
FALLO DE PÁGINA
Un fallo de página es la secuencia de eventos que
ocurren cuando un programa intenta acceder a datos (o código) que está en su
espacio de direcciones, pero que no está actualmente ubicado en la RAM del
sistema. El sistema operativo debe manejar los fallos de página haciendo
residentes en memoria los datos accedidos, permitiendo de esta manera que el
programa continue la operación como que si el fallo de página nunca ocurrió.
En el caso de nuestra aplicación hipotética, el CPU
primeramente presenta la dirección deseada (12374) al MMU. Sin embargo, el MMU
no tiene traducción para esta dirección. Por tanto, interrumpe al CPU y causa
que se ejecute un software, conocido como el manejador de fallos de página. El
manejador de fallos de página determina lo que se debe hacer para resolver esta
falla de página. El mismo puede:
Encontrar dónde reside la página deseada en disco y
la lee (este es usualmente el caso si el fallo de página es por una página de
código)
Determina que la página deseada ya está en RAM
(pero no está asignada al proceso actual) y reconfigura el MMU para que apunte
a el
Apunta a una página especial que solamente contiene
ceros y asigna una nueva página para el proceso solamente si este intenta
alguna vez escribir a la página especial (esto se llama una página de copia en
escritura y es utilizada a menudo por páginas que contienen datos inicializados
a cero)
Obtener la página deseada desde otro lugar (lo que
se discute en detalle más adelante)
Mientras que las primeras tres acciones son
relativamente sencillas, la última no lo es. Por eso necesitamos cubrir algunos
tópicos
SEGMENTACION PAGINADA
Paginación y segmentación son
técnicas diferentes, cada una de las cuales busca brindar las ventajas
enunciadas anteriormente.
Para la segmentación se necesita
que estén cargadas en memoria áreas de tamaños variables. Si se requiere cargar
un segmento en memoria que antes estuvo en ella y fue removido a memoria
secundaria, se necesita encontrar una región de la memoria lo suficientemente
grande para contenerlo, lo cual no es siempre factible. En cambio recargar una
página implica sólo encontrar un marco de página disponible.
A nivel de paginación, si quiere
referenciar en forma cíclica n páginas, estas deberán ser cargadas una a una,
generándose varias interrupciones por fallas de páginas. Bajo segmentación,
esta página podría conformar un sólo segmento, ocurriendo una sola interrupción
por falla de segmento. No obstante, si bajo segmentación se desea acceder un
área muy pequeña dentro de un segmento muy grande, este deberá cargarse Completamente
en memoria, desperdiciándose memoria. Bajo paginación sólo se cargará la página
que contiene los ítems referenciados.
Puede hacerse una combinación de segmentación y
paginación para obtener las ventajas de ambas. En lugar de tratar un segmento
como una unidad contigua, éste puede dividirse en páginas. Cada segmento puede
ser descrito por su propia tabla de páginas.
Las direcciones tienen tres componentes: (s, p, d),
donde la primera indica el número del segmento, la segunda el número de la
página dentro del segmento y la tercera el desplazamiento dentro de la página.
Se deberán usar varias tablas:
- SMT
(tabla de mapas de segmentos): Una para cada proceso. En cada entrada de la SMT
se almacena la información descrita bajo segmentación pura, pero en el campo de
dirección se indicara la dirección de la PMT (tabla de mapas de páginas) que
describe a las diferentes páginas de cada segmento.
- PMT
(tabla de mapas de páginas): Una por segmento; cada entrada de la PMT describe
una página de un segmento, en la forma que se presentó la pagina pura.
- TBM
(tabla de bloques de memoria): Para controlar asignación de páginas por parte
del sistema operativo.
- JT
(tabla de Jobs): Que contiene las direcciones de comienzo de cada una de las
SMT de los procesos que se ejecutan en memoria.
: "Times New Roman"; mso-fareast-language: ES-VE;">Ventajas
de la segmentación paginada:
·
El
esquema de segmentación paginada tiene todas las ventajas de la segmentación y
la paginación:
·
Debido
a que los espacios de memorias son segmentados, se garantiza la facilidad de
implantar la compartición y enlace.
·
Como los
espacios de memoria son paginados, se simplifican las estrategias de
almacenamiento.
·
Se
elimina el problema de la fragmentación externa y la necesidad de compactación.
Desventajas
de la segmentación paginada:
·
Los tres
componentes de la dirección y el proceso de formación de direcciones hace que
se incremente el costo de su implantación. El costo es mayor que en el caso de
de segmentación pura o paginación pura.
·
Se hace
necesario mantener un número mayor de tablas en memoria, lo que implica un
mayor costo de almacenamiento.
·
Sigue
existiendo el problema de fragmentación interna de todas -o casi todas- las
páginas finales de cada uno de los segmentos. Bajo paginación pura se
desperdicia sólo la última página asignada, mientras que bajo segmentación
paginada el desperdicio puede ocurrir en todos los segmentos asignados.
PAGINACION SEGMENTADA
Las direcciones virtuales se
componen de 3 partes: segmento,
página y desplazamiento.
· El segmento sirve para indizarse en una
tabla de segmentos en la cual se encuentra la longitud y dirección de la tabla
de páginas.
· La página sirve para indizarse en la
tabla de páginas, en donde se encuentra la dirección de la página
correspondiente; se puede llegar a la dirección en memoria real.
Las estrategias para la administración de sistemas
de almacenamiento virtual condicionan la conducta de los sistemas de
almacenamiento virtual que operan según esas estrategias.
Se consideran las siguientes estrategias:
“Estrategias de búsqueda”:
Tratan de los casos en que una página o segmento
deben ser traídos del almacenamiento secundario al primario.
Las estrategias de “búsqueda por demanda” esperan a
que se haga referencia a una página o segmento por un proceso antes de traerlos
al almacenamiento primario.
Los esquemas de “búsqueda anticipada” intentan
determinar por adelantado a qué páginas o segmentos hará referencia un proceso
para traerlos al almacenamiento primario antes de ser explícitamente
referenciados.
“Estrategias de colocación”:
Tratan del lugar del almacenamiento primario donde
se colocará una nueva página o segmento.
Los sistemas toman las decisiones de colocación de
una forma trivial ya que una nueva página puede ser colocada dentro de
cualquier marco de página disponible.
“Estrategias de reposición”:
Tratan de la decisión de cuál página o segmento
desplazar para hacer sitio a una nueva página o segmento cuando el
almacenamiento primario está completamente comprometido.
No hay comentarios.:
Publicar un comentario