domingo, 26 de mayo de 2013

Particiones Fijas y Dinamicas

Particiones Fijas

Consiste en dividir la memoria libre en varias partes de igual o diferentes tamaños. cuando se tiene una particion fija de partes iguales encontramos dos problemas:

  • Un programa que sea demasiado grande para caber en la particion, de presentarse esta situacion el programador debe realizar el diseño del programa utilizando superposiciones para que solo una parte del programa este en memoria principal. Cuando se necesita un modulo que no esta presente el programa del usuario debe cargar dicho modulo en la particion del programa superponiéndose a los programas y datos que se encuentren en ella. 
  • El uso de memoria es ineficiente. Cualquier programa sin importar que tan pequeño sea ocupara una particion completa, suponiendo que se carga un programa de 120k y la particion a donde va es de 520k, se malgasta el espacio interno de la particion generando algo denominado fragmentacion interna.
Si se tienen particiones de igual tamaño y todas las particiones estuvieran con procesos que no estan listos para ser ejecutados y es necesario cargar un nuevo proceso, se debe determinar que particion debe ser expulsada llamando esta accion como una decisión de planificación.
Cuando son particiones con distintos tamaños, se debe definir en que particion se cargara el nuevo proceso, una forma simple de realizar esto es asignar cada proceso a la particion mas pequeña en que quepa, necesitando esto una cola de expulsados para cada particion, tambien se podria asignar al proceso a la particion mas pequeña entre aquellas que estan libres (utilizando una unica cola para todos los procesos), si todas las particiones estan ocupadas, se debe tomar una decision de intercambio. Con la paginacion fija se hace una suposición de que se conoce la cantidad máxima de memoria que necesitara un proceso, lo que no siempre es cierto.


Particiones Dinamicas

Este método consiste en particiones de memoria de tamaños variable, o sea, a cada proceso se le asigna la cantidad de memoria que necesita (la cantidad exacta y ni un poco más). Tras el ingreso de nuevos procesos y la expulsión de otras, se generarán huecos de memoria inutilizados. Conforme pasa el tiempo, la memoria comienza a estar más fragmentada y su rendimiento decae; este fenómeno se denomina fragmentación externa.

Una técnica para superar la fragmentación externa es la compactación. De vez en cuando, el sistema operativo desplaza los procesos para que estén contiguos de forma que toda la memoria libre quede junta en un bloque. Las dificultades que presenta la compactación son:

  • Es un procedimiento que consume tiempo de trabajo del procesador
  • Debe realizarse los movimientos de una región a otra, sin invalidar las referencias a memoria del programa

A pesar de la compactación, deben utilizarse algunos algoritmos para la ubicación de procesos en las particiones. Estos algoritmos son:
  • Mejor ajuste (Best-fit): se elige el bloque con el tamaño más parecido al del proceso entrante.
  • Primer ajuste (First-fit): comienza recorriendo la memoria desde el comienzo y escoge el primer bloque disponible en el que entre el proceso entrante.
  • Siguiente ajuste (Next-fit): recorre la memoria desde el lugar de la última ubicación y elige el siguiente bloque disponible que sea suficientemente grande.
  • Peor ajuste (Worst-fit): elige el bloque más grande posible.





No hay comentarios.:

Publicar un comentario