Está en la página 1de 26

Sistemas Operativos

Semana 13
Logro de la sesión

Al finalizar la sesión, el estudiante describe


las diversas técnicas de gestión de memoria,
existentes en un SO como la paginación y la
segmentación.

2
Gestión de Memoria
https://www.youtube.com/watch?v=hMhPTWUJX_M&t=466s
Conceptos básicos de administración de memoria:
Espacios de direcciones
MAXsys
• Espacio de direcciones físico — El espacio de direcciones
admitido por el hardware
• Iniciando en la dirección 0, hasta la dirección MAXsys
MAXprog

• Espacio de direcciones lógicas/virtuales — La vista de un


proceso de su propia memoria Programa
• Iniciando en la dirección 0, hasta la dirección MAXprog P
0

Pero, ¿de dónde vienen las direcciones?


MOV r0, @0xfffa620e

0
Ejercicio

• ¿Cuál es el espacio de direcciones más grande, físico o virtual?

• A. Espacio de direcciones físicas


• B. Espacio de direcciones virtuales
• C. Depende del sistema.
Conceptos Básicos
Generación de direcciones

• La tubería (pipeline) para crear el ejecutable


0 1000
Library Library
Routines Routines
prog P P: 0 100 1100
: : :
: :
push ... : :
: push ... : :
inc SP, 4
foo() inc SP, x jmp 175 jmp 1175
jmp 75
: jmp _foo : :
:
: : ... ...
...
end P foo: ... 75 175 1175

Compilation Assembly Linking Loading


Reubicación del Programa

• El programa emite direcciones virtuales


• La máquina tiene direcciones físicas.
• Si virtual == físico, ¿cómo Podemos tener multiples programas
residentes al mismo tiempo?
• En su lugar, reubique las direcciones virtuales a físicas en tiempo de
ejecución.
• Mientras se reubica, también revisamos las direcciones por seguridad.
• Puede reubicar ese programa (de forma segura) en dos registros…
Conceptos Básicos
Traducción de direcciones

MAXsys
MEMORY
EXCEPTION

Logical Physical
Addresses
no
Addresses
1500 Program
CPU ≤ + P’s
yes physical
address
1000 space
500 1000
Instrucciones
MAXprog
Limit Base
Program
Register Register
P’s
logical
address
space
0
0
Conceptos Básicos
Traducción de direcciones
Ejercicio

• Con registros base y de límite, el sistema operativo necesita


un espacio en la memoria física al menos tan grande como el
proceso.
• A. Verdadero
• B. Falso
Evaluación de las técnicas de asignación dinámica
El problema de la fragmentación
MAX
• Fragmentación externa
• Memoria no utilizada entre unidades de
asignación
• Por ejemplo, P necesita una partición con 5
unidades de memoria. Q está usando la única
partición de ese tamaño. Sin embargo, si la Programa
partición 2 pudiera combinarse con el
fragmento de R, entonces tendríamos una Q’s
partición de 5 unidades. PAS
Execution Stack
• Fragmentación interna
• Memoria no utilizada dentro de una unidad de
asignación Execution
Data Stack
• El segmento de pila de un programa debe
crecer. Hay memoria libre en el segmento de
datos, pero no se puede utilizar para hacer Program Code
crecer la pila.
(“text”)
Program
0 R’s PAS
Esquemas simples de gestión de memoria
Asignación dinámica de particiones
MAX
• Enfoque simple:
• Asignar una partición cuando se admite un proceso
en el sistema Programa
• Asignar una partición de memoria contigua al P4
proceso

El SO realiza un seguimiento de... Programa


Bloques completos P5 P3
Bloques vacíos (“huecos”)

Estrategias de asignación
Próximo ajuste Programa
Primer Ajuste P2
Mejor ajuste
Peor ajuste
Programa
P1
0
Asignación del Próximo ajuste

Para asignar n bytes, use el primer


bloque libre disponible después del
último proceso cargado en memoria 1K bytes
de manera que el tamaño del bloque
sea mayor que n.

2K bytes 2K bytes

