ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Administracion De La Memoria


Enviado por   •  14 de Septiembre de 2014  •  4.277 Palabras (18 Páginas)  •  165 Visitas

Página 1 de 18

Administración de la Memoria

Introducción al Almacenamiento Real

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 y Administración del Almacenamiento

Organización del Almacenamiento

Históricamente el almacenamiento principal se ha considerado como un recurso costoso, por lo cual su utilización debía optimizarse .

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:

o ¿ se concede a cada uno la misma cantidad de espacio o se divide el almacenamiento en porciones o “particiones” de diferente tamaño ?.

o ¿ se utilizará un esquema rígido de número y tamaño de particiones o un esquema dinámico y adaptable ?.

o ¿ 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 ?.

o ¿ se requerirá o no que cada trabajo sea colocado en un bloque contiguo de memoria ?.

Administración del Almacenamiento

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 ?:

o ¿ cuando 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 ?:

o ¿ se prioriza el tiempo de carga o la optimización en el uso del almacenamiento ?.

• ¿ con qué criterio se desplazarán programas ?.

Jerarquía de Almacenamiento

Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o ser referenciados .

Los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario.

El almacenamiento principal es más costoso y menor que el secundario pero de acceso más rápido.

Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre niveles (ver Figura 3.1 ).

Un nivel adicional es el “caché” o memoria de alta velocidad, que posee las siguientes características:

• Es más rápida y costosa que la memoria principal.

• Impone al sistema un nivel más de traspaso:

o Los programas son traspasados de la memoria principal al caché antes de su ejecución.

• Los programas en la memoria caché ejecutan mucho más rápido que en la memoria principal.

• Al utilizar memoria caché se espera que:

o 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é.

Estrategias de Administración del Almacenamiento

Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento principal .

Se dividen en las siguientes categorías:

• Estrategias de búsqueda:

o Estrategias de búsqueda por demanda.

o Estrategias de búsqueda anticipada.

• Estrategias de colocación.

• Estrategias de reposición.

Las “estrategias de búsqueda” están relacionadas con el hecho de cuándo obtener el siguiente fragmento de programa o de datos para su inserción en la memoria principal.

En la “búsqueda por demanda” el siguiente fragmento de programa o de datos se carga al almacenamiento principal cuando algún programa en ejecución lo referencia.

Se considera que la “búsqueda anticipada” puede producir un mejor rendimiento del sistema.

Las “estrategias de colocación” están relacionadas con la determinación del lugar de la memoria donde se colocará (cargará) un programa nuevo.

Las “estrategias de reposición” están relacionadas con la determinación de qué fragmento de programa o de datos desplazar para dar lugar a los programas nuevos.

Asignación Contigua de Almacenamiento Versus No Contigua

En la “asignación contigua” cada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento.

En la “asignación no contigua” un programa se divide en varios bloques o “segmentos” que pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que es más compleja pero más eficiente que la asignación continua.

Asignación Contigua de Almacenamiento de Un Solo Usuario

Se consideran S. O. que ya poseen desarrollado el “sistema de control de entrada / salida”: IOCS: input / output control system (ver Figura 3.2 ).

El tamaño de los programas está limitado por la cantidad de memoria principal, pero se puede superar este límite con técnicas de “recubrimientos”, con las siguientes características (ver Figura 3.3 ):

• Si una sección particular del programa ya no es necesaria, se carga otra sección desde el almacenamiento secundario ocupando las áreas de memoria liberadas por la sección que ya no se necesita.

• La administración manual por programa del recubrimiento es complicada y dificulta el desarrollo y el mantenimiento.

Protección en los sistemas de un solo usuario

El usuario tiene un completo control sobre la totalidad del almacenamiento principal:

• El almacenamiento se divide en porciones que contienen el S. O., el programa del usuario y una porción sin usar.

• El programa del usuario podría destruir áreas del S. O. que podrían:

o Detener el sistema.

o Producir salidas erróneas.

