12.10.2014 Views

TEMA 3. GESTIÓN DE MEMORIA - Universidad de Almería

TEMA 3. GESTIÓN DE MEMORIA - Universidad de Almería

TEMA 3. GESTIÓN DE MEMORIA - Universidad de Almería

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Diseño <strong>de</strong> Sistemas Operativos<br />

Tema <strong>3.</strong> Gestión <strong>de</strong> Memoria<br />

• El kernel busca posición a<strong>de</strong>cuada en el mapa por la dirección<br />

• Casos posibles:<br />

− Recursos liberados llenan un hueco en el mapa ⇒ Combinar todos los recursos en una entrada en el<br />

mapa.<br />

− Recursos liberados llenan parcialmente un hueco en el mapa y son contiguos a alguna entrada<br />

adyacente ⇒ El kernel ajusta la dirección y unida<strong>de</strong>s <strong>de</strong> la entrada apropiada <strong>de</strong> acuerdo a<br />

recursos liberados.<br />

− Recursos liberados llenan parcialmente un hueco en el mapa y no son contiguos a ninguna entrada<br />

⇒ El kernel crea nueva entrada en el mapa para los recursos liberados y la inserta en la posición<br />

apropiada.<br />

Ejemplo. Figura <strong>3.</strong>2<br />

• Dispositivo <strong>de</strong> swap con 10000 bloques empezando en la dirección 1 (a).<br />

• Secuencia <strong>de</strong> peticiones y liberaciones:<br />

− El kernel asigna 100 unida<strong>de</strong>s <strong>de</strong>l recurso (b).<br />

− El kernel recibe una petición <strong>de</strong> 50 (c).<br />

− Recibe una última petición <strong>de</strong> 100 unida<strong>de</strong>s (d).<br />

− Libera 50 unida<strong>de</strong>s empezando en la dirección 101 (e).<br />

− Libera 100 unida<strong>de</strong>s empezando en la dirección 1 (f).<br />

− Demanda 200 unida<strong>de</strong>s (g).<br />

− Libera 350 empezando en dirección 151. Se asignaron por separado 0 (h).<br />

Dirección<br />

Unida<strong>de</strong>s<br />

1 10000<br />

a<br />

Dirección Unida<strong>de</strong>s<br />

151 9850<br />

c<br />

Dirección Unida<strong>de</strong>s<br />

101 9900<br />

b<br />

Dirección Unida<strong>de</strong>s<br />

251 9750<br />

d<br />

Dirección Unida<strong>de</strong>s<br />

101 50<br />

251 9750<br />

e<br />

Dirección<br />

1 150<br />

Unida<strong>de</strong>s<br />

251 9750<br />

f<br />

Dirección Unida<strong>de</strong>s<br />

1 150<br />

451 9550<br />

g<br />

Dirección Unida<strong>de</strong>s<br />

1 10000<br />

h<br />

Figura <strong>3.</strong>2. Asignación <strong>de</strong> espacio en el dispositivo <strong>de</strong> swap.<br />

<strong>3.</strong><strong>3.</strong>1.2. Intercambiar Procesos fuera <strong>de</strong> Memoria.<br />

El kernel intercambia procesos al swap si necesita espacio en memoria:<br />

• Fork: Asignar espacio para el proceso hijo (crea un nuevo proceso).<br />

• Brk: Incremento tamaño <strong>de</strong>l segmento <strong>de</strong> datos <strong>de</strong> un proceso.<br />

• Crecimiento pila proceso.<br />

• Para intercambiar procesos que había intercambiado al dispositivo <strong>de</strong> swap.<br />

Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>3.</strong>9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!