Anda di halaman 1dari 18

SISTEMAS OPERATIVOS

Administracin de memoria
Parte 1

INTEGRANTES: Barainca, Emiliano Frete, Julin Benigar, Sabrina

Introduccin
En resultado de la planificacin del CPU se produce una mejora el aprovechamiento y la rapidez con la que la PC responde a sus usuarios. Por esto para lograr el aumento en el desempeo es preciso mantener varios procesos en la memoria, es decir compartirla.

Jerarquas de Sistema de memoria


Se puede hacer una analoga entre la jerarqua de almacenamiento de una CPU y el manejo de informacin en una oficina. La informacin que necesita un administrativo para cumplir con su tarea actual se encuentra en su escritorio (punto alto de la jerarqua). Aquella informacin que no est siendo usada pero es frecuentemente utilizada, se guarda en una carpeta, de esta manera si el trabajador precisa esta informacin se lleva la carpeta a al escritorio y puede ser utilizada. Las carpetas que no estn siendo utilizadas, se guardan en un archivador de carpetas, donde la informacin es menos accesible que la que se encuentra en el escritorio. En este caso el nivel ms bajo de la jerarqua la ocupa el archivo, donde la informacin almacenada no se planea utilizar en un futuro inmediato, pero no debe destruirse. La jerarqua de memoria emplea al menos tres niveles de almacenamiento:

Memoria real o fsica

Registros de la CPU Memoria Primaria (Memoria ejecutable, Ej: RAM)


Memoria lgica

Memoria Secundaria (Ej: Disco)

En el nivel ms alto se ubican los registros de memoria de la CPU. Es una memoria de alta velocidad y poca capacidad, est integrada en el microprocesador y permite guardar y acceder a valores muy usados, por lo general en operaciones matemticas.

La memoria del nivel medio est representada por la memoria primaria (anlogamente, se encontrara al nivel del archivador de carpetas). Es una memoria rpida y pequea, situada entre la memoria principal y el microprocesador, especialmente diseada para contener informacin que se utiliza con frecuencia en un proceso con el fin de evitar accesos a otras memorias, reduciendo considerablemente el tiempo de acceso al ser ms rpida que el resto de la memoria principal. (Memoria cach). En la base de la pirmide se encuentra la memoria secundaria. Son memorias de slo lectura (Read Only Memory) utilizadas como medio de almacenamiento de datos en las computadoras. En ella no se puede escribir y conserva intacta la informacin almacenada, incluso en el caso de que se interrumpa la corriente (memora no voltil). La ROM suele almacenar la configuracin del sistema o el programa de arranque de la computadora.

Nuevas jerarquas de memorias:

Registros de la CPU
Mayor capacidad Mayor rapidez

Memoria Primaria

Memoria Cach Memoria RAM

Memoria Secundaria

Memoria Magntica Giratoria Memoria ptica Memoria de acceso secuencial

Gestor de Memoria
Es una parte del Sistema Operativo que se encarga de asignar memoria a los procesos. Trata de repartir de manera eficiente la memoria para introducir tantos procesos como sea posible. La tarea clsica del gestor de memoria es funcionar como el gestor de recursos de la memoria primaria multiplexada en espacio. Explotan las jerarquas de almacenamiento. stas suelen tener varias copias de la informacin, el original de la informacin es la copia alojada en la memoria secundaria de la computadora. Se hacen copias en la memoria primaria y los registros de la CPU para reducir el tiempo de acceso a la informacin por parte de la CPU. La informacin debe estar en la memoria primaria cuando la utiliza el software que est funcionando en la CPU.

Objetivos de la administracin de memoria:


Ubicar, reemplazar, cargar y descargar procesos en la memoria principal. Proteger la memoria de accesos indeseados. Permitir la comparticin de zonas de memoria (para lograr la comparticin de procesos). Dar a cada proceso un espacio de direcciones propio. Proporcionar proteccin entre los procesos. Dar soporte a las distintas regiones del proceso. Maximizar el rendimiento del sistema. Proporcionar a los procesos mapas de memoria muy grandes.

