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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Diseño <strong>de</strong> Sistemas Operativos<br />
Tema <strong>2.</strong> Gestión <strong>de</strong> Procesos<br />
P<br />
p_cptr<br />
p_pptr<br />
p_pptr<br />
F3<br />
p_optr<br />
p_ysptr<br />
p_osptr<br />
p_optr p_pptr p_optr<br />
F2<br />
p_ysptr<br />
p_osptr<br />
Figura <strong>2.</strong>3. Relaciones (filiaciones) entre <strong>de</strong>scriptores <strong>de</strong> procesos en el caso <strong>de</strong> que un proceso P ha creado<br />
sucesivamente tres procesos hijos F1, F2 y F3.<br />
• Cuando un proceso se duplica, llamando a la primitiva fork:<br />
− Los punteros “p_optr” y “p_pptr” <strong>de</strong>l <strong>de</strong>scriptor <strong>de</strong>l proceso hijo, contienen la dirección <strong>de</strong>l<br />
proceso padre.<br />
− El puntero “p_osptr” <strong>de</strong>l <strong>de</strong>scriptor <strong>de</strong>l proceso hijo toma el valor <strong>de</strong>l puntero “p_cptr” <strong>de</strong>l<br />
<strong>de</strong>scriptor <strong>de</strong>l proceso padre.<br />
− El puntero “p_ysptr” <strong>de</strong>l proceso hermano más reciente (referenciado por el puntero “p_cptr”<br />
<strong>de</strong>l <strong>de</strong>scriptor <strong>de</strong>l proceso padre) contiene la dirección <strong>de</strong>l <strong>de</strong>scriptor <strong>de</strong>l nuevo proceso hijo.<br />
− El puntero “p_cptr” <strong>de</strong>l <strong>de</strong>scriptor <strong>de</strong>l proceso padre contienen la dirección <strong>de</strong>l <strong>de</strong>scriptor <strong>de</strong>l<br />
proceso hijo.<br />
• La gestión <strong>de</strong> la tabla <strong>de</strong> procesos (listas <strong>de</strong> <strong>de</strong>scriptores <strong>de</strong> procesos) es llevada a cabo por el<br />
scheduler.<br />
<strong>2.</strong><strong>2.</strong><strong>2.</strong> u-Area<br />
El área <strong>de</strong> usuario contiene información que es necesaria sólo cuando el proceso se está ejecutando.<br />
Campos que sólo necesitan ser accesibles para el proceso en ejecución.<br />
• Puntero a la entrada <strong>de</strong> la Tabla <strong>de</strong> Procesos correspondiente al proceso.<br />
• I<strong>de</strong>ntificadores <strong>de</strong>l usuario real y efectivo (UID), que <strong>de</strong>termina algunos privilegios permitidos al<br />
proceso, tales como permiso <strong>de</strong> acceso a un archivo. El i<strong>de</strong>ntificador <strong>de</strong>l usuario real <strong>de</strong>l proceso es<br />
el i<strong>de</strong>ntificador <strong>de</strong>l usuario que ha lanzado el proceso. El i<strong>de</strong>ntificador <strong>de</strong>l usuario efectivo es el<br />
i<strong>de</strong>ntificador que utiliza el sistema para los controles <strong>de</strong> acceso a archivos para <strong>de</strong>terminar el<br />
propietario <strong>de</strong> los archivos recién creados y los permisos para enviar señales a otros procesos.<br />
Pue<strong>de</strong> ser distinto <strong>de</strong>l i<strong>de</strong>ntificador <strong>de</strong> usuario real, por ejemplo, en el caso <strong>de</strong> programas que tienen<br />
el bit setuid.<br />
• I<strong>de</strong>ntificadores <strong>de</strong> grupo real y efectivo. El i<strong>de</strong>ntificador <strong>de</strong> grupo real <strong>de</strong>l proceso es el<br />
i<strong>de</strong>ntificador <strong>de</strong>l grupo primario que ha lanzado el proceso. El i<strong>de</strong>ntificador <strong>de</strong> grupo efectivo es el<br />
i<strong>de</strong>ntificador que utiliza el sistema para los controles <strong>de</strong> acceso para <strong>de</strong>terminar el propietario <strong>de</strong><br />
los archivos recién creados y los permisos para enviar señales a otros procesos. Pue<strong>de</strong> ser distinto<br />
<strong>de</strong>l i<strong>de</strong>ntificador <strong>de</strong> grupo real, por ejemplo, en el caso <strong>de</strong> programas que tienen el bit setuid.<br />
A<strong>de</strong>más existe una lista <strong>de</strong> i<strong>de</strong>ntificadores <strong>de</strong> grupo ya que todo usuario pue<strong>de</strong> pertenecer a varios<br />
grupos <strong>de</strong> forma simultánea y el kernel mantiene una lista <strong>de</strong> grupos asociados a casa proceso a fin<br />
<strong>de</strong> proce<strong>de</strong>r a los controles <strong>de</strong> acceso.<br />
• Temporizadores (contadores) que registran el tiempo empleado por el proceso (y sus<br />
<strong>de</strong>scendientes) ejecutándose en modo kernel y modo usuario.<br />
• Un array que indica cómo ha <strong>de</strong> reaccionar el proceso ante las señales que recibe.<br />
• Campo <strong>de</strong> terminal que i<strong>de</strong>ntifica el “terminal <strong>de</strong> login” (inicio <strong>de</strong> sesión) asociado al proceso, que<br />
indica cuál es, si existe, el terminal <strong>de</strong> control.<br />
• Campo <strong>de</strong> errores que registra los errores producidos durante una llamada al sistema.<br />
F1<br />
Departamento <strong>de</strong> Lenguajes y Computación. <strong>Universidad</strong> <strong>de</strong> Almería Página <strong>2.</strong>10