asignación de memoria

21
Asignación de Memorias Antiguas

Upload: guestca1de2e

Post on 13-Jun-2015

7.304 views

Category:

Education


5 download

TRANSCRIPT

Page 1: Asignación de memoria

Asignación de Memorias Antiguas

Page 2: Asignación de memoria

La memoria principal debe albergar tanto el sistema operativo como los diversos procesos de usuario .Por tanto necesitamos asignar las distintas partes de la memoria principal de la forma mas eficiente posible.La memoria esta divida en 2 partes:

Una para el sistema operativo residente

Otra para los procesos de usuario

Page 3: Asignación de memoria

El principal factor que afecta a esta decisión es la ubicación del vector de interrupciones . Puesto que el vector de interrupciones se encuentran a menudo en la parte baja de la memoria , los programadores tienden a situar también el sistema operativo en dicha zona.

Page 4: Asignación de memoria

Mapeo en memoria y protección

Antes de analizar la asignación de memoria, se debe analizar la conversión de memoria y protección.

Se puede proporcionar estas características utilizando un registro de reubicación como se han analizado en las secciones anteriores.

El registro de reubicaciones contiene el valor de dirección física mas pequeña

El registro limite en cambio contiene el rango de direcciones lógicas.

Page 5: Asignación de memoria

Con los registros anteriores cada dirección lógica debe ser menor al valor contenido en el registro limite.

CPU < + memoria

Interrupción: error de direccionamiento

Registro limite

Registro de reubicación

Page 6: Asignación de memoria

Cuando el planificador selecciona u proceso para su ejecución, carga ambos registros con los valores correctos, como parte del proceso de cambio de contexto. Todas las direcciones generadas por la CPU se comparan con estos registros. Este mecanismo nos permite la protección del sistemas y de los datos de los demás usuarios.

El esquema basado en registros de reubicación constituye una forma efectiva de permitir el tamaño flexible del sistema operativo.

Page 7: Asignación de memoria

Asignación de memoria

Uno de los métodos mas simples para asignar memoria consiste en dividirla en varia particiones de tamaño fijo.

Cada partición contiene exactamente un proceso así que el grado de multiprogramación estará limitado por el numero de particiones disponibles.

Page 8: Asignación de memoria

Método partición múltiple cuando una partición esta libre se selecciona un proceso de la cola de entrada y se lo carga en dicha partición cuando el proceso termina la partición pasa a estar disponible para otro proceso.

MFT.- IBM OS/360 el cual ya no se utiliza

MVT.-en entorno de procesamiento por lotes

Page 9: Asignación de memoria

En la particiones fijas en un sistema operativo en una tabla indica que particiones de memoria están disponibles y ocupadas.

Las disponibles son para los procesos de usuario y un bloque de gran tamaño de memoria al cual se lo denomina agujero.

Cuando llega un proceso y necesita memoria buscamos un agujero grande para albergar este proceso.

Si se encuentra solo se asigna la memoria justa y necesaria y dejando el resto de memoria justo y disponible para futuras solicitudes.

Page 10: Asignación de memoria

A medida que entra los procesos se colocan en una cola de entrada

Cuando asignamos espacio a un proceso, se carga en memoria y puede comenzar a competir por el uso de la CPU.

Cuando un proceso termina libera la memoria y otro proceso ocupa su lugar extraído de la cola de entrada

Page 11: Asignación de memoria

En un momento se tiene la lista de tamaños de bloques disponibles y una cola de entrada de procesos, se la puede ordenar de acuerdo algún algoritmo de planificación

Page 12: Asignación de memoria

Si tiene un conjunto de agujero de diversos tamaños dispersos en la memoria, cuando llega un proceso a la memoria explora y busca un agujero lo bastante grande para albergar este proceso, si el agujero es demasiado grande se lo divide en dos partes

1.-Asigna una parte al proceso que llega 2.-devuelve la otra al conjunto de agujeros Cuando el proceso termina libera el bloque de

memoria, que se vuelve a colocar en el conjunto de agujeros.

Page 13: Asignación de memoria

Si el nuevo agujero es adyacente a otros agujeros se lo combinan para formar otros de gran tamaño

En este punto el sistema tiene que comprobar si hay procesos esperando a que se les asigne memoria y si esta nueva memoria liberada y recombinada permite satisfacer la demanda de algunos procesos en espera.

Page 14: Asignación de memoria

Asignación dinámica de espacio de almacenamiento

Primer ajuste.- se asigna el primer agujero que se a lo suficientemente grande, puede comenzar del principio o en el punto anterior de exploración del conjunto de agujeros.

Mejor ajuste.- se asigna el agujero mas pequeño que tenga tamaño suficiente se explora la lista completa a menos que este ordenada según su tamaño

Peor ajuste.- se asigna el agujero mas mayor de tamaño se explora la lista completa a menos que este ordenada según por tamaños crea el agujero mas grande con la memoria sobrante del agujero original resulta mas útil el agujero mas pequeño generado con la técnica del mejor ajuste.

Page 15: Asignación de memoria

Las simulaciones muestra que el primer ajuste y el mejor ajuste son mejores que el peor ajuste en términos de (tiempo necesario, utilización de espacio de almacenamiento).

La del primer ajuste es mas rápida de implementar.

Page 16: Asignación de memoria

FRAGMENTACIÓN

Como ya hemos analizado posteriormente las estrategias de ajuste sufren de un problema denominado fragmentación externa.

A medida que los procesos se cargan en memoria y se los elimina, el espacio de memoria libre se descompone en pequeños fragmentos.

Page 17: Asignación de memoria

Problema de la Fragmentación

El problema de las fragmentación externa surge cuando hay un espacio de memoria total suficiente para satisfacer una solicitud, pero estos espacios que se encuentran disponibles no son contiguos, el espacio de almacenamiento se encuentra fragmentado en una gran cantidad de agujeros de pequeño tamaño.

Page 18: Asignación de memoria

El problema de la fragmentación puede llegar a ser grave. En el peor de los casos se puede producir un bloqueo de memoria libre cada 2 procesos. Si todos los fragmentos se encontraran en un solo espacio libre de mayor tamaño, podríamos ser capaces ejecutar varios procesos mas.

Los mecanismos de ajuste pueden afectar al grado de fragmentación.

Otro factor a tomar en cuenta es el extremo de un bloque libre que se asigne.

Page 19: Asignación de memoria

El análisis estadístico de la estrategia de primer ajuste nos revela que si:› Si tenemos N bloques asignados, se

perderán otros 0,5 N bloques debido a la fragmentación, es decir un tercio de la memoria puede no ser utilizable.

La fragmentación de memoria también pude ser interna.

Consideremos un sistema de asignación de particiones múltiples con un agujero de 18464 bytes.

Page 20: Asignación de memoria

Suponiendo que el siguiente proceso necesita 18452 bytes, si se hace la asignación se tendrá un agujero de 2 bytes. El espacio de memoria adicional para llevar el control de este agujero será sustancialmente mayor que el propio agujero.

La técnica mas usada para resolver este problema consiste en descomponer la memoria física en bloques de tamaño fijo y la asignación de memoria en unidades basadas en el bloque.

Page 21: Asignación de memoria

Una solución a la fragmentación externa consiste en la compactación

El objetivo es mover el contenido de la memoria con el fin de situar la memoria libre de manera contigua formando un bloque de gran tamaño.

Sin embargo esto no es siempre posible.› Si la reubicación es estática y se lleva a

cabo en tiempo de ensamblado o carga. La compactación es posible si la

reubicación es dinámica y se lleva a cabo en tiempo de ejecución.