22

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

Embed Size (px)

Citation preview

Page 1: 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
Page 2: 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

• 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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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

Page 8: 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

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

Page 9: 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

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

Page 10: 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

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.

Page 11: 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

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.

Page 12: 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

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.

Page 13: 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

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.

Page 14: 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

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

Page 15: 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

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

Page 16: 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

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

Page 17: 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

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.

Page 18: 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

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

Page 19: 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

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.

Page 20: 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

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.

Page 21: 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

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.

Page 22: 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

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