Você está na página 1de 18

Compactacin de memoria

Cuando un proceso llega y necesita memoria, el sistema operativo busca en la tabla de huecos alguno lo suficientemente grande para el proceso. Si el hueco es muy grande, lo parte en dos. Una parte es asignada al proceso y la otra se identifica como hueco. Cuando el proceso termina y la memoria es liberada, el espacio es identificado como un hueco ms en la tabla y si el nuevo hueco es adyacente con otro, ambos huecos se unen formando un solo hueco ms grande.

Compactacin de memoria
En ese momento se debe de checar si no existen procesos a los que este nuevo hueco pueda darles cabida. Esta tcnica consiste en trasladar todas las reas ocupadas del almacenamiento hacia algn extremo de la memoria. Es una solucin de la fragmentacin externa. El objetivo consiste en desplazar el contenido de la memoria libre en un solo bloque de gran tamao. La compactacin no siempre no es posible, solo es posible si la relocalizacin es dinmica y se efecta en el momento de la ejecucin.

Compactacin de memoria
SISTEMA OPERATIVO LIBRE 15 K SISTEMA OPERATIVO

15 K

LIBRE 8K 8K

LIBRE

LIBRE

Compactacin de memoria
Para evitar la fragmentacin externa se elaboro el sistema de compactacin de memoria, que consiste en desplazar las particiones asignadas dejndolas contiguas al igual que el espacio libre. Es necesario para este mtodo que los procesos tengan direccionamiento dinmico y que el tiempo de proceso que requerir la compactacin sea asumible.

Intercambio:
El objetivo del intercambio es dar cabida a la ejecucin de ms aplicaciones de las que pueden residir simultneamente en la memoria del sistema: Consiste en trasladar el cdigo y los datos de un proceso completo de memoria al sistema de almacenamiento secundario, para cargar otro previamente almacenado, no permite a un proceso utilizar ms memoria RAM de la que realmente existe en el sistema.

Esta tcnica puede ser ineficiente ya que se tiene que hacer el intercambio completo del proceso, aunque ste solo vaya a ejecutar una pequea porcin del cdigo. Durante el intercambio un proceso puede ser sacado temporalmente de memoria y llevado a un lugar especial del disco y posteriormente vuelto a memoria y continuada su ejecucin. El lugar de almacenamiento temporal suele ser un espacio suficientemente grande como para acomodar copias de las imgenes de memoria de todos los usuarios.

-Asignacin contigua: La memoria principal normalmente se divide en dos particiones: Sistema operativo residente, normalmente en la parte baja de memoria con los vectores de interrupcin. Procesos de usuario en la parte alta. -Asignacin de particin simple: Puede utilizarse un esquema de registro de relocalizacin y lmite para proteger un proceso de usuario de otro y de cambios del cdigo y datos del sistema operativo.

-Asignacin de particiones mltiples: Bloques de distintos tamaos estn distribuidos en memoria, cuando llega un proceso se le asigna un hueco suficientemente grande para acomodarle. El sistema operativo debe tener informacin sobre: - Particiones asignadas - Particiones libres (huecos) - Asignacin de particin dinmica El proceso de compactacin es una instancia particular del problema de asignacin de memoria dinmica, el cual es el cmo satisfacer una necesidad de tamao n con una lista de huecos libres.

Existen muchas soluciones para el problema. El conjunto de huecos es analizado para determinar cul hueco es el ms indicado para asignarse. Las estrategias ms comunes para asignar algn hueco de la tabla son: Primer ajuste: Consiste en asignar el primer hueco con capacidad suficiente. La bsqueda puede iniciar ya sea al inicio o al final del conjunto de huecos o en donde termin la ltima bsqueda. La bsqueda termina al encontrar un hueco lo suficientemente grande.