• El S. O. debe estar protegido contra el proceso usuario:

o La protección se instrumenta mediante un “registro de límites” incorporado a la cpu:

 Contiene la dirección de la instrucción más alta utilizada por el S. O.

 Si se intenta ingresar al S. O. la instrucción es interceptada y el proceso finaliza.

Procesamiento por lotes de flujo único

Los sistemas de un solo usuario se dedican a un trabajo durante más tiempo del que toma su ejecución.

Los trabajos requieren de:

• “tiempo de instalación”: el necesario para preparar el entorno operativo requerido.

• “tiempo de descarga”: el necesario para desmontar el entorno operativo que fue requerido.

Durante la instalación y descarga de los trabajos la cpu no está ejecutando dichos trabajos requeridos, por lo cual:

• Automatizar la “transición de trabajo a trabajo” reduce la cantidad de tiempo perdido entre trabajos.

• Surgieron los sistemas de “procesamiento por lotes”.

En el “procesamiento por lotes de flujo único” los trabajos se agrupan en “lotes” encolándose para su ejecución.

El “procesador de flujos de trabajos”:

• Lee las instrucciones del “lenguaje de control de trabajos”.

• Facilita la preparación del trabajo siguiente.

• Emite instrucciones al operador del sistema.

• Automatiza funciones anteriormente manuales.

• Cuando finaliza un trabajo efectúa las “operaciones de mantenimiento” apropiadas para facilitar la transición del siguiente trabajo.

Multiprogramación de Partición Fija

Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a que (ver Figura 3.4 ):

• Cuando ocurre una petición de e / s la cpu normalmente no puede continuar el proceso hasta que concluya la operación de e / s requerida.

• Los periféricos de e / s frenan la ejecución de los procesos ya que comparativamente la cpu es varios órdenes de magnitud más rápida que los dispositivos de e / s.

Los sistemas de “multiprogramación” permiten que varios procesos usuarios compitan al mismo tiempo por los recursos del sistema:

• Un trabajo en espera de e / s cederá la cpu a otro trabajo que esté listo para efectuar cómputos.

• Existe paralelismo entre el procesamiento y la e / s.

• Se incrementa la utilización de la cpu y la capacidad global de ejecución del sistema.

• Es necesario que varios trabajos residan a la vez en la memoria principal.

Multiprogramación de Partición Fija: Traducción y Carga Absolutas

Las “particiones” del almacenamiento principal:

• Son de tamaño fijo.

• Alojan un proceso cada una.

• La cpu se cambia rápidamente entre los procesos creando la ilusión de simultaneidad.

Los trabajos se traducían con ensambladores y compiladores absolutos para ser ejecutados solo dentro de una partición específica (ver Figura 3.5 ).

El S. O. resulta de implementación relativamente sencilla pero no se optimiza la utilización de la memoria.

Multiprogramación de Partición Fija: Traducción y Carga Relocalizables

Los compiladores, ensambladores y cargadores de relocalización:

• Se usan para producir programas relocalizables que puedan ser ejecutados en cualquier partición disponible de tamaño suficiente para aceptarlos (ver Figura 3.6 ).

• Son más complejos que los absolutos.

• Mejoran la utilización del almacenamiento.

• Confieren más flexibilidad en el armado de la carga de procesos.

Protección en los Sistemas de Multiprogramación

Si se utiliza asignación contigua de memoria la protección suele implementarse con varios “registros de límites” (ver Figura 3.7 y Figura 3.8 ).

Los extremos superior e inferior de una partición pueden ser:

• Delineados con dos registros.

• Indicados el límite inferior o superior y el tamaño de la partición o región.

Fragmentación en la Multiprogramación de Partición Fija

La “fragmentación de almacenamiento” ocurre en todos los sistemas independientemente de su organización de memoria.

En los S. O. de multiprogramación de partición fija la fragmentación se produce cuando:

• Los trabajos del usuario no llenan completamente sus particiones designadas.

