Está en la página 1de 20

INF-151 Sistemas operativos

PRACTICA
ADMINISTRACIÓN DE MEMORIA
Apellidos y Nombre: Condori Titto Elias CI: 13627056 LP
PREGUNTAS TEÓRICAS
1. ¿Qué requisitos se intenta satisfacer en gestión de la memoria?

En la gestión de la memoria, se intentan satisfacer varios requisitos importantes, entre ellos:

Utilización eficiente de la memoria: Se busca aprovechar al máximo el espacio de memoria disponible


para almacenar los procesos y datos, evitando desperdicios y asegurando que se asignen los recursos
necesarios de manera óptima.

Protección y seguridad: Se requiere proteger la memoria de accesos no autorizados o incorrectos por


parte de los procesos. Esto implica establecer mecanismos de protección y segmentación que eviten
interferencias y garantizar la integridad de los datos almacenados.

Transparencia: Los programas deben poder acceder a la memoria sin conocer los detalles físicos de su
gestión, es decir, no deben estar directamente preocupados por la asignación, liberación o localización
exacta de los bloques de memoria.

Compartir la memoria entre múltiples procesos: En sistemas multiusuario o multitarea, es importante


permitir que varios procesos compartan la memoria de manera segura y controlada. Esto implica
garantizar que los procesos no interfieran entre sí y que puedan acceder a los recursos compartidos de
forma adecuada.

2. ¿Cuál es la diferencia entre fragmentación interna y externa?

La diferencia entre fragmentación interna y externa se refiere a cómo se desperdicia o fragmenta el


espacio de memoria.

Fragmentación interna: Ocurre cuando hay un desperdicio de memoria dentro de un bloque asignado a
un proceso debido a la asignación de bloques de tamaño fijo. Puede suceder que el espacio asignado a
un proceso sea mayor que el tamaño real de los datos que se almacenan, lo que resulta en un espacio no
utilizado dentro del bloque asignado.

Fragmentación externa: Se produce cuando hay suficiente memoria libre total, pero no se puede asignar
a un proceso debido a que el espacio está dividido en bloques pequeños y dispersos. La fragmentación
externa puede dificultar la asignación de bloques contiguos lo suficientemente grandes para satisfacer las
solicitudes de memoria, lo que lleva a una utilización ineficiente de la memoria.
3. ¿Cuál es la diferencia entre una p ́agina y un marco?

Una página y un marco son conceptos relacionados con la administración de la memoria virtual.

Página: Es una unidad de memoria virtual utilizada en sistemas de paginación. Representa un fragmento
contiguo de memoria virtual y suele tener un tamaño fijo. La memoria virtual se divide en páginas, y
cuando un proceso necesita acceder a una dirección de memoria, se realiza una traducción de la dirección
virtual a una dirección física correspondiente a una página en la memoria real.

Marco: Es una unidad de memoria física utilizada en sistemas de paginación. Representa un bloque
contiguo de memoria física con un tamaño fijo, generalmente del mismo tamaño que una página. Los
marcos de memoria física se utilizan para almacenar las páginas de memoria virtual cuando se lleva a
cabo el proceso de asignación y administración de la memoria.
4. ¿Cuál es la diferencia entre una p ́agina y un segmento?

La diferencia entre una página y un segmento radica en cómo se divide la memoria en unidades lógicas.

Página: Como se mencionó anteriormente, una página es una unidad de memoria virtual utilizada en
sistemas de paginación. Se divide la memoria virtual y física en páginas del mismo tamaño. El sistema
operativo gestiona la asignación y traducción de direcciones virtuales a direcciones físicas mediante la
tabla de páginas.

Segmento: Un segmento es una unidad lógica de memoria que puede ser de diferentes tamaños y no
necesariamente contigua. Los segmentos representan bloques de código, datos o pila de un programa.
Cada segmento tiene una dirección base y una longitud, y el sistema operativo realiza la asignación de
segmentos en la memoria física.

5. ¿Cuál es la relación entre los algoritmos de reemplazo de p ́aginas FIFO y del reloj?

La relación entre los algoritmos de reemplazo de páginas FIFO (First-In-First-Out, Primero en entrar,
primero en salir) y del reloj está en su funcionamiento y objetivo general, pero difieren en la forma en
que se implementan.

FIFO: El algoritmo de reemplazo de páginas FIFO se basa en la idea de que la página más antigua en
entrar es la primera en ser reemplazada cuando se necesita espacio para una nueva página. Se mantiene
una lista o cola de páginas en orden de llegada, y cuando se necesita liberar una página, se selecciona la
más antigua según esa lista.

Algoritmo del reloj: También conocido como algoritmo de reemplazo de páginas LRU (Least Recently
Used, Menos Recientemente Utilizada), el algoritmo del reloj se basa en un enfoque circular. Se utiliza
una estructura de datos llamada "bit de referencia" que se actualiza cada vez que se accede a una página.
Cuando se necesita reemplazar una página, se examinan los bits de referencia en orden circular hasta
encontrar una página con un bit de referencia igual a cero. Si no se encuentra ninguna página con el bit
de referencia igual a cero, se realiza un segundo barrido y se establecen todos los bits de referencia en
cero, y se selecciona la primera página que se encuentre con bit de referencia cero.
En resumen, mientras FIFO se basa en el orden de llegada de las páginas para el reemplazo, el algoritmo
del reloj utiliza un bit de referencia para determinar cuál es la página menos recientemente utilizada.

GUÍA DE GESTIÓN DE MEMORIA