Para asignar 400 bytes,


usamos el primer bloque 500 bytes 500 bytes
libre disponible
Asignación del Primer ajuste

Para asignar n bytes, use el


primer bloque libre disponible 1K bytes 1K bytes
de manera que el tamaño del
bloque sea mayor que n.

2K bytes 2K bytes

Para asignar 400 bytes,


usamos el primer bloque 500 bytes
libre disponible
Justificación e implementación

• Simplicidad de implementación

• Requiere:
• Lista de bloques libres ordenadas por dirección
• La asignación necesita una búsqueda de una partición adecuada
• La desasignación require una verificación para ver si la partición liberada
podría fusionarse con particiones libres adyacentes (si las hay)

Ventajas Desventajas
Simple Asignación lenta
Tiende a producir bloques Fragmentación externa
libres más grandes hacia el
final del espacio de
direcciones
Asignación de mejor ajuste

Para asignar n bytes, use el


bloque libre más pequeño 1K bytes 1K bytes
disponible de manera que el
tamaño del bloque sea mayor
que n.

2K bytes 2K bytes

Para asignar 400 bytes,


usamos el tercer bloque 500 bytes
libre disponible (el más
pequeño)
Justificación e implementación
• Para evitar la fragmentación de grandes bloques libres

• Para minimizer el tamaño de los fragmentos externos producidos

• Requiere:
• Lista de bloques libres ordenados por tamaño
• La asignación require la búsqueda de una partición adecuada
• La desasignación require buscar + fusionarse con particiones libres
adyacentes (si las hay)

Ventajas Desventajas
Funciona bien cuando la Fragmentación externa
mayoría de las asignaciones Desasignación lenta
son pequeñas Tiende a producir muchos
Relativamente simple fragmentos diminutos inútiles
(no muy buenos)
Asignación de peor ajuste

Para asignar n bytes, use el


bloque libre más grande
disponible de manera que el 1K bytes 1K bytes
tamaño del bloque sea mayor
que n.

2K bytes

Para asignar 400 bytes,


usamos el segundo bloque
500 bytes
libre disponible (el más
grande)
Justificación e implementación

• Para evitar tener demasiados fragmentos diminutos

• Requiere:
• Listas de bloques libres ordenadas por tamaño
• La asignación es rápida (obtenga la partición más grande)
• La desasignación require fusionarse con particiones libres adyacentes, si
las hay, y luego ajustar la lista de bloques libres

Ventajas Desventajas
Funciona mejor si las Desasignación lenta
asignaciones son de tamaño Fragmentación externa
mediano Tiende a romper grandes
bloques libres de modo que no
se pueden asignar particiones
grandes
Estrategias de asignación

• El primer ajuste, el mejor ajuste y el peor ajuste sufren


una fragmentación externa.

• A. True
• B. False
Ejercicios
Asignación dinámica de particiones

21
Ejercicio1 Asignación de memoria
P1 (128KB)

240 KB

Asignar memoria para el


P5 de 224KB según: P2 (192KB)

Mejor ajuste
Peor ajuste
Primer Ajuste 300 KB
Próximo ajuste

P3 (64KB)

512 KB

P4 (256KB)

128 KB
0
Ejercicio2 Asignación de memoria

Asignar memoria para los


sgtes procesos:
P1(64KB)
P2(64KB) 224 KB
P3(8KB)
P4(150KB)
P5(64KB) Último en entrar

Según los sgtes. algoritmos


Mejor ajuste 192 KB
Peor ajuste
Primer Ajuste
Próximo ajuste

72 KB
0
Asignación dinámica de particiones
Eliminando la fragmentación
MAX Programa
• Compactación P1
• Reubicar programas para fusionar los “huecos”

Programa
Swapping (Intercambio) P2
➢ Procesos apropiativos & reclamo de su memoria

Programa
Ready Running P3

ready ? Waiting
queue Programa
Suspended P4
suspended
queue semaphore/condition queues 0
Asignación dinámica de particiones
Eliminando la fragmentación
¿Preguntas?

26

También podría gustarte