• Una partición permanece sin usar porque es demasiado pequeña para alojar un trabajo que está en espera.

Multiprogramación de Partición Variable

Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio disponible de memoria (ver Figura 3.9 ).

No hay límites fijos de memoria, es decir que la partición de un trabajo es su propio tamaño.

Se consideran “esquemas de asignación contigua”, dado que un programa debe ocupar posiciones adyacentes de almacenamiento.

Los procesos que terminan dejan disponibles espacios de memoria principal llamados “agujeros”:

• Pueden ser usados por otros trabajos que cuando finalizan dejan otros “agujeros” menores.

• En sucesivos pasos los “agujeros” son cada vez más numerosos pero más pequeños, por lo que se genera un desperdicio de memoria principal.

Combinación de agujeros (áreas libres)

Consiste en fusionar agujeros adyacentes para formar uno sencillo más grande.

Se puede hacer cuando un trabajo termina y el almacenamiento que libera tiene límites con otros agujeros.

Compresión o Compactación de Almacenamiento

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 Colocación del Almacenamiento

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”:

o 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”:

o Un trabajo nuevo es colocado en el primer agujero disponible con tamaño suficiente para alojarlo.

• “Estrategia de peor ajuste”:

o 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.

Multiprogramación con Intercambio de Almacenamiento

En el esquema de “intercambio” los programas del usuario no requieren permanecer en la memoria principal hasta su terminación .

Una variante consiste en que un trabajo se ejecuta hasta que ya no puede continuar:

• Cede el almacenamiento y la cpu al siguiente trabajo.

• La totalidad del almacenamiento se dedica a un trabajo durante un breve período de tiempo.

• Los trabajos son “intercambiados”, dándose que un trabajo puede ser intercambiado varias veces antes de llegar a su terminación.

Es un esquema razonable y eficiente para un número relativamente reducido de procesos de usuarios.

Los sistemas de intercambio fueron los predecesores de los sistemas de paginación.

El rendimiento de los sistemas de intercambio mejora al reducir el tiempo de intercambio:

• Manteniendo al mismo tiempo varias “imágenes de usuario o imágenes de memoria” en la memoria principal.

• Retirando una imagen de usuario de la memoria principal solo cuando es necesario su almacenamiento para una nueva imagen.

• Incrementando la cantidad de memoria principal disponible en el sistema.

Las imágenes de usuario (imágenes de memoria) retiradas del almacenamiento principal se graban en el almacenamiento secundario (discos).

Introducción a la Organización del Almacenamiento Virtual

“Almacenamiento virtual ” significa la capacidad de direccionar un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de determinado sistema de computación .

Esta tecnología apareció en 1960 en la Universidad de Manchester (Inglaterra), en el sistema “Atlas”.

Los métodos más comunes de implementación son mediante:

• Técnicas de “paginación”.

• Técnicas de “segmentación”.

• Una combinación de ambas técnicas.

Las direcciones generadas por los programas en su ejecución no son, necesariamente, aquellas contenidas en el almacenamiento primario (memoria real), ya que las direcciones virtuales suelen seleccionarse dentro de un número mucho mayor de direcciones que las disponibles dentro del almacenamiento primario.

La evolución en las organizaciones de almacenamiento puede resumirse como sigue:

• Real:

o Sistemas dedicados a un solo usuario.

• Real:

o Sistemas de multiprogramación en memoria real:

 Multiprogramación en partición fija:

 Absoluta.

 Relocalizable (reubicable).

 Multiprogramación en partición variable.

• Virtual:

o Multiprogramación en almacenamiento virtual:

 Paginación pura.

 Segmentación pura.

 Combinación paginación / segmentación.

Conceptos Básicos de Almacenamiento Virtual

La clave del concepto de memoria (almacenamiento) virtual esta en la disociación:

• De las direcciones a las que hace referencia un programa.

• De las direcciones disponibles en la memoria real (almacenamiento primario).

Los principales conceptos son los siguientes:

