Življenje procesov in drevo procesov

Za procese pravimo, da imajo svoj življenjski ciklus (ang. life cycle): najprej jih mora nekdo ustvariti, nato se izvajajo, so pripravljeni na izvajanje oziroma čakajo na nek vir ter na koncu umrejo. V našem primeru je mama, ko je poklicala Tino, ustvarila nov proces, ki se je tudi nemudoma pričel izvajati. Ko je Tina večerjo skuhala, je ta proces umrl.

V računalniku ni nič drugače. Procesi se rojevajo in umirajo ter vmes opravijo koristno delo. Tvorjenje novega procesa se zgodi s postopkom, ki se imenuje vejitev (ang. fork). Ob tvorjenju dobi vsak proces svoje ime, ki ga označujemo s tujko PID (ang. process ID). Na novo ustvarjeni proces se izvaja, dokler ne konča svoje naloge ali ga operacijski sistem ne umakne iz izvajanja v stanje pripravljenosti. Če povzamemo, nov proces vedno nastane na podlagi nekega že izvajajočega se procesa. Vsem novim procesom pravimo otroci (ang. children) procesa, ki jih je ustvaril.

Seveda, postavi se nam vprašanje: »Kako se je ustvaril prvi proces?« No, prvi proces se ustvari ob nalaganju operacijskega sistema.

Drevo procesov lahko vidimo v GNU Linux ali FreeBSD z ukazom pstree.

Ukaz pstree


Velja pa tudi obratno. Če namreč zapremo urejevalnik besedila, s tem ustavimo glavni proces urejanja ter tudi vse njegove otroke, ki so bili ustvarjeni pri urejanju besedila.

Včasih nam nek proces še posebej nagaja in se nikakor ne odziva. Ostaja nam še zadnja možnost in sicer, da proces ustavimo ročno – ga ubijemo (ang. kill). Z drugimi besedami, proces preklopimo v stanje KONEC. V MS Windows to naredimo s pomočjo Upravitelja opravil, v Mac OS X pa s pomočjo Activity Monitorja. V GNU Linux in FreeBSD lahko to opravimo v ukazni vrstici z ukazom kill pid, pri čemer je pid ime (številka) procesa.

Ročna ustavitev procesa v Upravitelju opravil