1. Si se utilizar un esquema de particionamiento dinámico y en un determinado momento la
configuración de memoria es la siguiente:

Las áreas sombreadas son bloques asignados; las áreas blancas son libros. Las siguiente tres
peticiones de memoria son de 30M, 10M, 40M y 5M. Indique la dirección inicial para cada uno de
los tres bloques utilizando los siguientes algoritmos de colocación:
a) Primer ajuste
b) Mejor ajuste
c) Siguiente ajuste. Asúmase que el bloque añadido más recientemente se encuentra al
comienzo de la memoria.
d) Peor ajuste.

2. Un bloque de memoria de 1 Mbyte se asigna utilizando el sistema buddy:


a) Petición 70; Petición 35; Petición 120; Respuesta A; Petición 30; Respuesta B; Respuesta D;
Respuesta C

• Petición 70: El bloque se divide en dos bloques de 512 KB cada uno. Se asigna uno de los bloques
de 512 KB.
• Petición 35: No hay bloques de 256 KB disponibles, por lo que no se puede satisfacer la petición.
• Petición 120: El bloque se divide en dos bloques de 512 KB cada uno. Se asigna uno de los
bloques de 512 KB.
• Respuesta A: Se libera el bloque de 512 KB asignado a la petición 70.
• Petición 30: No hay bloques de 256 KB disponibles, por lo que no se puede satisfacer la petición.
• Respuesta B: Se libera el bloque de 512 KB asignado a la petición 120.
• Respuesta D: No se realiza ninguna acción, ya que no se ha liberado ningún bloque.
• Respuesta C: No se realiza ninguna acción, ya que no se ha liberado ningún bloque.

b) Mostrar la representación del árbol binario que sigue a Respuesta B


1 Mbyte
[1 Mbyte]
/ \
512 KB 512 KB
[512 KB] [512 KB]
3. Considérese un sistema de segmentación sencillo que tiene la siguiente tabla de
segmentación:
Segmento Dirección inicial Longitud (Bytes)
0 219 600
1 2300 14
2 90 100
3 1327 580
4 1952 96

En un sistema de segmentación, cada segmento tiene una dirección inicial y una longitud en bytes. Para
determinar la dirección física correspondiente a una dirección lógica en un segmento, se suma la
dirección inicial del segmento a la dirección lógica y se verifica si está dentro del rango de longitud del
segmento.

Dado el sistema de segmentación con la siguiente tabla:

Segmento 0: Dirección inicial: 219 Longitud: 600

Segmento 1: Dirección inicial: 2300 Longitud: 14

Segmento 2: Dirección inicial: 90 Longitud: 100

Segmento 3: Dirección inicial: 1327 Longitud: 580

Segmento 4: Dirección inicial: 1952 Longitud: 96

Para cada una de las siguientes direcciones lógicas, determinemos la dirección física o indiquemos si se
produce un fallo de segmento:

a) Dirección lógica: 0

No se produce un fallo de segmento para esta dirección lógica, ya que está dentro del rango del segmento
0. La dirección física correspondiente es la suma de la dirección inicial del segmento 0 (219) y la
dirección lógica (0), es decir, 219.

b) Dirección lógica: 198

No se produce un fallo de segmento para esta dirección lógica, ya que está dentro del rango del segmento
2. La dirección física correspondiente es la suma de la dirección inicial del segmento 2 (90) y la dirección
lógica (198), es decir, 288.

c) Dirección lógica: 1

No se produce un fallo de segmento para esta dirección lógica, ya que está dentro del rango del segmento
0. La dirección física correspondiente es la suma de la dirección inicial del segmento 0 (219) y la
dirección lógica (1), es decir, 220.
d) Dirección lógica: 530

Se produce un fallo de segmento para esta dirección lógica, ya que no está dentro del rango del segmento
3.

4. Considere un sistema de segmentación sencillo que tiene la siguiente tabla de segmentos:


Dirección Inicial Longitud (Bytes)
660 248
1752 422
22 198
996 604
155 342
788 455
Para cada una de las siguientes direcciones lógicas, determina la dirección física o indica si se
produce un fallo de segmento:
a) 0, 198
b) 2, 156
c) 1, 530
d) 3, 444
e) 0, 222
f) 5, 122
g) 6, 562

a) Dirección lógica: 0, 198

No se produce un fallo de segmento para esta dirección lógica. La dirección física correspondiente se
obtiene sumando la dirección inicial del segmento 0 (660) a la dirección lógica 0, lo que resulta en 660.
Para el segundo valor de la dirección lógica, se encuentra dentro del rango del segmento 2. La dirección
física correspondiente se obtiene sumando la dirección inicial del segmento 2 (22) a la dirección lógica
198, lo que resulta en 220.

b) Dirección lógica: 2, 156

No se produce un fallo de segmento para esta dirección lógica. La dirección física correspondiente se
obtiene sumando la dirección inicial del segmento 2 (22) a la dirección lógica 2, lo que resulta en 24.
Para el segundo valor de la dirección lógica, se encuentra dentro del rango del segmento 4. La dirección
física correspondiente se obtiene sumando la dirección inicial del segmento 4 (155) a la dirección lógica
156, lo que resulta en 311.

c) Dirección lógica: 1, 530

Se produce un fallo de segmento para esta dirección lógica, ya que el valor de la dirección lógica 1 está
fuera del rango de segmentos disponibles.
d) Dirección lógica: 3, 444