Clasificacin de administracin de sistemas de memoria: Con desplazamiento de procesos entre la memoria principal y el disco (y viceversa) durante la ejecucin. Sin desplazamiento de procesos,

La unidad de gestin de memoria (MMU)


Es un dispositivo hardware, formado por circuitos integrados, responsable del manejo de memoria de la CPU. Funciones: Traduccin de las direcciones lgicas (o virtuales) a direcciones fsicas (o reales), Proteccin de la memoria y el control de cach.

Cuando la CPU intenta acceder a una direccin de memoria lgica, la MMU realiza una bsqueda en una memoria cach especial llamada Buffer de Traduccin Adelantada (Translation Lookaside Buffer, TBL). Esto mantiene la parte de la tabla de pginas usada hace menos tiempo, donde se pueden rescatar las direcciones fsicas correspondientes a algunas direcciones lgicas, de forma

directa. Cuando la direccin requerida por la CPU se encuentra en el TLB, su traduccin a direccin real o fsica es entregada. Un beneficio fundamental de la MMU es la posibilidad de implementar proteccin de memoria, evitando que los programas accedan a porciones de memoria prohibidas. Por ejemplo se puede evitar que un programa acceda o modifique sectores de memoria de otros programas.
Direccin virtual

CPU

MMU

Direccin real

TBL
Esquema de operaciones de la MMU

Memoria P1 P2 P3 P4

ESPACIO DE DIRECCIONES
Para que un programa pueda ejecutarse es necesario llevarlo a memoria y colocarlo en un proceso. El proceso puede transferirse del disco a la memoria durante su ejecucin. La vinculacin de instrucciones y datos con direcciones de memoria se puede efectuar en cualquier etapa del camino del proceso. En el caso de un sistema con monoprogramacin, para ejecutar el programa slo ser necesario cargarlo en la memoria a partir de la posicin 0 y pasarle el control al mismo. En un sistema con multiprogramacin es necesario realizar un proceso de traduccin (a cargo de la MMU) de las direcciones de memoria a las que hacen referencia las instrucciones de un programa (direccin lgica) para que se correspondan con las direcciones de memoria principal asignadas al proceso (direccin fsica). Las direcciones fsicas y lgicas son iguales en los esquemas de vinculacin en tiempo de compilacin y de carga, pero difieren en el esquema de vinculacin en tiempo de ejecucin. Los programas pueden direccionar memoria en varias formas: Direccionamiento al momento de la compilacin: se genera cdigo absoluto, siempre ejecuta en una direccin de memoria de inicio fija, si est ocupada no ejecuta. Direccionamiento al momento de la carga: se generan direcciones relativas a la posicin inicial de memoria (desplazamiento). Genera un cdigo reubicable. Enlace dinmico: las subrutinas de una biblioteca son cargadas en un programa en tiempo de ejecucin (en lugar de ser enlazadas en tiempo de compilacin) y se mantienen como archivos independientes separados del fichero ejecutable del programa principal.

Overlays: sta tcnica permite ejecutar un programa en un espacio de memoria menor que su tamao. Mantiene en memoria toda aquella parte del programa que es utilizada en un instante determinado. Las rutinas independientes son cargadas a medida que se necesitan ejecutar (son partes del programa que se dividen en forma independiente).

EVOLUCIN DE LA ADMINISTRACIN DE MEMORIA


La tecnologa de gestin de memoria ha evolucionado considerablemente con el paso del tiempo. En los primeros sistemas multiprogramados, la funcin del gestor de memoria era funcionar como el gestor de recursos de la memoria primaria multiplexada en espacio. Cuando la multiprogramacin se hizo ms popular, se requiri que la gestin de memoria proporcionara mecanismos de aislamiento fuertes para prevenir que un proceso pudiera leer o escribir la memoria primaria asignada a otro proceso. La siguiente generacin de gestores de memoria agreg la posibilidad de que los procesos compartieran partes de su memoria asignada. Los gestores de memoria contemporneos continan realizando las funciones clsicas de gestin de la memoria primaria. Los gestores modernos soportan memoria virtual, lo que significa que es capaz de mover informacin automticamente entre las capas verticales de la jerarqua de la memoria.

