Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Es una tarea realizada por el sistema operativo que consiste en gestionar la jerarqua de memoria, en cargar y descargar procesos en memoria principal para que sean ejecutados. Para ello el sistema operativo gestiona lo que se conoce como MMU o Unidad de Administracin de Memoria, el cual es un dispositivo hardware que transforma las direcciones lgicas en fsicas.
Su trabajo es seguir la pista de qu partes de la memoria estn en uso y cules no lo estn, con el fin de poder asignar memoria a los procesos cuando la necesiten, y recuperar esa memoria cuando dejen de necesitarla, as como gestionar el intercambio entre memoria principal y el disco cuando la memoria principal resulte demasiado pequea para contener a todos los procesos
GESTION DE MEMORIA
Su cometido consiste en llevar la cuenta de las partes de memoria que se estn utilizando y las que estn libres, as como de gestionar el trasvase de informacin entre la memoria principal y la secundaria cuando la memoria RAM no sea suficientemente grande para acoger a todos los procesos. Los sistemas de gestin de memoria pueden dividirse en dos clases: los que mueven los procesos entre memoria principal y secundaria (intercambio y paginacin), y los que no lo hacen. Tanto el intercambio como la paginacin son mecanismos originados por la insuficiencia de memoria principal para contener todos los procesos en memoria simultneamente.
PROTECCION. Si varios procesos comparten la memoria principal, se debe asegurar que ninguno de ellos pueda modificar posiciones de memoria de otro proceso. Debe disponerse de un sistema de permisos de acceso que especifique los derechos que tiene cada proceso en el acceso a zonas de memoria de otros procesos.
COMPARTIMIENTO El compartimiento de la memoria parece estar en contradiccin con la proteccin, pero es que a menudo tambin es necesario que varios procesos puedan compartir y actualizar estructuras de datos comunes. En otras ocasiones, lo que se requiere es compartir zonas de cdigo.
REUBICACION En un sistema multiprogramado la memoria se encuentra compartida por varios procesos, por lo tanto, los procesos deben ser cargados y descargados de memoria. ORGANIZACIN DE LA MEMORIA.
La memoria se debe organizar tanto fsica como lgicamente.
Organizacin Lgica: Debe existir una cierta correspondencia entre el sistema operativo y el hardware al tratar los datos y los programas de los usuarios de acuerdo a la estructura lgica que ellos presenten. Organizacin Fsica: Debe ser parte de la administracin de memoria, la organizacin del flujo de informacin entre la memoria principal y la memoria secundaria.
MONOPROGRAMACION
El esquema de memoria ms simple consiste en mantener la memoria ocupada con un nico proceso, y no se ejecuta otro hasta que se termine con el anterior.
Este tipo de ejecucin prcticamente no existe ms reemplazado por la multiprogramacin.
TAMAO DE LA PARTICION
El tamao de cada una de las particiones lo puede establecer el operador en el momento de arranque del sistema. A ms particiones, ms procesos cargados y por lo tanto, mayor aprovechamiento de la CPU.
REUBICACION
Cuando se monta o enlaza un programa compuesto por diferentes mdulos, todos ellos se combinan en un nico mdulo cargable, en el que las referencias a sus objetos locales son direcciones que van desde cero hasta la correspondiente al tamao del mdulo. cada proceso se puede cargar en cualquier direccin de memoria, y no hay forma de conocerla hasta llegar el momento de su ejecucin.
PROTECCION
El sistema de proteccin se encarga de evitar el acceso indiscriminado a cualquier rea de memoria. El registro lmite expresa el tamao del programa en ejecucin. Cada direccin virtual a la que se hace referencia en el proceso se compara con el valor del registro lmite, de tal forma que si tal direccin es menor que el registro lmite, quiere decir que hace referencia a una posicin dentro del programa. Si por el contrario, la direccin virtual excede al valor del registro lmite, indica que se intenta un acceso a una posicin de memoria fuera del rea ocupada por el programa, en cuyo caso habr Error de direccionamiento.
Para obtener un buen aprovechamiento de la CPU, la porcin de tiempo de los procesos deber ser alto en comparacin con el tiempo dedicado al cambio completo de proceso. Pero por otra parte, tenemos que en un sistema de tiempo compartido si la porcin de tiempo es muy alta, el tiempo de espera de los procesos preparados sube mucho, lo cual no es en absoluto deseable. Por lo tanto, lo que se debe conseguir es minimizar lo ms posible el tiempo de intercambio. Para ello hay dos estrategias claras: Utilizar una memoria secundaria muy rpida. Intercambiar solamente la memoria necesaria.
Al principio se carga el proceso A, seguidamente el B y el C. A continuacin el proceso A termina (o se le expulsa al disco) y se carga el proceso D; finaliza el B y se carga el E.
En algn momento puede darse el caso de que haya mucha memoria libre, pero distribuida entre muchos espacios pequeos. Entonces tenemos Fragmentacin Externa. La nica solucin a la fragmentacin externa es la compactacin, que consiste en mover los bloques asignados, dejando entonces grandes espacios libres que pueden asignarse a procesos.
MAPA DE BITS
cada una de estas unidades de asignacin se corresponde con un bit en el mapa de bits de memoria; la primera unidad con el primer bit, la segunda con el segundo, etc., de tal forma que si el bit est a 0 indica que la unidad de asignacin correspondiente se encuentra libre, mientras que si est a 1 quiere decir que la unidad est ocupada, o sea, asignada a algn proceso.
SISTEMA BUDDY
El sistema Buddy (o compaeros) es un algoritmo que aprovecha el hecho de que los ordenadores utilizan nmeros binarios en las direcciones, para as facilitar la tarea de la compactacin de espacios cuando se libera un bloque. La ventaja de este algoritmo sobre otros que tambin ordenan conforme al tamao.
La desventaja es su ineficiencia en el aprovechamiento de la memoria, debido a los redondeos hasta una potencia de 2 en el tamao de los bloques asignados.
MEMORIA VIRTUAL
En las distintas estrategias de gestin de memoria vistas hasta ahora, todas tienen un objetivo comn: mantener muchos procesos en memoria simultneamente para permitir la multiprogramacin. La memoria virtual es una tcnica que permite la ejecucin de procesos que pueden no estar completamente en memoria principal. La principal ventaja de este esquema es que los programas pueden ser mayores que la memoria principal. Esto se debe a que se crea una abstraccin de la memoria principal, separando la memoria lgica, de la memoria fsica de la que realmente se dispone.
PAGINACION
En la gestin de memoria con intercambio, cuando haba que pasar un proceso a ejecucin, 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 direccin de memoria virtual cuya correspondiente memoria fsica reside en disco, se trae el contenido de disco a RAM.
A cada uno de los bloques de intercambio que estn en el disco o en memoria principal le llamaremos Pagina y a cada uno de los espacios en que est dividida la memoria principal le denominaremos Marco. O sea, que los marcos son espacios de memoria principal de tamao fijo y de direcciones consecutivas, que pueden albergar bloques de informacin, exactamente del mismo tamao, denominados pginas
Tabla de Paginas: Estas tablas, adems de guardar la correspondencia entre pginas y marcos, mantiene ms informacin de control, como por ejemplo, el denominado Bit de Presencia, que indica si una pgina dada se encuentra en un marco de memoria o no.
SEGMENTACION
Consiste en dividir la memoria en espacios al igual que la Paginacin pero a diferencia de esta, la divide en espacios de diferente tamao.
SISTEMAS MULTIPROGRAMADOS
Se denomina multiprogramacin a la tcnica que permite que dos o ms procesos ocupen la misma unidad de memoria principal y que sean ejecutados al "mismo tiempo" en la unidad central de proceso o CPU.
En un sistema multiprogramado la memoria principal alberga a ms de un programa de usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra en ejecucin realiza una operacin de E/S;
CARACTERISTICAS
Mejora productividad del sistema y utilizacin de recursos. Generalmente soportan mltiples usuarios (multiusuarios). Proporcionan facilidades para mantener el entorno de usuarios individuales. Requieren validacin de usuario para seguridad y proteccin.
En general, los sistemas de multiprogramacin se caracterizan por tener mltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos perifricos.