• “Direcciones virtuales”:

o Son las referidas por un proceso en ejecución.

• “Direcciones reales”:

o Son las disponibles dentro del almacenamiento primario.

• “Espacio de direcciones virtuales (v)” de un proceso:

o Es el número de direcciones virtuales a que puede hacer referencia el proceso.

• “Espacio de direcciones reales (r)” de un computador:

o Es el número de direcciones reales disponibles en el ordenador.

Los procesos hacen referencia a direcciones virtuales pero éstas deben ejecutarse en el almacenamiento real:

• Las direcciones virtuales deben ser transformadas dentro de las direcciones reales, mientras el proceso está en ejecución.

• La traducción de direcciones deberá hacerse rápidamente para no degradar al sistema.

Existen varios medios para asociar las direcciones virtuales con las reales (ver Figura 3.13 ).

Los mecanismos de “traducción dinámica de direcciones” (dat) convierten las direcciones virtuales en reales al ejecutarse el proceso.

Las direcciones contiguas dentro del espacio de direcciones virtuales de un proceso no tienen por qué ser contiguas dentro del almacenamiento real, a esto se denomina “contigüidad artificial ” (ver Figura 3.14 ).

Organización del Almacenamiento de Niveles Múltiples

Se deben proporcionar los medios para retener programas y datos en un gran almacenamiento auxiliar para:

• Permitir que el espacio de direcciones virtuales de un usuario sea mayor que el espacio de direcciones reales.

• Soportar multiprogramación de forma efectiva en un sistema con muchos usuarios que compartan el almacenamiento real.

Se utiliza un esquema de almacenamiento de dos niveles (ver Figura 3.15 ):

• Primer nivel: “almacenamiento real ”:

o En él se ejecutan los procesos y en él deben estar los datos para que un proceso pueda referirse a ellos.

• Segundo nivel: “almacenamiento auxiliar, secundario o adicional ”:

o Generalmente consta de discos de gran capacidad que pueden mantener los programas y datos que no caben al mismo tiempo en el más limitado almacenamiento real.

Cuando se va a ejecutar un proceso su código y datos se pasan al almacenamiento principal.

El almacenamiento real es compartido por varios procesos:

• Cada proceso puede tener un espacio de direcciones virtuales mucho mayor que el almacenamiento real.

• Solo se mantiene al mismo tiempo una pequeña parte de los programas y datos de cada proceso en el almacenamiento real.

Transformación de Bloques

Los mecanismos de traducción dinámica de direcciones deben mantener “mapas” que ilustren qué direcciones del almacenamiento virtual se encuentran en el almacenamiento real y dónde se encuentran .

La información se agrupa en “bloques”:

• El sistema está informado del lugar del almacenamiento real donde han sido colocados los bloques de almacenamiento virtual.

• Cuanto mayor sea el bloque menor será la fracción del almacenamiento real que debe dedicarse a contener la información del mapa.

• Con bloques grandes:

o Se reduce la sobrecarga de almacenamiento del mecanismo de transformación.

o Se incrementa el tiempo de transferencia entre los almacenamientos secundario y primario.

o Consumen más almacenamiento real pudiendo limitar el número de procesos que pueden compartirlo.

• Los bloques pueden ser de tamaño:

o Igual : se denominan “páginas” y la organización de almacenamiento virtual asociada se denomina “paginación”.

o Diferente: se denominan “segmentos” y la organización de almacenamiento virtual asociada se denomina “segmentación”.

• Se pueden combinar ambas técnicas: segmentos de tamaño variable compuestos de páginas de tamaño fijo.

Las direcciones son “bidimensionales”, es decir que una dirección virtual “v” se indica por un par ordenado “(b,d)”, donde:

• “b”: número del bloque donde reside.

• “d”: desplazamiento a partir del inicio del bloque.

La traducción de una dirección virtual “v = (b,d)” a la dirección real “r” considera lo siguiente (ver Figura 3.16 y Figura 3.17 ):