MODELOS DE ADMINISTRACIN DE MEMORIA


Parte del espacio de memoria est reservado para el sistema operativo y el resto queda disponible para programas y datos. La parte que corresponde al sistema operativo puede residir al comienzo o al final del espacio de memoria, dependiendo del hardware y de dnde se envan las interrupciones para ser tratadas. Sistemas MONOTAREA/MONOUSUARIO: Contigua simple: En cada instante, slo se tiene un solo proceso en la memoria. Distribucin de la memoria fsica: Zona de memoria baja: sistema operativo. Zona de memoria alta: pila del proceso. SISTEMA OPERATIVO USUARIO
B 0 A

SIN USO

Sistemas MULTITAREA/MULTIUSUARIO: Intercambio o Swapping: Hace referencia a las operaciones de eliminar de la memoria principal procesos suspendidos, llevarlos al disco y cargar del disco a memoria principal procesos para su ejecucin.

Asignacin con particiones fijas: Consiste en dividir lgicamente la memoria fsica en varias particiones de igual o diferente tamao y asignar a cada una de ellas un proceso. La divisin de la memoria se realiza con anterioridad al comienzo de la ejecucin de los procesos. Una vez hechas las particiones por el sistema operativo, se mantienen fijas tanto en nmero como en tamao. Forma de gestin y asignacin de la memoria: El proceso se coloca en la cola de procesos. El intercambiador tiene en cuenta los requerimientos de memoria de cada una de ellas y las particiones disponibles. Si una tarea tiene espacio disponible en memoria, se ubica (o reubica) en una particin y puede competir por el uso de la CPU. Cuando se termina una tarea, se libera la particin de memoria que ocupa, pudiendo el intercambiador asignar esta particin a otra tarea de la cola de tareas. La gestin y asignacin de particiones a los procesos se puede hacer siguiendo dos tipos de organizacin: Una cola por particin: Se coloca cada trabajo en la cola de la particin ms pequea que pueda contener dicho trabajo, con el fin de desperdiciar el menor espacio posible. La planificacin de cada cola se hace por separado y no hay competencia entre las colas por la memoria. Desventaja: se pueden presentar una cola de particin grande vaca y una cola de una particin pequea llena. Una nica cola comn a todas las particiones: El sistema operativo decide en que particin se ubica cada proceso en funcin de la disponibilidad de particiones y las necesidades del proceso. Problema: se producen fragmentaciones cuando en la memoria hay reas ocupadas intercaladas con reas libres. SISTEMA OPERATIVO SISTEMA OPERATIVO PARTICIN 1 PARTICIN 2 PARTICIN 3
Con particiones de distinto tamao.

PARTICIN 1 PARTICIN 2 PARTICIN 3


Con particiones de igual tamao.

Asignacin con particiones variables: Permite que el tamao de las particiones vare dinmicamente. No consiste en un nmero fijo de particiones muy grandes o muy pequeas, por lo que se consigue un mejor uso de la memoria pero de una manera compleja. Procedimiento para gestionar y asignar memoria: Cuando un proceso precisa memoria, se busca un espacio libre suficientemente grande para que contenga el proceso. Si el espacio que se le asigna es mayor, se le asigna solo la memoria necesaria y el resto se devuelve al conjunto de bloques libres. Cuando un proceso termina, se libera el espacio de memoria y se verifica si hay algn bloque de memoria contigua libre, si es as se combinan para formar un bloque de memoria mayor.

Ejemplo de asignacin con particin variable

FRAGMENTACIN
La fragmentacin es la memoria que queda desperdiciada al usar los mtodos de gestin de memoria. Tanto el primer ajuste, como el mejor y el peor producen fragmentacin externa. La fragmentacin es generada cuando durante el reemplazo de procesos quedan huecos entre dos o ms procesos de manera no contigua y cada hueco no es capaz de soportar ningn proceso de la lista de espera. La fragmentacin puede ser: Fragmentacin Externa: existe el espacio total de memoria para satisfacer un requerimiento, pero no es contigua. Fragmentacin Interna: la memoria asignada puede ser ligeramente mayor que la requerida; esta referencia es interna a la particin, pero no se utiliza.

