Particionamientodinamico

10
PARTICIÓN DINÁMICA El número de particiones y su tamaño es variable, las cuales son creadas dinámicamente para que se acomoden a las necesidades de cada proceso solicitante. Cuando un proceso termine o sea retirado de memoria el gestor de de memoria puede devolver el espacio vacante al fondo de áreas de memoria libres a partir del cual se efectúan las asignaciones de particiones. El gestor de memoria puede continuar creando y asignando particiones a procesos solicitantes hasta que agote toda la memoria física o alcance el máximo grado de multiprogramación permitido.

description

Redes

Transcript of Particionamientodinamico

Page 1: Particionamientodinamico

PARTICIÓN DINÁMICA

El número de particiones y su tamaño es variable, las cuales son creadas dinámicamente para que se acomoden a las necesidades de cada proceso solicitante.

Cuando un proceso termine o sea retirado de memoria el gestor de de memoria puede devolver el espacio vacante al fondo de áreas de memoria libres a partir del cual se efectúan las asignaciones de particiones.

El gestor de memoria puede continuar creando y asignando particiones a procesos solicitantes hasta que agote toda la memoria física o alcance el máximo grado de multiprogramación permitido.

Page 2: Particionamientodinamico

PARTICIÓN DINÁMICA

Principios de Operación: * Cuando se le pide que carge una imagen de proceso, el módulo de gestión de memoria del SO intenta crear una partición adecuada para asignar al proceso solicitante.

-Para lo cual se debe localizar un área libre contigua de memoria que sea igual o mayor que el tamaño del proceso, si se encuentra un área libre adecuada. -El SO fabrica una partición a partir de ella para conseguir un ajuste exacto a las necesidades del proceso, el trozo restante de memoria libre, es devuelto al fondo de la memoria libre para ser usado posteriormente por el módulo asignación. -  La partición se crea introduciendo su base, tamaño y estado (ASIGNADA) en la TDP.

Page 3: Particionamientodinamico

PARTICIÓN DINÁMICA

-  * Si no es posible asignarle un área libre adecuada, el SO devuelve una indicación de error.

* Cuando un proceso termina o es retirado de memoria, el SO devuelve el espacio de la partición al fondo de la memoria libre e invalida la entrada correspondiente a la TDP. * Cuando una partición es creada se le atribuyen dirección, tamaño y base los cuales permanecen inalterados hasta que exista la partición.

* Las áreas libres de memoria se producen al terminar de usar particiones y con los restos generados por la creación de particiones.

* Para la creación y asignación de particiones el SO debe llevar la cuenta de las direcciones iniciales y el tamaño de cada área libre de memoria.

Page 4: Particionamientodinamico

PARTICIÓN DINÁMICA

-  A continuación se citan el proceso de creación de las particiones:

* El sistema es inicializado declarando como libre toda la memoria disponible para asignación dinámica y marcando como no USADA todas las entradas de la TDP. *La lista de espacio libre contiene una sola entrada: toda la memoria disponible formando un solo bloque contiguo. Desde ese momento, la creación de una partición P de tamaño P_TAMAÑO se efectúa así: -Buscar en la lista de memoria libre un área libre L, tal que L_TAMAÑO ≥ P_TAMAÑO, en caso de no encontrar ninguna se termina con un error. - Calcular DIFE=L_TAMAÑO – P_TAMAÑO. Si DIFE ≤ c; donde c es una constante (pequeña), asignar entonces el área libre entera para crear la partición P haciendo P_TAMAÑO= L_TAMAÑO y P_BASE=L_BASE, ajustando los enlaces de los bloques adyacentes en la lista de memoria libre.

Page 5: Particionamientodinamico

PARTICIÓN DINÁMICA

-  Si DIFE > c; entonces asignar espacio a la partición P en el bloque L, haciendo P_BASE= L_BASE, en donde L_BASE= P_BASE + P_TAMAÑO, y L_TAMAÑO= L_TAMAÑO – P_TAMAÑO. Encontrar una entrada no utilizada en la TDP y anotar en ella la base (P_BASE) y el tamaño (P_TAMAÑO). Cambiar el estado a asignada.

Anotar el número de entrada en la TDP en el bloque de control del proceso, T, para el cual se está creando la partición P.

Los Algoritmos más habituales para la selección de un área libre de memoria en la creación de una partición son:

* Primer Ajuste y su variante, siguiente ajuste. * Mejor Ajuste. * Peor Ajuste.

Page 6: Particionamientodinamico

PARTICIÓN DINÁMICA

-  El siguiente ajuste es una modificación del primer ajuste en donde el puntero a lista de memoria libre se guarda después de una asignación y se utiliza para comenzar a partir de él búsqueda de la asignación siguiente; en donde la siguiente búsqueda continúa en donde se quedó la última, en vez de comenzar siempre desde el principio de la lista de memoria libre.

El primer ajuste y el mejor ajuste se encuentran entre los algoritmos más populares para asignación dinámica de memoria; así el primer ajuste recorre la mitad de la lista de memoria libre entera siendo más rápido pero no minimiza la memoria desaprovechada para una asignación determinada; en cambio el mejor ajuste es más lento y tiende a producir bloques de restos libres pequeños que puedan resultar demasiado pequeños para asignaciones posteriores.

Page 7: Particionamientodinamico

PARTICIÓN DINÁMICA

-  Las particiones pueden terminarse después de un intercambio o tras la finalización del proceso R de la siguiente forma:

1. Usar el bloque del control de R para localizar la entrada en TDP, TDP[BCP[R]], que describe la partición P que va a ser anulada.

2. Si el proceso R va a ser retirado de memoria, copiar su imagen en tiempo de ejecución desde la partición P al lugar designado en el archivo de intercambio.

3. Hacer que el puntero [BCP[R]], a la partición asignada tome el valor de NINGUNA.

4. Devolver P a la lista de memoria libre, e integrarla con las áreas libres vecinas si es posible.

5. Invalidar la entrada en TDP que describe la partición anulada.

Page 8: Particionamientodinamico

COMPACTACIÓN

-  La integración de áreas libres adyacentes cuando se devuelven bloques libres es un método normalmente utilizado para reducir la fragmentación, y consecutivamente la cantidad de memoria desaprovechada.

La compactación de memoria es utilizada para

solucionar la memoria fragmentada, la cual consiste en reubicar algunas o todas las particiones en un extremo de la memoria y así combinar los huecos en un área libre grande. La compactación puede realizarse siempre que sea posible o sólo cuando sea necesaria.

Existen dos clases de traslados de las particiones: selectivo y global.

Page 9: Particionamientodinamico

PROTECCIÓN

Page 10: Particionamientodinamico

COMPARTICIÓN