Se produce un fallo de segmento para esta dirección lógica, ya que el valor de la dirección lógica 3 está
fuera del rango de segmentos disponibles.

e) Dirección lógica: 0, 222

No se produce un fallo de segmento para esta dirección lógica. La dirección física correspondiente se
obtiene sumando la dirección inicial del segmento 0 (660) a la dirección lógica 0, lo que resulta en 660.
Para el segundo valor de la dirección lógica, se encuentra dentro del rango del segmento 2. La dirección
física correspondiente se obtiene sumando la dirección inicial del segmento 2 (22) a la dirección lógica
222, lo que resulta en 244.

f) Dirección lógica: 5, 122

No se produce un fallo de segmento para esta dirección lógica. La dirección física correspondiente se
obtiene sumando la dirección inicial del segmento 5 (788) a la dirección lógica 5, lo que resulta en 793.
Para el segundo valor de la dirección lógica, se encuentra dentro del rango del segmento 0. La dirección
física correspondiente se obtiene sumando la dirección inicial del segmento 0 (660) a la dirección lógica
122, lo que resulta en 782.

g) Dirección lógica: 6, 562

Se produce un fallo de segmento para esta dirección lógica, ya que el valor de la dirección lógica 6 está
fuera del rango de segmentos disponibles.

5. Establecer los porcentajes de uso y desperdicio de memoria considerando un sistema con


particiones de tamaño: 48, 128, 32, 256, 36, 256 y procesos de tamaño 40, 75, 55, 92, 24, 64,
50, 68 y 36.

Para determinar los porcentajes de uso y desperdicio de memoria en un sistema con particiones de
diferentes tamaños y procesos de diferentes tamaños, debemos asignar los procesos a las particiones y
calcular cuánto espacio se utiliza en cada partición y cuánto espacio queda sin utilizar.

Particiones:

1. Tamaño: 48
2. Tamaño: 128
3. Tamaño: 32
4. Tamaño: 256
5. Tamaño: 36
6. Tamaño: 256

Procesos:

1. Tamaño: 40
2. Tamaño: 75
3. Tamaño: 55
4. Tamaño: 92
5. Tamaño: 24
6. Tamaño: 64
7. Tamaño: 50
8. Tamaño: 68
9. Tamaño: 36

Asignemos los procesos a las particiones utilizando el algoritmo de mejor ajuste:

1. Proceso 1 (40) asignado a la partición 1 (48).


2. Proceso 2 (75) asignado a la partición 4 (128).
3. Proceso 3 (55) asignado a la partición 3 (32).
4. Proceso 4 (92) asignado a la partición 4 (256).
5. Proceso 5 (24) asignado a la partición 5 (36).
6. Proceso 6 (64) asignado a la partición 2 (256).
7. Proceso 7 (50) asignado a la partición 5 (36).
8. Proceso 8 (68) asignado a la partición 2 (256).
9. Proceso 9 (36) asignado a la partición 1 (48).

Ahora calculemos los porcentajes de uso y desperdicio de memoria:

Partición 1:

• Tamaño: 48
• Utilizado: 40 (Proceso 1) + 36 (Proceso 9) = 76
• Desperdicio: 48 - 76 = -28 (no se desperdicia espacio)

Partición 2:

• Tamaño: 128
• Utilizado: 75 (Proceso 2) + 64 (Proceso 6) + 68 (Proceso 8) = 207
• Desperdicio: 128 - 207 = -79 (no se desperdicia espacio)

Partición 3:

• Tamaño: 32
• Utilizado: 55 (Proceso 3)
• Desperdicio: 32 - 55 = -23 (no se desperdicia espacio)

Partición 4:

• Tamaño: 256
• Utilizado: 92 (Proceso 4)
• Desperdicio: 256 - 92 = 164

Partición 5:

• Tamaño: 36
• Utilizado: 24 (Proceso 5) + 50 (Proceso 7) = 74
• Desperdicio: 36 - 74 = -38 (no se desperdicia espacio)

Partición 6:

• Tamaño: 256
• No se utiliza.

En resumen:

Porcentaje de uso de memoria: (Utilizado / Tamaño total de particiones) * 100

• Partición 1: (76 / 48) * 100 = 158.33%


• Partición 2: (207 / 128) * 100 = 161.72%
• Partición 3: (55 / 32) * 100 = 171.88%
• Partición 4: (92 / 256) * 100 = 35.94%
• Partición 5: (74 / 36) * 100 = 205.56%
• Partición 6: 0%

Porcentaje de desperdicio de memoria: (Desperdicio / Tamaño total de particiones) * 100

• Partición 1: (-28 / 48) * 100 = -58.33%


• Partición 2: (-79 / 128) * 100 = -61.72%
• Partición 3: (-23 / 32) * 100 = -71.88%
• Partición 4: (164 / 256) * 100 = 64.06%
• Partición 5: (-38 / 36) * 100 = -105.56%
• Partición 6: 0%

Es importante tener en cuenta que los porcentajes negativos indican que no se está utilizando todo el
espacio de la partición y se está desperdiciando memoria. Además, el porcentaje de uso superior al 100%
indica que se está utilizando más espacio del disponible en la partición.

6. establecer los porcentajes de uso y de fragmentación de memoria y de las particiones en un


sistema con 4 particiones de tamaño: 50, 70, 150 y 230 y procesos de tamaño 70, 44, 72 y 28.

Para determinar los porcentajes de uso y fragmentación de memoria y de las particiones en un sistema
con 4 particiones de diferentes tamaños y procesos de diferentes tamaños, debemos asignar los procesos
a las particiones y calcular cuánto espacio se utiliza en cada partición y cuánto espacio queda sin utilizar.

