Sei sulla pagina 1di 45

ADMINISTRACION DE MEMORIA

COMO SE REALIZA LO DEL ALGORITMO DE BUDDY (O COMPAERO)


inicialmente toda ella est libre, se tiene una lista con una nica entrada correspondiente a un bloque y el resto de las listas estn vacas. Cuando se recibe una peticin de un proceso A de un bloque de 70 Kbytes, se busca un bloque cuyo tamao sea la potencia de 2 que ms se aproxime por exceso a los 70 K, esto es, 128 K. Pero no hay ningn bloque de 128 K. Entonces se parte el bloque de 1M en dos bloques de 512 K (a los que se les llama Buddy (o compaeros). Uno de estos bloques se divide a su vez en dos nuevos bloques de 256 K y por ltimo uno de estos se vuelve a partir en otros dos bloques de 128 K. De estos dos ltimos bloques, uno de ellos se asigna al proceso que realiz la peticin de los 70 K. y as sucesivamente.

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.

OPCIONES DE LA GESTION DE MEMORIA

GESTION DE MEMORIA SIN INTERCAMBIO


En los sistemas de gestin de memoria sin intercambio, la idea bsica consiste en cargar el programa a ejecutar en algn lugar de la memoria principal, donde permanece hasta que finaliza su ejecucin, momento en el que abandona el espacio de memoria utilizado.

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.

MULTIPROGRAMACION CON PARTICIONES FIJAS


Es deseable que haya varios procesos de usuario residiendo en memoria al mismo tiempo, se hace necesario considerar el problema de cmo asignar memoria disponible a varios de los procesos que estn en la cola de espera para ser trados a memoria principal. Lo ms inmediato y simple es dividir la memoria en N particiones, de tal forma que en cada particin se mete un proceso, donde permanece hasta que finaliza su ejecucin. Una vez terminado el proceso, la particin queda libre para acoger a un nuevo trabajo.

Planificacin de los Procesos: Es


seleccionar los procesos que van cargarse en memoria para ser ejecutados.

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.

GESTION DE MEMORIA CON INTERCAMBIO


En un sistema batch, la organizacin de la memoria en particiones fijas resulta simple y efectiva. Pero en un sistema de tiempo compartido la situacin es diferente, pues normalmente hay ms usuarios que memoria para contener sus procesos, por lo que se hace necesario llevar a disco los procesos en exceso. En cualquier caso, debe quedar claro que para que pase a ejecucin alguno de estos procesos que se han llevado a disco, antes hay que traerlo a memoria.

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.

MULTIPROGRAMACION CON PARTICIONES VARIABLES


Un sistema de intercambio podra estar basado en particiones de tamao fijo, de tal forma que cuando un proceso queda bloqueado en espera, se le puede mover al disco y traer otro a la particin que deja libre. Pero este sistema no es aconsejable cuando se dispone de poca memoria principal, pues los programas pequeos desperdician mucha memoria cuando ocupan particiones grandes (fragmentacin interna). Cuando se utilizan particiones variables, el nmero y tamao de los procesos cargados en memoria vara con el tiempo,

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.

GESTION DE BLOQUES DE MEMORIA


En general, hay mtodos utilizados por los sistemas operativos para llevar la cuenta de la memoria utilizada y de los espacios libres: Mapa de bits Sistema Buddy

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.

COMO SE REALIZA LO DEL ALGORITMO DE BUDDY (O COMPAERO)


inicialmente toda ella est libre, se tiene una lista con una nica entrada correspondiente a un bloque y el resto de las listas estn vacas. Cuando se recibe una peticin de un proceso A de un bloque de 70 Kbytes, se busca un bloque cuyo tamao sea la potencia de 2 que ms se aproxime por exceso a los 70 K, esto es, 128 K. Pero no hay ningn bloque de 128 K. Entonces se parte el bloque de 1M en dos bloques de 512 K (a los que se les llama Buddy (o compaeros). Uno de estos bloques se divide a su vez en dos nuevos bloques de 256 K y por ltimo uno de estos se vuelve a partir en otros dos bloques de 128 K. De estos dos ltimos bloques, uno de ellos se asigna al proceso que realiz la peticin de los 70 K. y as sucesivamente.

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.

Potrebbero piacerti anche