• El tamaño asignado para cada partición es el mismo.
• Cada partición, será ocupada por un proceso de menor o igual tamaño.
• El programador debe diseñar el programa mediante superposiciones, para que sólo una parte del programa esté en la memoria principal en cada instante (Overlay).
Memoria Principal
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
8M
8M
8M
8M
8M
8M
8M
Partición Libre
Imaginemos que el Proceso 1, de 5M, se carga en la Partición 1, de 8M.
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
8M
8M
8M
8M
8M
8M
8M
5M
3M
8M
Memoria Secundaria
Memoria Principal
5MCuando se carga el proceso a la Memoria Principal, este no se borra de la Memoria Secundaria.
Proceso 1
Proceso 2
Proceso 3
Aquí ocurre una fragmentación interna.
Fragmentación Interna.- Malgaste del espacio interno de una partición cuando el proceso cargado es mas pequeño que la partición.
En este ejemplo hubo una fragmentación interna de 3M.
FI=Tamaño_Partición-Tamaño_ProcesoN
FI=8M-5M
FI=3M*FI.- Fragmentación Interna
Ahora el Proceso 2 lo trataremos de cargar a X Partición.
FI 3M
Partición Libre
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
8M
8M
8M
8M
8M
8M
8M
5M
3M
8M
Memoria Secundaria
Memoria Principal
Proceso 1
Proceso 2
Proceso 3
Ahora el Proceso 2 lo trataremos de cargar a X Partición.
FI 3M
5M
3M
Error, debido a que como ya se había mencionado, cada partición será ocupada por un proceso de menor o igual tamaño.
La partición 1 ya fue ocupada por el Proceso 1.La selección de la partición en la cuál será cargado el proceso se hace al azar.
Fragmentación Interna FI 5M
3M
Partición Libre
Y se desea cargar el proceso 3 en memoria principal.
Debido a que todas las particiones están ocupadas, se deberá descargar un proceso. Existen varios métodos para saber que proceso descargar, como lo son;
•Tomar en cuenta la prioridad de los procesos.
•Preferencias a descargar procesos bloqueados antes que procesos listos.
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
8M
8M
8M
8M
8M
8M
8M
5M
3M
8M
Memoria Secundaria
Memoria Principal
Proceso 1
Proceso 2
Proceso 3
FI 3M
5M
3M
FI 5M
3M
Ahora bien, supongamos que todas las particiones están ocupadas.
8M
FI 2M
6M
8M
FI 1M
7M
FI 6M
2M
Partición Libre
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
8M
8M
8M
8M
8M
8M
8M
5M
3M
8M
Memoria Secundaria
Memoria Principal
Proceso 1
Proceso 2
Proceso 3
FI 3M
5M
3M
FI 5M
3M
8M
FI 2M
6M
8M
FI 1M
7M
FI 6M
2MTomaremos al proceso que se encuentra en la partición 5 como el de menos prioridad.
El proceso descargado de memoria principal se borra de esta memoria, mas no se regresa a la memoria secundaria
Ahora la partición 5 está libre para ser ocupada.
Partición Libre
Puntos para recordar:
•El Sistema Operativo es el que define el tamaño de la partición de la Memoria Principal.
•El numero de particiones activas, limita el número de procesos activos.
•Los procesos pequeños no hacen uso eficiente de toda la memoria de la partición. (Fragmentación Interna)
•Poca sobrecarga del Sist. Operativo.
•Sencilla de implementar.
•Este tipo de partición es casi nulo el día de hoy.
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
8M
8M
8M
8M
8M
8M
8M
5M
3M
8M
Memoria Secundaria
Memoria Principal
Proceso 1
Proceso 2
Proceso 3
FI 3M
5M
3M
FI 5M
3M
8M
FI 2M
6M
8M
FI 1M
7M
Ahora la partición 5 está libre para ser ocupada.
El proceso 3 se carga en la partición 5.
No existe desfragmentación interna ya que el proceso tiene el mismo tamaño que la partición.
8M
Partición Libre
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
• El tamaño y numero de particiones es variable.
• Cada proceso se carga en una partición de exactamente el mismo tamaño.
•El sistema operativo es el que decide como asignar adecuadamente un proceso a memoria.
Partición Libre
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
Los tres algoritmos de ubicación que se pueden considerar son:
•First-Fit (Primer Ajuste)
•Best-Fit (Mejor Ajuste)
•Next-Fit (Siguiente Ajuste)
Partición Libre
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
Para explicar mejor este tipo de partición, se mostraran varios procesos ya cargados. 7M
4M
8M
Partición Libre
Este tipo de algoritmo comienza recorriendo la memoria desde el principio y escoge la primera partición disponible donde quepa el proceso a cargar.
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
7M
4M
8M
Partición Libre
Este tipo de algoritmo comienza recorriendo la memoria desde el principio y escoge la primera partición disponible donde quepa el proceso a cargar.
Vamos a cargar el Proceso 1, que tiene el tamaño de 5M.
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
7M
4M
8M
Partición Libre
Vamos a cargar el Proceso 1, que tiene el tamaño de 5M.
5M
Vamos a recorrer la memoria principal desde el principio, hasta que encontremos una partición donde quepa el Proceso 1.
¿El Proceso 1 se podrá cargar en la Partición 1?
Respuesta: NO
Pero, ¿Por qué?
Debido a que el tamaño del Proceso es mayor a la Partición.
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
7M
4M
8M
Partición Libre
5M
Vamos a recorrer la memoria principal desde el principio, hasta que encontremos una partición donde quepa el Proceso 1.
¿El Proceso 1 se podrá cargar en la Partición 1?
Respuesta: NO
Pero, ¿Por qué?
Debido a que el tamaño del Proceso es mayor a la Partición.
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
7M
4M
8M
Partición Libre
Ahora recorremos la memoria, para ver si encontramos una partición donde quepa el Proceso1.
¿El Proceso 1 se podrá cargar en la Partición 2?
5M
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
7M
4M
8M
Partición Libre
Pero, ¿Por qué?
Debido a que el tamaño del Proceso es menor a la Partición.
Ahora recorremos la memoria, para ver si encontramos una partición donde quepa el Proceso1.
¿El Proceso 1 se podrá cargar en la Partición 2?
Respuesta: SI
5M
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
7M
4M
8M
Partición Libre
Pero, ¿Por qué?
Debido a que el tamaño del Proceso es menor a la Partición.
Ahora recorremos la memoria, para ver si encontramos una partición donde quepa el Proceso1.
¿El Proceso 1 se podrá cargar en la Partición 2?
Respuesta: SI
5M
Fragmentación Externa.- El espacio sobrante donde el proceso cargado no ocupa la partición.
En este ejemplo hubo una fragmentación externa de 3M.
FE=Tamaño_Partición-Tamaño_ProcesoN
FE=8M-5M
FE=3M*FE.- Fragmentación Externa
Aquí ocurre una fragmentación externa. 3M
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
7M
4M
8M
Partición Libre
5M
Fragmentación Externa.- El espacio sobrante donde el proceso cargado no ocupa la partición.
En este ejemplo hubo una fragmentación externa de 3M.
FE=Tamaño_Partición-Tamaño_ProcesoN
FE=8M-5M
FE=3M*FE.- Fragmentación Externa
Aquí ocurre una fragmentación externa. 3MEn contraste con la Partición Estática, aquí si puede ser utilizado por otros proceso el Fragmento sobrante.
En contraste con la Partición Estática, aquí si puede ser utilizado por otros proceso el Fragmento sobrante.
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
7M
4M
8M
Partición Libre
Este tipo de algoritmo elige la partición de tamaño más aproximado al tamaño del proceso.
Vamos a cargar el Proceso 1, que tiene el tamaño de 5M.
5M2MFragmentación Externa
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
7M
4M
8M
Partición Libre
5M2MFragmentación Externa
5M
Este tipo de algoritmo recorre la memoria desde el lugar de la última ubicación y elige la siguiente partición disponible, donde quepa el proceso.
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
7M
4M
8M
Partición Libre
5M
Este tipo de algoritmo recorre la memoria desde el lugar de la última ubicación y elige la siguiente partición disponible, donde quepa el proceso.
Supongamos que la última ubicación hecha fue esta.
Por lo que dice el algoritmo Next-Fit, se deberá de ubicar el proceso a cargar en esta partición.
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
16M
Memoria Principal
4M
7M
4M
8M
Partición Libre
5M
Supongamos que la última ubicación hecha fue esta.
Por lo que dice el algoritmo Next-Fit, se deberá de ubicar el proceso a cargar en esta partición.
5M
11M
¿Cuál de estos métodos es mejor?
El algoritmo First-Fit
•Es el mas más sencillo, el mejor y más rápido.
El algoritmo Best-Fit
•Es el peor, debido a que deja muchos fragmentos pequeños. (Fragmentación Externa)
El algoritmo Next-Fit
•Suele dividir mucho los fragmentos grandes.
5M
3M
8M
Memoria Secundaria
Proceso 1
Proceso 2
Proceso 3
3M
Partición 1
Partición 2
Partición 3
Partición 4
Partición 5
Partición 6
Partición 7
3M
8M
7M
7M
8M
Memoria Principal
4M
7M
4M
8M
Partición Libre
5M5M
11M
¿Cuál de estos métodos es mejor?
El algoritmo First-Fit
•Es el mas más sencillo, el mejor y más rápido.
El algoritmo Best-Fit
•Es el peor, debido a que deja muchos fragmentos pequeños. (Fragmentación Externa)
El algoritmo Next-Fit
•Suele dividir mucho los fragmentos grandes.
5M
Libro de Consulta
Stallings,Williams, “Sistemas Operativos”, Prentice Hall