Memoria Principal

download Memoria Principal

of 20

Transcript of Memoria Principal

MEMORIA PRINCIPAL

REASIGNACIN DE DIRECCIONESLos programas residen en un disco en forma de archivos ejecutables binarios, para poder ejecutarse, un programa deber cargarlos en memoria y colocarlos dentro de un proceso. Dependiendo del mecanismo de gestin el proceso puede desplazarse entre el disco y memoria durante la ejecucin. Se selecciona un proceso de la cola de entrada y se lo carga en memoria. Una vez terminada la ejecucin, su espacio de memoria ser declarado disponible.

REASIGNACIN DE DIRECCIONESClsicamente la reasignacin de direcciones de memoria puede realizarse en cualquiera de los siguientes tiempos. Tiempo de Compilacin. Si se sabe de antemano donde va a residir el proceso en memoria. Los programas en formato .COM de DOS. Tiempo de Carga. Se genera cdigo reubicable y se asigna direcciones en el momento de carga. Tiempo de Ejecucin. Se retarda la reasignacin hasta el momento de ejecucin. La mayora de los sistemas operativos de propsito general utilizan este mtodo.

ESPACIO DE DIRECCIONES LGICO Y FSICOUna direccin generada por la CPU se denomina comnmente direccin lgica, mientras que una direccin vista por la unidad de memoria(registro de direcciones) se denomina direccin fsica. Los mtodos de reasignacin en tiempo de compilacin y carga generan direcciones lgicas y fsicas idnticas. Sin embargo en tiempo de ejecucin hace que las direcciones lgica y fsica difieran. La correspondencia entre direcciones lgicas y fsicas en tiempo de ejecucin es establecida por un dispositivo hardware que denomina unidad de gestin de memoria (MMU)

CARGA DINMICAPara la mejor utilizacin del espacio de memoria se utiliza un mecanismo de carga dinmica. Una rutina no se carga hasta que se invoca. Todas las rutinas se mantienen en disco en un formato de carga reubicable. Se invoca al cargador de montaje reubicable para que cargue en memoria la rutina deseada y para que actualice las tablas de direcciones del programa. La ventaja del mecanismo de carga dinmica es que una rutina no utilizada no se cargar nunca en memoria.

INTERCAMBIO

Un proceso debe estar en memoria para ser ejecutado. Sin embargo, los procesos pueden ser intercambiados temporalmente, sacndolos de la memoria y almacenndolos en un almacn de respaldo y volvindolos a llevar luego a memoria para continuar su ejecucin.

INTERCAMBIOLa desventaja es que la mayor parte del intercambio se consume en el tiempo de transferencia. Si descargamos el proceso P1 y cargamos el proceso P2, la operacin de E/S podra entonces intentar utilizar la memoria que ahora pertenece al proceso P2.

Hay dos soluciones principales a este problema: No descargar nunca un proceso que tenga actividades de E/S pendientes. Ejecutar las operaciones de E/S nicamente con bferes del sistema.

ASIGNACIN DE MEMORIA CONTIGUALa memoria principal debe albergar tanto el sistema operativo como los diversos procesos de usuario. Por tanto, necesitamos asignar las distintas partes de la memoria de la forma mas eficiente posible. Usualmente se divide en dos particiones, una para el sistema operativo y otra para los procesos de usuario.

ASIGNACIN DE MEMORIA

Uno de los mtodos mas simples para asignar la memoria consiste en dividirla en varias particiones de tamao fijo. Cada particin puede contener un proceso, de modo que el grado de multiprogramacin estar limitado por el numero de particiones disponibles. Cuando una particin esta disponible, se selecciona un proceso de la cola de entrada y se lo carga en dicha particin. Cuando el proceso termina, la particin pasa a estar disponible para otro proceso. Originalmente fue usado por el sistema operativo IBM OS/360, pero ya no se utiliza. Se utiliza principalmente en entornos de procesamiento por lotes.

ASIGNACIN DINMICAEsta estrategia se utiliza para satisfacer la solicitud de tamao n a partir de una lista de agujeros libres. Primer ajuste. Se asigna el primer agujero que sea lo suficientemente grande. La exploracin puede comenzar desde el principio. Mejor ajuste. Se asigna el agujero mas pequeo que tenga tamao suficiente, debemos explorar la lista completamente. Peor ajuste. Se asigna el agujero de mayor tamao, tambin se explora la lista completamente.

FRAGMENTACIN

Tanto la estrategia de primer ajuste como la de mejor ajuste sufren del problema de fragmentacin externa. Este problema puede llegar a ser muy grave. Puede llegar a tener un bloque de memoria libre(desperdiciada) entre cada dos procesos. Si todos estos pequeos fragmentos de memoria estuvieran en un nico bloque libre de gran tamao se podra ejecutar varios procesos mas. Esta solucin al problema de fragmentacin externa se llama compactacin.

PAGINACINEs un esquema de gestin de memoria que permite que el espacio de direcciones fsicas de un proceso no sea contiguo. Evita el problema de encajar fragmentos de memoria de tamao variable. Tradicionalmente el soporte para la paginacin se gestionaba mediante hardware. Sin embargo los diseos recientes implementan los mecanismos de paginacin integrando estrechamente el hardware y el sistema operativo, especialmente en los microprocesadores de 64 bytes.

PAGINACIN

La paginacin implica descomponer la memoria fsica en una serie de bloques de tamao fijo denominados marcos y descomponer la memoria lgica en bloques del mismo tamao denominados paginas. Cuando hay que ejecutar un proceso, sus paginas se cargan desde el almacn de respaldo en los marcos de memoria disponibles.

EJEMPLO DE PAGINACIN DE MEMORIA DE 32 BYTES CON PAGINAS DE 4 BYTES

PROTECCINLa proteccin de memoria en un entorno paginado se consigue mediante una serie de bits de proteccin asociados con cada marco. Normalmente estos bits se mantienen en la tabla de pginas. Uno de los bits puede definir una pagina como de lectura escritura o de solo lectura. Todo intento de escribir una pagina de solo lectura provocara una interrupcin hardware al sistema operativo (o una violacin de proteccin de memoria)

PGINAS COMPARTIDAS

Una ventaja de la paginacin es la posibilidad de compartir cdigo comn. Esta consideracin es particularmente importante en un entorno de tiempo compartido.

SEGMENTACINLa segmentacin es un esquema de gestin de memoria que soporta esta visin de la memoria que tienen los usuarios. Como un espacio de direcciones es una coleccin de segmentos y cada segmento tiene un nombre y una longitud. Las direcciones especifican tanto el nombre del segmento como el desplazamiento dentro de ese segmento. El usuario especifica por tanto cada direccin proporcionando dos valores: un nombre de segmento y un desplazamiento.

EJEMPLO DE SEGMENTACIN

MEMORIA VIRTUALTodas las instrucciones que se estn ejecutando deben estar en la memoria fsica. El requisito de que las instrucciones deban encontrarse en la memoria fsica para poderlas ejecutar parece limitada al tamao de los programas, de manera que estos no pueden exceder del tamao de la propia memoria fsica. Se resuelve ejecutando solo programas que estn parcialmente en la memoria. La memoria virtual permite un espacio mas grande, cuando solo hay disponible una memoria fsica de menor tamao.

MEMORIA VIRTUAL