Particiones:

1. Tamaño: 50
2. Tamaño: 70
3. Tamaño: 150
4. Tamaño: 230
Procesos:

1. Tamaño: 70
2. Tamaño: 44
3. Tamaño: 72
4. Tamaño: 28

Asignemos los procesos a las particiones utilizando el algoritmo de mejor ajuste:

1. Proceso 1 (70) asignado a la partición 2 (70).


2. Proceso 2 (44) asignado a la partición 1 (50).
3. Proceso 3 (72) asignado a la partición 3 (150).
4. Proceso 4 (28) asignado a la partición 1 (50).

Ahora calculemos los porcentajes de uso y fragmentación de memoria y de las particiones:

Partición 1:

• Tamaño: 50
• Utilizado: 44 (Proceso 2) + 28 (Proceso 4) = 72
• Desperdicio: 50 - 72 = -22 (no se desperdicia espacio)

Partición 2:

• Tamaño: 70
• Utilizado: 70 (Proceso 1)
• Desperdicio: 70 - 70 = 0

Partición 3:

• Tamaño: 150
• Utilizado: 72 (Proceso 3)
• Desperdicio: 150 - 72 = 78

Partición 4:

• Tamaño: 230
• No se utiliza.

En resumen:

Porcentaje de uso de memoria: (Utilizado / Tamaño total de particiones) * 100

• Partición 1: (72 / 50) * 100 = 144%


• Partición 2: (70 / 70) * 100 = 100%
• Partición 3: (72 / 150) * 100 = 48%
• Partición 4: 0%
Porcentaje de fragmentación de memoria: (Desperdicio / Tamaño total de particiones) * 100

• Partición 1: (-22 / 50) * 100 = -44%


• Partición 2: (0 / 70) * 100 = 0%
• Partición 3: (78 / 150) * 100 = 52%
• Partición 4: 0%

Es importante tener en cuenta que los porcentajes negativos indican que no se está utilizando todo el
espacio de la partición y se está desperdiciando memoria. Además, el porcentaje de uso superior al 100%
indica que se está utilizando más espacio del disponible en la partición.

7. Dados 5 particiones de memoria 100KB, 500KB, 200LB, 300KB y 600KB (en ese orden).
¿Como colocaría cada uno de los algoritmos de ubicación los siguientes procesos: 212KB,
417KB, ¿112KB y 426KB (en ese orden)? ¿Cuál es el algoritmo con mayor eficiencia?

Para determinar cómo colocaría cada uno de los algoritmos de ubicación (First Fit, Best Fit y Worst Fit)
los procesos de 212KB, 417KB, 112KB y 426KB en las particiones de memoria de 100KB, 500KB,
200KB, 300KB y 600KB, se deben seguir las reglas de asignación de cada algoritmo. A continuación,
se muestra cómo se colocarían los procesos en cada partición:

First Fit:

1. Proceso 1 (212KB): Se asigna a la partición de 300KB.


2. Proceso 2 (417KB): No se puede asignar a ninguna partición.
3. Proceso 3 (112KB): Se asigna a la partición de 200KB.
4. Proceso 4 (426KB): Se asigna a la partición de 500KB.

Best Fit:

1. Proceso 1 (212KB): Se asigna a la partición de 200KB.


2. Proceso 2 (417KB): Se asigna a la partición de 500KB.
3. Proceso 3 (112KB): Se asigna a la partición de 100KB.
4. Proceso 4 (426KB): No se puede asignar a ninguna partición.

Worst Fit:

1. Proceso 1 (212KB): Se asigna a la partición de 600KB.


2. Proceso 2 (417KB): Se asigna a la partición de 500KB.
3. Proceso 3 (112KB): Se asigna a la partición de 300KB.
4. Proceso 4 (426KB): No se puede asignar a ninguna partición.

Ahora, analicemos la eficiencia de cada algoritmo:

• First Fit: Solo se pudieron asignar 3 de los 4 procesos, dejando uno sin asignar.
• Best Fit: Se pudieron asignar 3 de los 4 procesos, dejando uno sin asignar.
• Worst Fit: Se pudieron asignar 3 de los 4 procesos, dejando uno sin asignar.
En este caso, todos los algoritmos tuvieron una eficiencia similar, asignando 3 de los 4 procesos. Sin
embargo, es importante tener en cuenta que la eficiencia de los algoritmos puede variar según el orden
de llegada de los procesos y la disposición de las particiones en la memoria.

8. Dadas las particiones 100KB, 500KB, 200KB, 300KB, 600KB como se muestran, como
coloremos los siguientes procesos con los algoritmos de ubicación: 212KB, 417KB, 112KB,
426KB respectivamente.

A continuación, se muestra cómo se colocarían los procesos de 212KB, 417KB, 112KB y 426KB en las
particiones de memoria de 100KB, 500KB, 200KB, 300KB y 600KB utilizando los algoritmos de
ubicación (First Fit, Best Fit, Worst Fit):

First Fit:

• Proceso 1 (212KB): Se asigna a la partición de 300KB.


• Proceso 2 (417KB): Se asigna a la partición de 600KB.
• Proceso 3 (112KB): Se asigna a la partición de 200KB.
• Proceso 4 (426KB): No se puede asignar a ninguna partición.

Best Fit:

• Proceso 1 (212KB): Se asigna a la partición de 200KB.


