12.10.2014 Views

TEMA 2. GESTIÓN DE PROCESOS - Universidad de Almería

TEMA 2. GESTIÓN DE PROCESOS - Universidad de Almería

TEMA 2. GESTIÓN DE PROCESOS - 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>2.</strong> Gestión <strong>de</strong> Procesos<br />

algoritmo growreg(pregión, incremento)<br />

{<br />

if (incremento es positivo)<br />

{<br />

Controlar legalidad <strong>de</strong>l nuevo tamaño;<br />

Asignar tablas <strong>de</strong> paginas;<br />

if (mo<strong>de</strong>lo <strong>de</strong> programa entero)<br />

{<br />

Asignar memoria física;<br />

Inicialización <strong>de</strong> tablas necesarias;<br />

}<br />

}<br />

else<br />

{<br />

Liberar memoria física;<br />

Liberar tablas;<br />

}<br />

Otras inicializaciones;<br />

Cambiar tamaño <strong>de</strong> proceso en la Tabla <strong>de</strong> Procesos;<br />

}<br />

• Cargar una región. Si el sistema soporta paginación por <strong>de</strong>manda, el sistema pue<strong>de</strong> mapear el<br />

espacio <strong>de</strong> direcciones <strong>de</strong>l ejecutable durante la exec <strong>de</strong> tal forma que sólo cuando sea necesario<br />

leerá las páginas a memoria. Si el mo<strong>de</strong>lo es <strong>de</strong> programa entero se <strong>de</strong>be copiar el ejecutable<br />

cargando las regiones en las direcciones virtuales que se especifique en el archivo (posibles páginas<br />

vacías). Para cargar el archivo en la región <strong>de</strong>be expandirla <strong>de</strong> acuerdo a la memoria que necesite.<br />

Marca la región en el estado Cargándose y usa una variación <strong>de</strong> la llamada al sistema read para<br />

leer el ejecutable (porque pue<strong>de</strong> ganarse velocidad, y porque en un mo<strong>de</strong>lo <strong>de</strong> paginación por<br />

<strong>de</strong>manda se podría producir un fallo <strong>de</strong> página durante una read). El offset que se indica como<br />

parámetro indica el <strong>de</strong>splazamiento <strong>de</strong>ntro <strong>de</strong>l archivo <strong>de</strong>l inicio <strong>de</strong> la región y count el número <strong>de</strong><br />

datos a leer.<br />

algoritmo loadreg(pregión, dir_Virtual, i-no<strong>de</strong>, Offset , count)<br />

{<br />

Incrementar tamaño (growreg);<br />

Marcar estado Cargándose;<br />

Desbloquear región (unlock);<br />

Poner parámetros <strong>de</strong> lectura en u-Area;<br />

Leer ejecutable en la región (variación <strong>de</strong> read);<br />

Bloquear región;<br />

Marcar estado Válida;<br />

Despertar procesos que esperan por región cargándose;<br />

}<br />

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

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

Saved successfully!

Ooh no, something went wrong!