La fragmentacin externa se puede reducir mediante la compactacin para colocar toda la memoria libre en un solo gran bloque, pero est a solo es posible si la relocalizacin es dinmica y se hace en tiempo de ejecucin.

MECANISMOS DE ALOCACIN DE MEMORIA


Se utilizan para determinar el lugar en la memoria primaria al cul se le asignar el proceso First fit: Asigna la primera particin disponible en la que pueda entrar el proceso Fcil de implementar. Se desperdicia mucho espacio de memoria.

Next fit: Se utiliza el mismo mecanismo que el First fit, slo que en lugar de comenzar desde el principio de la lista, se comienza desde donde se termin la ltima vez. Best fit: Busca en toda la memoria la mejor particin que se adapte al tamao del proceso en cuestin.

Difcil de implementar. La fragmentacin puede generar dificultades en la bsqueda.

MEMORIA VIRTUAL
Los algoritmos de gestin de memoria vistos tienen como objetivo mantener muchos procesos en la memoria simultneamente y hacer posible la multiprogramacin, sin embargo en la mayora de ellos es necesario que todo el proceso est en la memoria para ejecutarse. La memoria virtual permite ejecutar procesos que podran no estar totalmente en la memoria. Por lo tanto se presenta una ventaja principal que es que los programas pueden ser ms grandes que la memoria fsica. sta tcnica libera a los programadores de la preocupacin por las limitaciones de memoria. La memoria virtual es la separacin entre la memoria lgica del usuario y la fsica, y ofrece una memoria virtual extremadamente grande. Se implementa con paginacin por demanda, segmentacin por demanda segmentacin paginada (segmentos divididos en pginas) En este sistema los procesos residen en la memoria secundaria (disco) y al ejecutar el proceso lo pasamos por intercambio a la memoria. Si en el caso de que un proceso necesite una pagina que no esta en la memoria principal se produce un Fallo de Pagina y el sistema operativo se encarga de transferirla desde la memoria secundaria .

PAGINACIN
Es una tcnica que puede resultar til para solucionar la fragmentacin externa, permitiendo que el espacio de direcciones lgico de un proceso sea no contiguo. Evita el problema de ajustar los bloques de memoria de tamao variable en el almacenamiento auxiliar. La memoria fsica se divide en bloques de igual tamao llamados marcos. La memoria lgica se divide en bloques de igual tamao llamados pginas. Cualquier marco libre se puede asignar a un proceso que lo necesite. Puede existir una mnima fragmentacin interna, ya que los marcos se asignan como unidades y puede que un marco no quede totalmente lleno. Cuando un proceso ingresa en el sistema para ejecutarse, se examina su tamao expresndolo en pginas. Cada pgina requiere un marco, as que si un proceso tiene n pginas necesitar al menos n marcos disponibles en memoria. Existe una estructura de datos llamada Tabla de marcos que contiene, por cada marco de pgina fsico, una entrada que indica si el marco esta libre o asignado. Si est asignado, muestra a qu pgina de qu proceso se asign. El sistema operativo mantiene una copia de la tabla de pginas de cada proceso y la utiliza para traducir direcciones lgicas en fsicas. La finalidad de la tabla de pginas es asociar las pginas virtuales con los marcos.

Ejemplo de paginacin

Ventajas de la paginacin No es necesario que las paginas estn contiguas en memoria. Es fcil controlar todas las pginas, ya que tienen el mismo tamao. El mecanismo de traduccin de direcciones (DAT) permite separar los conceptos de espacio de direcciones y espacios de memoria. Se libera al programador de la preocupacin por el tamao limitado de memoria

Aumenta su productividad Se elimina el problema de fragmentacin externa.

Desventajas de la paginacin El costo de hardware y software se incrementa, por la nueva informacin que debe manejarse y el mecanismo de traduccin de direcciones necesario. Se consumen mucho ms recursos de memoria y tiempo en el CPU para su implantacin. Se incrementa el grado de fragmentacin interna.