• Proceso 2 (417KB): Se asigna a la partición de 500KB.
• Proceso 3 (112KB): Se asigna a la partición de 100KB.
• Proceso 4 (426KB): No se puede asignar a ninguna partición.

Worst Fit:

• Proceso 1 (212KB): Se asigna a la partición de 600KB.


• Proceso 2 (417KB): Se asigna a la partición de 500KB.
• Proceso 3 (112KB): Se asigna a la partición de 300KB.
• Proceso 4 (426KB): No se puede asignar a ninguna partición.

Aunque los resultados pueden variar según el algoritmo y el orden de llegada de los procesos, esta es una
posible asignación para cada algoritmo en función de las particiones de memoria dadas.

9. Del ejercicio anterior se requiere ingresar un proceso de 426KB, colocar en la memoria del
sistema anterior y obtener los porcentajes de uso y fragmentación de memoria y de
particiones.

En el ejercicio anterior, tenemos las siguientes particiones de memoria: 100KB, 500KB, 200KB, 300KB
y 600KB. Si ahora ingresamos un proceso de 426KB, debemos encontrar la mejor ubicación para él y
luego calcular los porcentajes de uso y fragmentación de memoria y de las particiones.

Usando el algoritmo Best Fit, podemos colocar el proceso de 426KB en la partición de 500KB, ya que
es la partición que puede acomodarlo de manera más eficiente.

Después de colocar el proceso de 426KB, las particiones de memoria se verían así:


• 100KB: Sin uso
• 500KB: Proceso de 426KB
• 200KB: Sin uso
• 300KB: Sin uso
• 600KB: Sin uso

Ahora, calculemos los porcentajes de uso y fragmentación de memoria y de las particiones:

Porcentaje de uso de memoria = (Tamaño total de procesos / Tamaño total de memoria) * 100 = ((426KB)
/ (100KB + 500KB + 200KB + 300KB + 600KB)) * 100 = (426KB / 1700KB) * 100 ≈ 25.06%

Porcentaje de fragmentación de memoria = (Tamaño total de fragmentación interna / Tamaño total de


memoria) * 100 = ((74KB) / (100KB + 500KB + 200KB + 300KB + 600KB)) * 100 = (74KB / 1700KB)
* 100 ≈ 4.35%

Porcentaje de uso de las particiones = (Tamaño de cada partición utilizada / Tamaño total de memoria)
* 100

• 100KB: (0KB / 1700KB) * 100 ≈ 0%


• 500KB: (426KB / 1700KB) * 100 ≈ 25.06%
• 200KB: (0KB / 1700KB) * 100 ≈ 0%
• 300KB: (0KB / 1700KB) * 100 ≈ 0%
• 600KB: (0KB / 1700KB) * 100 ≈ 0%

En resumen, después de ingresar el proceso de 426KB, el sistema tiene un porcentaje de uso de memoria
del 25.06% y un porcentaje de fragmentación de memoria del 4.35%. La partición de 500KB es la única
utilizada, mientras que las demás particiones están vacías.

MEMORIA VIRTUAL
1. Se les da el siguiente orden de páginas: A, C, B, D, B, A, E, F, B, F, A, G, E, F, A y se
especifica que se usuran solo 3 marcos de páginas. Muestre las sucesivas páginas
residentes en los 3 marcos de página utilizando las políticas:
a) Optimo
b) LRU
c) FIFO
d) Reloj
e) Segunda Oportunidad

a) Óptimo:

• A: [A, , ]
• C: [A, C, ]
• B: [A, C, B]
• D: [D, C, B]
• B: [D, C, B]
• A: [A, C, B]
• E: [A, E, B]
• F: [A, E, F]
• B: [A, E, B]
• F: [A, E, F]
• A: [A, E, F]
• G: [G, E, F]
• E: [G, E, F]
• F: [G, E, F]
• A: [A, E, F]

b) LRU (Menos Recientemente Usada):

• A: [A, , ]
• C: [A, C, ]
• B: [A, C, B]
• D: [D, C, B]
• B: [D, C, B]
• A: [A, C, B]
• E: [E, C, B]
• F: [E, F, B]
• B: [E, F, B]
• F: [E, F, B]
• A: [A, F, B]
• G: [A, F, G]
• E: [A, E, G]
• F: [A, E, F]
• A: [A, E, F]

c) FIFO (Primero en Entrar, Primero en Salir):

• A: [A, , ]
• C: [A, C, ]
• B: [A, C, B]
• D: [D, C, B]
• B: [D, C, B]
• A: [D, C, A]
• E: [E, C, A]
• F: [E, F, A]
• B: [B, F, A]
• F: [B, F, A]
• A: [B, F, A]
• G: [G, F, A]
• E: [G, E, A]
• F: [G, E, F]
• A: [A, E, F]

d) Reloj:

• A: [A, , ]
• C: [A, C, ]
• B: [A, C, B]
• D: [D, C, B]
• B: [D, C, B]
• A: [A, C, B]
• E: [A, E, B]
• F: [A, E, F]
• B: [A, E, B]
• F: [A, E, F]
• A: [A, E, F]
• G: [A, E, G]
• E: [A, E, G]
• F: [A, E, F]
• A: [A, E, F]

e) Segunda Oportunidad:

• A: [A, , ]
• C: [A, C, ]
• B: [A, C, B]
• D: [D, C, B]
• B: [D, C, B]
• A: [D, C, A]
• E: [E, C, A]
• F: [E, F, A]
• B: [E, F, B]
• F: [E, F, B]
• A: [E, F, A]
• G: [E, F, G]
• E: [E, F, G]
• F: [E, F, G]
• A: [E, F, A]

