Asignación de memoria

9,708 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
9,708
On SlideShare
0
From Embeds
0
Number of Embeds
30
Actions
Shares
0
Downloads
109
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Asignación de memoria

  1. 1. Asignación de Memorias Antiguas<br />
  2. 2. 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.<br />La memoria esta divida en 2 partes:<br />Otra para los procesos de usuario<br />Una para el sistema operativo residente<br />
  3. 3. 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.<br />
  4. 4. Mapeo en memoria y protección<br />Antes de analizar la asignación de memoria, se debe analizar la conversión de memoria y protección.<br />Se puede proporcionar estas características utilizando un registro de reubicación como se han analizado en las secciones anteriores.<br />El registro de reubicaciones contiene el valor de dirección física mas pequeña <br />El registro limite en cambio contiene el rango de direcciones lógicas.<br />
  5. 5. Con los registros anteriores cada dirección lógica debe ser menor al valor contenido en el registro limite.<br />Registro limite<br />Registro de reubicación<br />memoria<br />+<br />CPU<br /><<br />Interrupción: error de direccionamiento <br />
  6. 6. 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.<br />El esquema basado en registros de reubicación constituye una forma efectiva de permitir el tamaño flexible del sistema operativo. <br />
  7. 7. Asignación de memoria<br />Uno de los métodos mas simples para asignar memoria consiste en dividirla en varia particiones de tamaño fijo.<br />Cada partición contiene exactamente un proceso así que el grado de multiprogramación estará limitado por el numero de particiones disponibles.<br />
  8. 8. 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.<br />MFT.- IBM OS/360 el cual ya no se utiliza<br />MVT.-en entorno de procesamiento por lotes<br />
  9. 9. En la particiones fijas en un sistema operativo en una tabla indica que particiones de memoria están disponibles y ocupadas.<br />Las disponibles son para los procesos de usuario y un bloque de gran tamaño de memoria al cual se lo denomina agujero.<br />Cuando llega un proceso y necesita memoria buscamos un agujero grande para albergar este proceso.<br />Si se encuentra solo se asigna la memoria justa y necesaria y dejando el resto de memoria justo y disponible para futuras solicitudes.<br />
  10. 10. A medida que entra los procesos se colocan en una cola de entrada<br />Cuando asignamos espacio a un proceso, se carga en memoria y puede comenzar a competir por el uso de la CPU.<br />Cuando un proceso termina libera la memoria y otro proceso ocupa su lugar extraído de la cola de entrada<br />
  11. 11. 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<br />
  12. 12. 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<br />1.-Asigna una parte al proceso que llega<br />2.-devuelve la otra al conjunto de agujeros<br />Cuando el proceso termina libera el bloque de memoria, que se vuelve a colocar en el conjunto de agujeros.<br />
  13. 13. Si el nuevo agujero es adyacente a otros agujeros se lo combinan para formar otros de gran tamaño<br />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.<br />
  14. 14. Asignación dinámica de espacio de almacenamiento<br />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.<br />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<br />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.<br />
  15. 15. 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).<br />La del primer ajuste es mas rápida de implementar.<br />
  16. 16. FRAGMENTACIÓN<br />Como ya hemos analizado posteriormente las estrategias de ajuste sufren de un problema denominado fragmentación externa. <br />A medida que los procesos se cargan en memoria y se los elimina, el espacio de memoria libre se descompone en pequeños fragmentos.<br />
  17. 17. Problema de la Fragmentación<br />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.<br />
  18. 18. 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.<br />Los mecanismos de ajuste pueden afectar al grado de fragmentación.<br /> Otro factor a tomar en cuenta es el extremo de un bloque libre que se asigne.<br />
  19. 19. El análisis estadístico de la estrategia de primer ajuste nos revela que si:<br />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.<br />La fragmentación de memoria también pude ser interna.<br />Consideremos un sistema de asignación de particiones múltiples con un agujero de 18464 bytes. <br />
  20. 20. 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. <br />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.<br />
  21. 21. Una solución a la fragmentación externa consiste en la compactación<br />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.<br />Sin embargo esto no es siempre posible.<br />Si la reubicación es estática y se lleva a cabo en tiempo de ensamblado o carga.<br />La compactación es posible si la reubicación es dinámica y se lleva a cabo en tiempo de ejecución.<br />

×