Introducere în Linux Un ghid la îndemână - "Tille" Garrels
Introducere în Linux Un ghid la îndemână - "Tille" Garrels
Introducere în Linux Un ghid la îndemână - "Tille" Garrels
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Capitolul 4. Procesele<br />
Alături de fişiere, procesele sunt cele mai importante lucruri <strong>în</strong>tr-un sistem UNIX/<strong>Linux</strong>. În acest<br />
capitol, vom prezenta <strong>în</strong>deaproape aceste procese. Vom studia mai multe lucruri despre:<br />
� Procesarea multi-utilizatori şi multi-sarcini<br />
� Tipuri de procese<br />
� Contro<strong>la</strong>rea proceselor cu semnale diferite<br />
� Atributele proceselor<br />
� Ciclul de viaţă al unui proces<br />
� Pornirea şi oprirea sistemului<br />
� SUID şi SGID<br />
� Viteza sistemului şi răspunsul<br />
� Procese programate<br />
� Sistemul cron Vixie<br />
� Cum să obţineţi cele mai bune performanţe de <strong>la</strong> sistemul dumneavoastră<br />
4.1. Anatomia proceselor<br />
4.1.1. Multi-utilizatori şi multi-sarcini (multi-user şi multi-tasking)<br />
Pentru că acum v-aţi obişnuit cu mediul de lucru şi sunteţi capabili să comunicaţi cât de cât cu<br />
sistemul, a venit vremea să studiem mai <strong>în</strong> detaliu procesele pe care le putem porni. Nu toate comenzile<br />
pornesc un singur proces. Anumite comenzi iniţiază o serie de procese, cum este mozil<strong>la</strong>; altele, precum ls,<br />
sunt executate ca o singură comandă.<br />
Mai mult, <strong>Linux</strong>-ul este bazat pe UNIX, <strong>în</strong> care comportamentul obişnuit este ace<strong>la</strong> prin care mai<br />
mulţi utilizatori <strong>la</strong>nsează comenzi diferite, <strong>în</strong> ace<strong>la</strong>şi timp, pe ace<strong>la</strong>şi sistem. Devine evident faptul că a trebuit<br />
să fie luate măsuri pentru ca procesorul (CPU) să poată gestiona toate procesele şi să fie asigurată o cale<br />
prin care utilizatorii să dispună de aceste procese. În anumite cazuri, procesele trebuie să ruleze chiar şi<br />
atunci când utilizatorul care le-a iniţiat se deautentifică. De asemenea, utilizatorii au nevoie de mijloace prin<br />
care să reactiveze procesele <strong>în</strong>trerupte.<br />
Vom explica structura proceselor din <strong>Linux</strong> <strong>în</strong> secţiunile următoare.<br />
4.1.2. Tipuri de procese<br />
4.1.2.1. Procese interactive<br />
Procesele interactive sunt iniţializate şi contro<strong>la</strong>te printr-o sesiune terminal. Cu alte cuvinte, trebuie<br />
ca cineva să fie conectat <strong>la</strong> sistem pentru a porni aceste procese; ele nu pot porni automat ca parte a<br />
funcţiilor sistemului. Aceste procese pot ru<strong>la</strong> <strong>în</strong> prim-p<strong>la</strong>n, ocupând terminalul care a pornit programul şi nu<br />
puteţi porni alte procese atât timp cât procesele existente <strong>în</strong> prim-p<strong>la</strong>n rulează. Alternativ, ele pot ru<strong>la</strong> <strong>în</strong><br />
fundal, astfel <strong>în</strong>cât conso<strong>la</strong> <strong>în</strong> care aţi pornit programul poate accepta comenzi noi <strong>în</strong> timp ce programul este<br />
<strong>în</strong> desfăşurare. Până acum, ne-am concentrat <strong>în</strong> principal pe programele care rulează <strong>în</strong> prim-p<strong>la</strong>n – timpul<br />
necesar pentru execuţia lor a fost prea scurt pentru a fi observate, dar vizualizarea unui fişier cu ajutorul<br />
comenzii less este un bun exemplu de comandă care ocupă o sesiune a consolei. În acest caz, programul<br />
activat aşteaptă ca dumneavoastră să faceţi ceva. Programul este conectat <strong>la</strong> terminal din momentul <strong>în</strong> care<br />
a fost pornit şi acest terminal este folositor numai dacă introduceţi comenzi pe care programul le poate<br />
<strong>în</strong>ţelege. Alte comenzi vor returna erori sau sistemul nu va da nici un răspuns.<br />
Însă <strong>în</strong> cazul <strong>în</strong> care un proces rulează <strong>în</strong> fundal, utilizatorul poate face alte lucruri <strong>în</strong> conso<strong>la</strong> din<br />
care a pornit acel program, chiar dacă programul este <strong>în</strong> desfăşurare.<br />
Conso<strong>la</strong> dispune de o funcţie numită controlul sarcinilor (job control), prin care gestionează cu<br />
uşurinţă mai multe procese. Funcţia conţine un mecanism care comută procesele din prim-p<strong>la</strong>n <strong>în</strong> fundal.<br />
Prin acest sistem, programele pot fi pornite <strong>în</strong> fundal imediat.<br />
66