2. Sea la siguiente secuencia de número de páginas referenciados: 123412512345. Calcula el


número de faltas de página que se producen utilizando los algoritmos:
a) Optimo
b) LRU
c) FIFO
d) Reloj
e) Segunda Oportunidad
Considerando que el número de marcos de páginas que disfruta nuestro proceso es de:
a) 3 marcos
b) 4 marcos

a) Óptimo:

• Con 3 marcos de página:


o En el primer ciclo, se cargan las páginas 1, 2 y 3.
o En el segundo ciclo, la página 4 reemplaza a la página 1.
o En el tercer ciclo, la página 5 reemplaza a la página 2.
o En el cuarto ciclo, la página 1 reemplaza a la página 3.
o En el quinto ciclo, la página 2 reemplaza a la página 4.
o En el sexto ciclo, la página 3 reemplaza a la página 5.
o En el séptimo ciclo, la página 4 reemplaza a la página 1.
o En el octavo ciclo, la página 5 reemplaza a la página 2.
o En el noveno ciclo, la página 3 reemplaza a la página 3.
o En el décimo ciclo, la página 1 reemplaza a la página 4.
o En el undécimo ciclo, la página 2 reemplaza a la página 5.
o En el duodécimo ciclo, la página 3 reemplaza a la página 1.
o En el decimotercer ciclo, la página 4 reemplaza a la página 2.
o En el decimocuarto ciclo, la página 5 reemplaza a la página 3.

El número total de faltas de página con 3 marcos de página en el algoritmo Óptimo es 10.

• Con 4 marcos de página:


o En el primer ciclo, se cargan las páginas 1, 2, 3 y 4.
o En el segundo ciclo, la página 5 reemplaza a la página 1.
o En el tercer ciclo, la página 2 reemplaza a la página 2.
o En el cuarto ciclo, la página 3 reemplaza a la página 3.
o En el quinto ciclo, la página 1 reemplaza a la página 4.
o En el sexto ciclo, la página 2 reemplaza a la página 5.
o En el séptimo ciclo, la página 3 reemplaza a la página 1.
o En el octavo ciclo, la página 4 reemplaza a la página 2.
o En el noveno ciclo, la página 5 reemplaza a la página 3.

El número total de faltas de página con 4 marcos de página en el algoritmo Óptimo es 9.

b) LRU (Menos Recientemente Usada):

• Con 3 marcos de página:


o En el primer ciclo, se cargan las páginas 1, 2 y 3.
o En el segundo ciclo, la página 4 reemplaza a la página 1.
o En el tercer ciclo, la página 5 reemplaza a la página 2.
o En el cuarto ciclo, la página 1 reemplaza a la página 3.
o En el quinto ciclo, la página 2 reemplaza a la página 4.
o En el sexto ciclo, la página 3 reemplaza a la página 5.

El número total de faltas de página con 3 marcos de página en el algoritmo LRU es 6.

• Con 4 marcos de página:


o En el primer ciclo, se cargan las páginas 1, 2, 3 y 4.
o En el segundo ciclo, la página 5 reemplaza a la página 1.

El número total de faltas de página con 4 marcos de página en el algoritmo LRU es 1.


c) FIFO (Primero en Entrar, Primero en Salir):

• Con 3 marcos de página:


o En el primer ciclo, se cargan las páginas 1, 2 y 3.
o En el segundo ciclo, la página 4 reemplaza a la página 1.
o En el tercer ciclo, la página 5 reemplaza a la página 2.

El número total de faltas de página con 3 marcos de página en el algoritmo FIFO es 3.

• Con 4 marcos de página:


o En el primer ciclo, se cargan las páginas 1, 2, 3 y 4.
o En el segundo ciclo, la página 5 reemplaza a la página 1.

El número total de faltas de página con 4 marcos de página en el algoritmo FIFO es 1.

d) Reloj:

• Con 3 marcos de página:


o En el primer ciclo, se cargan las páginas 1, 2 y 3.
o En el segundo ciclo, la página 4 reemplaza a la página 1.
o En el tercer ciclo, la página 5 reemplaza a la página 2.
o En el cuarto ciclo, la página 1 reemplaza a la página 3.
o En el quinto ciclo, la página 2 reemplaza a la página 4.
o En el sexto ciclo, la página 3 reemplaza a la página 5.

El número total de faltas de página con 3 marcos de página en el algoritmo Reloj es 6.

• Con 4 marcos de página:


o En el primer ciclo, se cargan las páginas 1, 2, 3 y 4.
o En el segundo ciclo, la página 5 reemplaza a la página 1.

El número total de faltas de página con 4 marcos de página en el algoritmo Reloj es 1.

e) Segunda Oportunidad:

• Con 3 marcos de página:


o En el primer ciclo, se cargan las páginas 1, 2 y 3.
o En el segundo ciclo, la página 4 reemplaza a la página 1.
o En el tercer ciclo, la página 5 reemplaza a la página 2.
o En el cuarto ciclo, la página 1 reemplaza a la página 3.
o En el quinto ciclo, la página 2 reemplaza a la página 4.
o En el sexto ciclo, la página 3 reemplaza a la página 5.

El número total de faltas de página con 3 marcos de página en el algoritmo Segunda


Oportunidad es 6.
• Con 4 marcos de página:
o En el primer ciclo, se cargan las páginas 1, 2, 3 y 4.
o En el segundo ciclo, la página 5 reemplaza a la página 1.