• Cada proceso tiene su “tabla de mapa de bloques” mantenida por el sistema en el almacenamiento real.

• Un registro especial del procesador llamado “registro origen de la tabla de bloques” se carga con la dirección real “a” de la “tabla de mapa de bloques”:

o Contiene una entrada para cada bloque del proceso.

o Las entradas se mantienen en orden secuencial para el bloque 0, bloque 1, etc.

o Se añade el bloque número “b” a la dirección base “a” de la “tabla de bloques” para formar la dirección real de la entrada de la “tabla de mapa de bloques” para el bloque “b”:

 Contiene la dirección real “b ’ ” para el bloque “b”.

 El desplazamiento “d” se añade a la dirección de inicio del bloque, “b ’ ”, para formar la “dirección real” deseada: “r = b ’ + d”.

La transformación de bloques se efectúa en forma dinámica mientras se ejecuta un proceso, por lo cual, si la implementación no es eficiente, su sobrecarga puede causar una degradación del rendimiento que podría eliminar en parte las ventajas de la utilización del almacenamiento virtual.

Conceptos Básicos de Paginación

Frecuentemente se diferencia entre la “paginación pura” y la “combinación de paginación y segmentación”.

Las páginas se transfieren del almacenamiento secundario al primario en bloques llamados “marcos de páginas”:

• Tienen el mismo tamaño que las páginas.

• Comienzan en direcciones del almacenamiento real que son múltiplos enteros del tamaño fijo de la página.

• Podrá colocarse una nueva página dentro de cualquier “marco de página” o “celda de página” disponible.

La “traducción dinámica de direcciones” incluye:

• Un proceso en ejecución hace referencia a una dirección virtual “v = (p,d)” (ver Figura 3.18 ).

• Un mecanismo de transformación de páginas busca la página “p” en la “tabla de páginas” y determina si la página “p” se encuentra en el marco de página “p ’ ”.

• La dirección de almacenamiento real se forma por la concatenación de “p ’ ” y “d”.

La tabla de “mapa de páginas” debe indicar si se encuentra o no en el almacenamiento primario la página referenciada:

• En caso afirmativo dónde está en la memoria real.

• En caso negativo dónde puede estar en el almacenamiento secundario.

La dirección de almacenamiento primario “a”, donde comienza el marco de pagina “p ’ ” (suponiendo un tamaño de página “p”), está dada por: “a = (p) (p ’)”; se supone marcos de página numerados 0, 1, 2, etc. (ver Figura 3.19, Figura 3.20 y Figura 3.21 ).

Traducción de Direcciones de Paginación por Transformación Directa

Un proceso en ejecución hace referencia a la dirección virtual v = (p,d).

Antes que un proceso comience su ejecución, el S. O. carga la dirección de almacenamiento primario de la “tabla de mapa de páginas” en el “registro origen de la tabla de mapa de páginas” (Ver Figura 3.22 ).

La dirección base de la tabla de mapa de páginas es “b”.

El número de página es “p”.

La dirección en el almacenamiento primario de la entrada en la tabla de mapa de páginas para la página “p” es “b + p”:

• Indica que el marco de página “p ’ ” corresponde a la página virtual.

• “p ’ ” se concatena con el desplazamiento “d” par formar la dirección real “r”.

“Esto es un ejemplo de transformación directa debido a que la tabla de mapa de páginas contiene una entrada por cada una de las páginas del almacenamiento virtual de este proceso”.

La dirección virtual que se está traduciendo y la dirección base de la tabla de mapa de páginas son mantenidas en un registro de alta velocidad del control del procesador.

La tabla de mapa de páginas transformada directamente suele mantenerse en el almacenamiento primario:

• Las referencias a esta tabla requieren un ciclo completo de almacenamiento primario, que generalmente es la parte más larga de un ciclo de ejecución de instrucciones.