Direccin lgica:

Paginacin:

SEGMENTACIN
Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su divisin lgica; llevndose a cabo una agrupacin lgica de la informacin en bloques de tamao variable denominados segmentos. Cada uno de ellos tiene informacin lgica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una coleccin de segmentos, que generalmente reflejan la divisin lgica del programa. La segmentacin permite alcanzar los siguientes 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: cada estructura tiene su propio tamao y este puede variar. Proteccin: se puede proteger los mdulos del segmento contra accesos no autorizados.

La transformacin de direcciones bidimensionales definidas por el usuario a direcciones unidimensionales pertenecientes a la memoria fsica, se lleva a cabo en la Tabla de segmentos. Ventajas de la segmentacin: El programador puede conocer las unidades lgicas de su programa, dndoles un tratamiento particular. Debido a que es posible separar los mdulos se hace ms fcil la modificacin de los mismos. Los cambios dentro de un mdulo no afecta al resto. Es fcil el compartir segmentos. Es posible que los segmentos crezcan dinmicamente segn las necesidades del programa en ejecucin. Existe la posibilidad de definir segmentos que aun no existan.

Desventajas de la segmentacin: Hay un incremento en los costos de hardware y de software para llevar a cabo la implantacin, as como un mayor consumo de recursos: memoria, tiempo de CPU, etc. Debido a que los segmentos tienen un tamao variable se pueden presentar problemas de fragmentacin externas, lo que puede llevar a necesitar un plan de reubicacin de segmentos en memoria principal. La comparticin de segmentos permite ahorrar memoria, pero requiere de mecanismos adicionales da hardware y software. Direccin lgica:

Segmentacin

Estas desventajas tratan de ser minimizadas, bajo la tcnica conocida como Segmentacin paginada.

SEGMENTACIN PAGINADA
La segmentacin paginada intenta lo mejor de la segmentacin y la paginacin. La segmentacin aporta soporte directo a las regiones del proceso y la paginacin permite un mejor aprovechamiento de la memoria y una base para construir un esquema de memoria virtual. Un segmento est formado por un conjunto de pginas y por lo tanto no tiene que estar contiguo en memoria. La MMU utiliza una tabla de segmentos tal que cada entrada de la tabla apunta a una tabla de pginas. Ventajas: Espacios lgicos independientes. Cada proceso tiene una tabla de segmentos que crea un espacio lgico independiente para el mismo. Proteccin. La tabla de segmentos restringe que parte de la memoria puede ser accedida por el mismo, permitiendo asegurar que los procesos usan espacios disjuntos. Compartir memoria. Dos o ms procesos pueden tener un segmento asociado a la misma zona de memoria. Sopor te de las regiones del proceso, gracias a la segmentacin Maximiza el rendimiento, gracias a la paginacin. Mapas de memoria grandes para los procesos.

Desventajas: La segmentacin paginada ofrece ms funcionalidad que la paginacin pero requiere de un hardware ms complejo que no est presente en la mayora de los procesadores.

SISTEMAS DE ADMINISTRACIN POR DEMANDA


Las pginas de un proceso deben cargarse por demanda. No se debe transferir ninguna pgina al almacenamiento secundario al primario hasta que un proceso en ejecucin haga explcitamente referencia a ella. Hay varias razones por las cuales es atractiva esta estrategia.

Los resultados de computabilidad, en especial el problema de parada, indican que el camino que tomar la ejecucin de un programa no se puede predecir con exactitud. Garantiza que solo las pginas que necesita el proceso sean tradas al almacenamiento principal. La sobrecarga de proceso para decidir qu pgina traer al almacenamiento principal es mnima.

PAGINACIN POR DEMANDA