Mejor ajuste: Busca asignar el espacio ms pequeo de los espacios con capacidad suficiente. La bsqueda se debe de realizar en toda la tabla, a menos que la tabla est ordenada por tamao. Esta estrategia produce el menor desperdicio de memoria posible. Peor ajuste: Asigna el hueco ms grande. Una vez ms, se debe de buscar en toda la tabla de huecos a menos que est organizada por tamao. Esta estrategia produce los huecos de sobra ms grandes, los cuales pudieran ser de ms uso si llegan procesos de tamao mediano que quepan en ellos.

Compactacin de memoria

Se ha demostrado mediante simulacros que tanto el primer y el mejor ajuste son mejores que el peor ajuste en cuanto a minimizar el tiempo del almacenamiento. Ni el primer ajuste o el mejor ajuste es claramente el mejor en trminos de uso de espacio, pero por lo general el primer ajuste es ms rpido.

Comparticin de memoria
A travs de esta se tiene acceso controlado a ciertas reas de memoria ya que varios procesos almacenados en diferentes direcciones ayudan a la ejecucin de un mismo programa evitando la redundancia de procesos y el acceso es controlado o restringido para protegerlos.

Organizacin lgica mediante esta los programas tienden a ser ordenados en mdulos que pueden ser o no modificables, con las ventajas de que se puedan modificar y compilar de forma independiente, con la direccin del modulo el sistema puede ejecutarlo desde otro modulo, este facilita la graduacin de la proteccin a los mdulos, facilitando la especificacin de la comparticin deseada.

Comparticin de memoria
Organizacin fsica, esta es responsabilidad del sistema, dado que si el programador o diseador del sistema define una comparticin de memoria insuficiente para un programa podran presentarse problemas, adems el no conoce cuanto espacio hay disponible ni donde se encuentra este espacio en memoria.

MTODOS PARA LA COMPARTICION DE RECURSOS DE SOFTWARE.


Bsicamente existen 2 Mtodos: SEGMENTOS COMPARTIDOS. Consiste en que cada proceso tiene una tabla de segmentos asociado con su PCB (Bloque de Control de Procesos) el cual es utilizado por el despachador para definir la tabla de segmentos de hardware cuando a ese proceso se le asigne el CPU. Los segmentos son compartidos cuando las entradas en las tablas de segmentos de dos o ms procesos diferentes apuntan a las mismas localidades de memoria fsica. La comparticin ocurre al nivel de Segmentos. Con esto cualquier informacin puede ser compartida si esta definida como un segmento. Varios segmentos pueden ser compartidos, o sea, un programa compuesto por varios segmentos puede ser compartido.

SEGMENTOS COMPARTIDOS.

Ejemplo: Considrese el uso de un editor de textos de un sistema de tiempo compartido. En lugar de cargar 'n' copias del cdigo del editor, este ser cargado una sola vez. Si hay varios procesos que necesitan usar este cdigo, sus tablas de segmento contendrn apuntadores a la misma direccin de memoria donde est cargado el cdigo.

SEGMENTOS COMPARTIDOS.

PAGINAS COMPARTIDAS. Este mtodo utiliza paginacin como sistema base de la administracin de la memoria. Consiste en cargar una sola instancia de las paginas de cdigo a compartir y colocar apuntadores a estas pginas en las tablas de pginas de todos los procesos que utilizan el recurso. Ejemplo: Utilizando el mismo editor de textos cuyo cdigo ocupa 3 pginas. Se generaran 3 tablas de pgina como se ve en la siguiente figura:

CONCLUSIONES Cuando se trabaja con bloques de tamao fijo se genera la fragmentacin interna. Si los bloques son de tamao variable, se genera la fragmentacin externa. Concluimos que el proceso de compactacin es una instancia particular del problema de asignacin de memoria dinmica, el cual es el cmo satisfacer una necesidad de tamao n con una lista de huecos libres. Las direcciones de memoria son de tres tipos: fsicas, lgicas y lineales. El objetivo del intercambio es dar cabida a la ejecucin de ms aplicaciones de las que pueden residir simultneamente en la memoria del sistema.

Você também pode gostar