• Se requiere otro ciclo de ejecución de almacenamiento primario para la transformación de páginas, lo que puede ocasionar degradación equivalente a un 50%, para lo cual una solución sería tener la tabla completa de mapa de páginas de transformación directa en la “caché” de muy alta velocidad.

Traducción de Direcciones de Paginación por Transformación Asociativa

Una forma de acelerar la traducción dinámica de páginas consiste en colocar la tabla completa de mapa de páginas en un “almacenamiento asociativo” que tenga un tiempo de ciclo mucho más rápido que el almacenamiento primario.

Una variante es la “transformación asociativa pura” (ver Figura 3.23 ).

Un programa en ejecución hace referencia a la dirección virtual v = (p,d).

Cada entrada en el almacenamiento asociativo se busca de forma simultánea para la página “p”:

• Se obtiene “p ’ ” como el marco de página correspondiente a la página “p”.

• Se concatena “p ’ ” con “d” formando la dirección real “r”.

Cada una de las células del almacenamiento asociativo se registra de manera simultánea:

• Hace costoso el almacenamiento asociativo.

• Implementar la transformación asociativa pura resulta demasiado costoso, tal lo ocurrido con la implementación de la transformación directa pura utilizando “caché”.

Traducción de Direcciones de Paginación por Combinación de Transformación Asociativa / Directa

Se utiliza un almacenamiento asociativo capaz de mantener solo un pequeño porcentaje del mapa completo de páginas para un proceso (ver Figura 3.24 ).

Las entradas de página contenidas en este mapa reducido corresponden solo a las páginas referenciadas recientemente:

• Se presupone que una página recientemente referenciada tendrá posibilidades de serlo de nuevo próximamente.

• Los rendimientos obtenidos con este esquema de mapa asociativo parcial superan aproximadamente en un 100 % a los rendimientos obtenidos con esquemas de mapa asociativo de página completo.

Un programa hace referencia a la dirección virtual v = (p,d).

El mecanismo de traducción de direcciones intenta encontrar la página “p” en el mapa de página asociativo parcial:

• Si “p” se encuentra allí:

o El mapa asociativo devuelve “p ’ ” como el número de marco de página correspondiente a la página virtual “p”.

o “p ’ ” se concatena con el desplazamiento “d” para formar la dirección real “r” que corresponde a la dirección virtual v = (p,d).

• Si “p” no se encuentra en el mapa de pagina parcial:

o Se utiliza un mapa directo convencional.

o La dirección “b” del registro de origen de la tabla de páginas se añade a “p” para localizar la entrada apropiada a la página “p” en la tabla de mapa de páginas de transformación directa del almacenamiento primario.

o La tabla indica que “p ’ ” es el marco de página correspondiente a la página virtual “p”.

o “p ’ ” se concatena con el desplazamiento “d” para formar la dirección real “r” correspondiente a la dirección virtual v = (p,d).

Compartimiento de Recursos en un Sistema de Paginación

En sistemas multiprogramados, especialmente en los de tiempo compartido, es común que más de un usuario estén ejecutando los mismos programas:

• Para optimizar el uso de la memoria real se comparten las páginas que pueden ser compartidas:

o El compartimiento debe ser cuidadosamente controlado para evitar que un proceso modifique datos que otro proceso esta leyendo (ver Figura 3.25 ).

o Los programas se encuentran divididos en áreas separadas de “procedimiento” y “datos”.

o Los procedimientos no modificables se llaman “procedimientos puros reentrantes”.

o Los datos y procedimientos modificables no pueden ser compartidos.

o Los datos no modificables (ej.: tablas fijas) son compartibles.

• Se debe identificar cada página como compartible o no.

• Habrá marcos (celdas) de páginas compartidos por varios procesos.

El compartimiento:

• Reduce la cantidad de almacenamiento primario necesario para la ejecución eficaz de un grupo de procesos.

• Puede hacer posible que un sistema determinado mantenga una cantidad mayor de usuarios (procesos).

...

Descargar como  txt (29.2 Kb)  
Leer 17 páginas más »
txt