4. Crearea unui proces

Din nou, această lecție și următoarea sunt pur și simplu doar pentru informația dvs. pentru a vă ajuta să înțelegeți mecanismele interioare. Dacă doriți puteți sări peste acestea dacă ați lucrat cu procesele suficient de mult.

În momentul în care un proces este creat, un proces existent practic se clonează folosind ceva ce este denumit bifurcare de apel de sistem (fork system call). Apelările de sistem le vom discuta mult mai târziu în cadrul acestui curs. Bifurcarea de apel de sistem crează în principal procese copil aproape identice, iar acestea primesc noi ID-uri de proces (PID). Procesul original devine procesul părinte și primește ceva denumit ID de proces părite (PPID). În final, procesul copil fie poate continua să folosească același program pe care părintele îl folosea înainte sau, mult mai des, să execute un apel de sistem pentru a lansa un nou program. Aceste apeluri de sistem distrug gestiunea memoriei de care kernelul este responsabil pentru acel proces și generează una nouă pentru programul lansat recent.

Putem vedea ceea ce am discutat mai sus în acțiune cu ajutorul comenzii:

$ ps l

Opțiunea l ne dă posibilitatea să vizualizăm informația în format detaliat (lung) despre procesele care rulează. Veți vedea o coloană denumită PPID, care așa cum spuneam mai sus reprezintă ID-ul de proces al părintelui. Acum priviți terminalul dvs., și veți vedea un proces care rulează terminalul, așa că pe acel sistem există un proces care rulează bash. Nu uitați, în momentul în care rulați comanda ps l, o rulați de fapt din procesul care executa fișierul bash. Astfel, puteți observa că PID-ul shell-ului bash este PPID-ul comenzii ps l.

Prin urmare dacă fiecare proces trebuie să abiă un părinte și acestea sunt de fapt copii (bifurcări) ale lor, trebuie să existe și o mamă a tuturor proceselor, nu-i așa? Ei bine, aveți dreptate. În momentul în care sistemul se inițializează (boot-ează) kernelul crează un proces denumit init, care are PID 1. Procesul init nu poate fi terminat (oprit) decât dacă sistemul de calcul se oprește. Acesta rulează cu privilegii root (administrator) și gestionează o multitudine de procese care mențin sistemul în condiții optime de funcționare. Vom vorbi mult mai detaliat despre init în lecțiile despre procesul de inițializare (boot), dar pentru moment ceea ce trebuie să rețineți este că init, ca proces principal, generează toate celelate procese.


Exerciții

Observați procesele dvs. care rulează pe sistem. Mai puteți identifica și alte procese care au procese părinte?


Lasă un răspuns

Adresa ta de email nu va fi publicată.

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.