Procés pare

De la Viquipèdia, l'enciclopèdia lliure

En informàtica, un procés pare és un procés que ha creat un o més processos secundaris.

Sistemes semblants a Unix[modifica]

En sistemes operatius semblants a Unix, tots els processos excepte process 0 (l'intercanviador) es creen quan un altre procés executa la crida al sistema fork(). El procés que ha invocat la bifurcació és el procés pare i el procés acabat de crear és el procés fill. Cada procés (excepte el procés 0) té un procés pare, però pot tenir molts processos fills.

El nucli del sistema operatiu identifica cada procés pel seu identificador de procés. Process 0 és un procés especial que es crea quan el sistema arrenca; després de bifurcar un procés fill (process 1), process 0 es converteix en el procés d'intercanvi (de vegades també conegut com a " tasca inactiva "). Process 1, conegut com init, és l'avantpassat de tots els altres processos del sistema.[1]

Linux[modifica]

Al nucli de Linux, en el qual hi ha una diferència molt petita entre els processos i els fils POSIX, hi ha dos tipus de processos pare, és a dir, pare real i pare. El pare és el procés que rep el senyal SIGCHLD en la terminació del fill, mentre que el pare real és el fil que realment va crear aquest procés secundari en un entorn multiprocés. Per a un procés normal, aquests dos valors són iguals, però per a un fil POSIX que actua com a procés, aquests dos valors poden ser diferents.[2]

Processos zombis[modifica]

El sistema operatiu manté una taula que associa cada procés, mitjançant el seu identificador de procés (generalment denominat " pid ") a les dades necessàries per al seu funcionament. Durant la vida útil d'un procés, aquestes dades poden incloure segments de memòria designats per al procés, els arguments amb els quals s'ha invocat, variables d'entorn, comptadors sobre l'ús de recursos, identificador d'usuari, identificador de grup i conjunt de grups i potser altres tipus d'informació.

Quan un procés finalitza la seva execució, ja sigui cridant exit (encara que sigui implícita, executant una ordre de retorn de la funció principal ) o bé rebent un senyal que fa que finalitzi bruscament, el sistema operatiu allibera la majoria dels recursos i la informació relacionada amb aquest procés, però encara conserva les dades sobre la utilització dels recursos i el codi d'estat de terminació, perquè un procés principal podria estar interessat a saber si aquest fill s'ha executat correctament (utilitzant funcions estàndard per descodificar el codi d'estat de terminació) i la quantitat de recursos del sistema que té. consumit durant la seva execució.

Processos orfes[modifica]

Els processos orfes són una situació oposada als processos zombis, referint-se al cas en què un procés pare finalitza abans que els seus processos fills, que es diu que queden "orfes". A diferència de la notificació asíncrona de fill a pare que es produeix quan finalitza un procés secundari (mitjançant elSIGCHLDsenyal), els processos secundaris no es notifiquen immediatament quan el seu pare acabi. En lloc d'això, el sistema simplement redefineix el camp "PID pare" a les dades del procés fill perquè sigui el procés que és l'"avantpassat" de tots els altres processos del sistema, el PID del qual generalment té el valor d'1 (un) i el nom del qual. és tradicionalment "init" (excepte en el nucli Linux 3.4 i posteriors [més informació a continuació]). Així, es va dir que init "adopta" tots els processos orfes del sistema.[3][4]

Referències[modifica]

  1. Tanenbaum, Andrew. Modern operating systems. 3rd. Pearson Prentice Hall, 2007, p. 752. ISBN 978-0136006633. 
  2. Srinivasan, Sundar. «An Engineer's Options & Futures: A Sneak-Peek into Linux Kernel - Chapter 2: Process Creation» (en anglès). Sunnyeves.blogspot.com, 01-09-2010. [Consulta: 30 abril 2014].
  3. «init comes first» (en anglès).
  4. «An overview of Linux processes» (en anglès). IBM, 26-03-2012.