Las transferencias entre la memoria secundaria y principal se realizan bajo demanda. Cuando un proceso intenta ingresar a una pgina que no se encuentra en la memoria principal (fallo de pgina), el sistema operativo es el encargado de traerla desde memoria secundaria. Si al intentar traer la pgina desde memoria secundaria, no hay marcos disponibles en memoria primaria, es necesario desalojar una pgina de la memoria primaria y transferirla a la secundaria. Las transferencias de memoria principal a secundaria se realizan por expulsin a partir de algoritmos de reemplazo. En la tabla de pginas, estarn marcadas como invlidas las entradas correspondientes a las pginas que no se encuentran en memoria principal en ese instante. Para stas pginas en lugar de guardarse la direccin del marco donde est ubicada, se guarda la direccin del bloque del dispositivo que contiene la pgina. Cuando se produce un acceso a alguna de dichas pginas, se produce una excepcin (fallo de pgina) que activa al sistema operativo encargado de traer la pgina de memoria secundaria.

Tratamiento de un fallo de pgina La MMU produce una excepcin y deja en un registro especial la direccin que causo el fallo. El sistema operativo comprueba si es una direccin de una pgina invlida o si corresponde a una pgina ausente en memoria. o Si la pgina es invlida, se aborta el proceso o se manda una seal. o De lo contrario, se realizan los siguientes pasos: Se consulta en la tabla de marcos en busca de uno libre. Si no se encuentra un marco disponible se aplican algoritmos de reemplazo para seleccionar una pgina para expulsar. El marco seleccionado se desconecta de la pgina a la que est asociado poniendo como invlida la entrada correspondiente.

Si la pgina est modificada, se debe guardar su contenido en memoria secundaria. Si se encuentra un marco libre, directamente o despus de la expulsin, se inicia la lectura de la nueva pgina sobre el marco luego se rellena la entrada correspondiente a la entrada marcada como vlida y apunta el marco utilizado.

Polticas de reemplazo
Existen dos categoras: Reemplazo global: un proceso puede quitarle un marco de pgina a otroo Reemplazo local: para servir el fallo de pgina slo pueden usarse marcos de pginas libres o ya asociados al proceso.

Todos los algoritmos siguientes pueden utilizarse para estrategias globales o locales. Objetivo: minimizar la tasa de fallos de pgina. Algoritmo de reemplazo ptimo Debe generar el mnimo nmero de fallos de pgina. La pgina que se debe reemplazar es aquella que tardar ms tiempo en volverse a usar. Es inexistente, ya que no se puede predecir cules sern las siguientes pginas accedidas. Sirve para comparar el rendimiento de otros algoritmos realizables Algoritmo FIFO Selecciona para la sustitucin la pgina que lleva ms tiempo en memoria. El sistema operativo debe mantener una lista de las pginas que estn en memoria ordenada por el tiempo que llevan residentes. Algoritmo LRU (Last Recently Used) Est basado en el principio de proximidad temporal de referencias: si es probable que se vuelvan a referenciar las pginas accedidas recientemente, la pgina que se debe reemplazar esla que no se ha referenciado desde hace ms tiempo.

SEGMENTACIN POR DEMANDA


Un proceso no necesita tener todos los segmentos cargados en memoria para ejecutarse, slo se deben cargar en memoria aquellos que estn siendo activamente utilizados. La tabla de segmentos mantiene un bit de validez para indicar si un segmento esta en memoria o en disco. Cada vez que se direcciona un segmento se chequea el bit de validez. Si el segmento no est cargado en memoria se produce un segmento fault. Una vez detectada la necesidad de un segmento fault, se utiliza la siguiente tcnica: 1. Verificar si hay suficiente memoria libre para acomodar el segmento. Si no hay suficiente memoria libre, se puede llegar a utilizar compactacin de memoria 2. Si luego de la compactacin sigue sin haber espacio para acomodar el segmento se debe producir un reemplazo de segmento. 3. El segmento al final de la lista es seleccionado y es swappeado a disco. 4. Si el nuevo espacio libre es suficientemente grande se acomoda el segmento en l; sino se repite el paso 3 hasta obtener un espacio suficientemente grande.

BIBLIOGRAFA: Sistemas operativos , quinta edicin. Silberschatz-Galvin. Sistemas operativos. Una visin aplicada, Carretero. Pginas web: o Blog Memoria virtual: http://so2helmuth.blogspot.com/2010/12/memoriavirtual.html

Anda mungkin juga menyukai