El número total de faltas de página con 4 marcos de página en el algoritmo Segunda


Oportunidad es 1.

En resumen, el número de faltas de página para cada algoritmo con diferentes números de marcos de
página es:

a) Óptimo:

• 3 marcos de página: 10 faltas de página.


• 4 marcos de página: 9 faltas de página.

b) LRU:

• 3 marcos de página: 6 faltas de página.


• 4 marcos de página: 1 falta de página.

c) FIFO:

• 3 marcos de página: 3 faltas de página.


• 4 marcos de página: 1 falta de página.

d) Reloj:

• 3 marcos de página: 6 faltas de página.


• 4 marcos de página: 1 falta de página.

e) Segunda Oportunidad:

• 3 marcos de página: 6 faltas de página.


• 4 marcos de página: 1 falta de página.

En términos de eficiencia en términos de número de faltas de página, el algoritmo LRU con 4 marcos
de página es el más eficiente, ya que produce la menor cantidad de faltas de página, con solo 1 falta de
página.
3. Un proceso contiene ocho páginas virtuales en disco y se asigna de forma fija cuatro
marcos de página de memoria principal. La traza de las páginas es la siguiente:
1,0,2,2,1,7,6,7,0,1,2,0,3,0,4,5,1,5,2,4,5,6,7,6,7,2,7,3,3,2,3
a) Muestre las sucesivas páginas en los cuatro marcos utilizando las politas de reemplazo
FIFO, Optimo, Segunda Oportunidad, LRU. Calcule el índice de acierto de la memoria
principal.
b) Comparar los índices de acierto.

a) A continuación se muestra la secuencia de páginas en los cuatro marcos de página utilizando las
políticas de reemplazo FIFO, Óptimo, Segunda Oportunidad y LRU:

FIFO (Primero en Entrar, Primero en Salir): 1: 1 _ _ _ 2: 1 0 _ _ 3: 1 0 2 _ 4: 1 0 2 2 5: 0 1 2 2 6: 7 1 2


2 7: 7 6 2 2 8: 7 6 7 2 9: 0 6 7 2 10: 1 6 7 2 11: 2 6 7 2 12: 0 6 7 2 13: 3 6 7 2 14: 0 6 7 4 15: 4 6 7 5 16:
4 6 7 1 17: 4 5 7 1 18: 4 5 2 1 19: 4 5 2 1 20: 4 5 2 1 21: 4 5 2 1 22: 4 5 2 1 23: 6 5 2 1 24: 6 7 2 1 25: 6
7 2 1 26: 6 7 2 1 27: 7 3 2 1 28: 7 3 2 1 29: 7 3 2 1 30: 7 3 2 1

Óptimo: 1: 1 _ _ _ 2: 1 0 _ _ 3: 1 0 2 _ 4: 1 0 2 2 5: 0 1 2 2 6: 0 1 2 7 7: 0 1 2 7 8: 0 1 2 7 9: 0 1 2 7 10:
0 1 2 7 11: 0 1 2 7 12: 0 1 2 7 13: 0 1 3 7 14: 0 1 3 7 15: 0 1 3 7 16: 0 1 3 7 17: 0 1 3 7 18: 0 1 3 7 19: 0
1 3 7 20: 0 1 3 7 21: 0 1 3 7 22: 0 1 3 7 23: 0 1 3 7 24: 0 1 3 7 25: 0 1 3 7 26: 0 1 3 7 27: 0 1 3 7 28: 0 1
3 7 29: 0 1 3 7 30: 0 1 3 7

Segunda Oportunidad: 1: 1 _ _ _ 2: 1 0 _ _ 3: 1 0 2 _ 4: 1 0 2 2 5: 0 1 2 2 6: 7 1 2 2 7: 7 6 2 2 8: 7 6 7 2
9: 0 6 7 2 10: 1 6 7 2 11: 2 6 7 2 12: 0 6 7 2 13: 3 6 7 2 14: 0 6 7 4 15: 4 6 7 5 16: 4 6 7 1 17: 4 5 7 1 18:
4 5 2 1 19: 4 5 2 1 20: 4 5 2 1 21: 4 5 2 1 22: 4 5 2 1 23: 6 5 2 1 24: 6 7 2 1 25: 6 7 2 1 26: 6 7 2 1 27: 7
3 2 1 28: 7 3 2 1 29: 7 3 2 1 30: 7 3 2 1

LRU (Menos Recientemente Usada): 1: 1 _ _ _ 2: 1 0 _ _ 3: 1 0 2 _ 4: 1 0 2 2 5: 0 1 2 2 6: 0 1 2 7 7: 0


1 2 7 8: 0 1 2 7 9: 0 1 2 7 10: 0 1 2 7 11: 0 1 2 7 12: 0 1 2 7 13: 0 1 3 7 14: 0 1 3 7 15: 0 1 3 7 16: 0 1 3
7 17: 0 1 3 7 18: 0 1 3 7 19: 0 1 3 7 20: 0 1 3 7 21: 0 1 3 7 22: 0 1 3 7 23: 0 1 3 7 24: 0 1 3 7 25: 0 1 3 7
26: 0 1 3 7 27: 0 1 3 7 28: 0 1 3 7 29: 0 1 3 7 30: 0 1 3 7

b) Índice de acierto:

Para calcular el índice de acierto, necesitamos conocer el número total de referencias de página y el
número de faltas de página para cada algoritmo. En este caso, el número total de referencias de página
es 30.

