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
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 />
Parado<br />
señal<br />
señal<br />
creación<br />
planificación<br />
terminación<br />
Listo En Ejecución Zombie<br />
señal o<br />
suceso<br />
suceso<br />
No Interrumpible<br />
E/S<br />
E/S<br />
Interrumpible<br />
Figura <strong>2.</strong><strong>2.</strong> Diagrama <strong>de</strong> transición <strong>de</strong> estados <strong>de</strong> un proceso en un sistema Linux.<br />
<strong>2.</strong><strong>2.</strong> ESTRUCTURAS <strong>DE</strong> DATOS <strong>DE</strong>L SIS<strong>TEMA</strong> PARA LA GESTIÓN <strong>DE</strong><br />
<strong>PROCESOS</strong>.<br />
Todo proceso tiene asociada una entrada en la Tabla <strong>de</strong> Procesos y un Área <strong>de</strong> Usuario (u-Area). Estas dos<br />
estructuras van a <strong>de</strong>scribir el estado <strong>de</strong>l proceso y le van a permitir al kernel su control. La Tabla <strong>de</strong> Procesos<br />
tiene campos que van a ser accesibles <strong>de</strong>s<strong>de</strong> el kernel, pero los campos <strong>de</strong>l Área <strong>de</strong> Usuario sólo necesitan<br />
ser visibles por el proceso. Una posición (entrada) por proceso.<br />
Las Áreas <strong>de</strong> Usuario se reservan cuando se crea un proceso y no es necesario que una entrada <strong>de</strong> la Tabla <strong>de</strong><br />
Procesos que no aloja a ningún proceso tenga reservada un área <strong>de</strong> usuario.<br />
<strong>2.</strong><strong>2.</strong>1. Tabla <strong>de</strong> Procesos.<br />
Cada proceso se referencia por un <strong>de</strong>scriptor (<strong>de</strong>scriptor <strong>de</strong>l proceso). Este <strong>de</strong>scriptor contiene los atributos<br />
<strong>de</strong>l proceso, así como la información que permite gestionarlo.<br />
Campos que siempre <strong>de</strong>ben ser accesibles por el kernel y que tiene cada una <strong>de</strong> las entradas<br />
(<strong>de</strong>scriptor <strong>de</strong> un proceso) <strong>de</strong> la Tabla <strong>de</strong> Procesos.<br />
• Campo <strong>de</strong> estado, que i<strong>de</strong>ntifica el estado <strong>de</strong>l proceso (9 posibles valores estudiados previamente).<br />
• Campos que permiten al kernel localizar al proceso y su área <strong>de</strong> usuario (u-Area) en memoria<br />
principal o en memoria secundaria.<br />
− El kernel usa esta información para realizar los cambios <strong>de</strong> contexto cuando el proceso pasa<br />
<strong>de</strong> un estado a otro.<br />
+ Listo para ejecutarse en memoria (cambio <strong>de</strong> contexto) ⇒ ejecutándose en modo<br />
kernel.<br />
+ Requisado (cambio <strong>de</strong> contexto) ⇒ ejecutándose en modo usuario.<br />
− El kernel también utiliza esta información cuando traslada el proceso <strong>de</strong> la memoria<br />
principal al área <strong>de</strong> swap, y viceversa ⇒ Intercambio <strong>de</strong> procesos <strong>de</strong>s<strong>de</strong> o hacia la memoria<br />
principal.<br />
− En estos campos también hay información sobre el tamaño <strong>de</strong>l proceso, para que el kernel<br />
sepa cuánto espacio <strong>de</strong> memoria <strong>de</strong>be reservar para él.<br />
Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>2.</strong>7