memorias

memorias
La tecnologia nos invade cada dia y debemos prepararnos para tal invasion

jueves, 7 de mayo de 2015

GESTION DE MEMORIA PRINCIPAL

Organización Interna De La 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
§  Forma estática o dinámica.
§  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.

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. 


           Cada partición es considerada como un único hueco donde se ubicará un único proceso. 
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.
 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 ExternaOcurre 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.


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