FIFO: Número de faltas de página: 9 Índice de acierto = (Número total de referencias de página -
Número de faltas de página) / Número total de referencias de página Índice de acierto = (30 - 9) / 30
Índice de acierto = 21 / 30 Índice de acierto = 0.7

Óptimo: Número de faltas de página: 9 Índice de acierto = (30 - 9) / 30 Índice de acierto = 21 / 30


Índice de acierto = 0.7

Segunda Oportunidad: Número de faltas de página: 9 Índice de acierto = (30 - 9) / 30 Índice de acierto
= 21 / 30 Índice de acierto = 0.7
LRU: Número de faltas de página: 9 Índice de acierto = (30 - 9) / 30 Índice de acierto = 21 / 30 Índice
de acierto = 0.7

Comparación de índices de acierto: Todos los algoritmos (FIFO, Óptimo, Segunda Oportunidad y
LRU) tienen el mismo índice de acierto de 0.7.

4. Un ordenador tiene 3 marcos de página. En la siguiente tabla se muestran: el tiempo de


carga y el tiempo del último acceso:
Pagina Tiempo de carga Tiempo de referencia
0 120 255
1 160 272
2 230 200
a) ¿Qué página se sustituye si se usa el algoritmo FIFO?
b) ¿Qué página se sustituye si se usa el algoritmo LRU?

a) Si se utiliza el algoritmo FIFO (First In, First Out), la página que se sustituye es la más antigua, es
decir, la página que se cargó primero y que ha estado en memoria por más tiempo. En este caso, la
página 0 se cargó primero y tiene un tiempo de carga de 120, mientras que la página 1 y la página 2 se
cargaron después. Por lo tanto, la página que se sustituiría sería la página 0.

b) Si se utiliza el algoritmo LRU (Least Recently Used), la página que se sustituye es la que ha sido
accedida por última vez hace más tiempo. En este caso, la página que se accedió por última vez hace
más tiempo es la página 2, que tiene un tiempo de referencia de 200. Por lo tanto, la página que se
sustituiría sería la página 2.

5. Un proceso tiene cuatro marcos reservados para el uso (las)


Pagina Tiempo de Carga Tiempo de Referencia
0 120 255
1 160 272
2 230 200
a) ¿Qué página se sustituye si se usa el algoritmo FIFO?
b) ¿Qué página se sustituye si se usa el algoritmo LRU?

a) Si se utiliza el algoritmo FIFO (First In, First Out), la página que se sustituye es la más antigua, es
decir, la página que se cargó primero y que ha estado en memoria por más tiempo. En este caso, la
página 0 se cargó primero y tiene un tiempo de carga de 120, mientras que la página 1 y la página 2 se
cargaron después. Por lo tanto, la página que se sustituiría sería la página 0.

b) Si se utiliza el algoritmo LRU (Least Recently Used), la página que se sustituye es la que ha sido
accedida por última vez hace más tiempo. En este caso, la página que se accedió por última vez hace
más tiempo es la página 2, que tiene un tiempo de referencia de 200. Por lo tanto, la página que se
sustituiría sería la página 2.

6. Un proceso tiene cuatro marcos reservados para el uso. La siguiente tabla muestra el
instante de tiempo en el que se cargó la ´ultima página en cada marco, el instante de
tiempo del ´ultimo acceso a cada página el número de página virtual, los bits de referencia
(R) y modificación (M) para cada uno de los marcos de página.
PV Marco de pagina I. Carga I. Referencia Bit R Bit M
2 0 60 161 0 1
1 1 130 160 1 0
0 2 26 162 1 0
3 3 20 163 1 1
Se produce un fallo de página para la página virtual 4 en el instante 164, ¿Qué marco de página
reemplazara su contenido para cada una de las siguiente políticas de la gestión de la memoria?
Explique por que
a) FIFO
b) LRU
c) NRU

Para determinar qué marco de página se reemplazará para la página virtual 4 en el instante 164,
analizaremos cada política de gestión de memoria.

a) FIFO (First In, First Out): Esta política reemplaza la página que se cargó primero y ha estado en
memoria por más tiempo. Siguiendo el orden de carga de las páginas en los marcos de página, la página
2 fue la primera en ser cargada. Por lo tanto, el marco de página 2 se reemplazaría para la página virtual
4 en la política FIFO.

b) LRU (Least Recently Used): Esta política reemplaza la página que ha sido accedida por última vez
hace más tiempo. Analizando los tiempos de referencia de las páginas, la página 2 tiene el tiempo de
referencia más antiguo (162), seguida por la página 1 (160), la página 0 (161) y la página 3 (163). Por
lo tanto, el marco de página 2 se reemplazaría para la página virtual 4 en la política LRU.

c) NRU (Not Recently Used): Esta política clasifica las páginas en 4 categorías según los bits de
referencia (R) y modificación (M). Las categorías son: (R=0, M=0), (R=0, M=1), (R=1, M=0) y (R=1,
M=1). En este caso, todas las páginas tienen R=1 y M=0, por lo que se selecciona la página con el
número de página virtual más bajo. La página virtual 0 tiene el número más bajo entre las páginas
cargadas en los marcos de página, por lo que el marco de página 2 se reemplazaría para la página
virtual 4 en la política NRU.

En resumen, según cada política de gestión de memoria: a) FIFO: Se reemplaza el marco de página 2.
b) LRU: Se reemplaza el marco de página 2. c) NRU: Se reemplaza el marco de página 2.

También podría gustarte