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

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

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

Saved successfully!

Ooh no, something went wrong!