Differences

This shows you the differences between two versions of the page.

Link to this comparison view

uso:laboratoare:ac:laborator-04:run [2020/10/27 18:47]
127.0.0.1 external edit
uso:laboratoare:ac:laborator-04:run [2021/10/28 20:59] (current)
liza_elena.babu [Investigarea proceselor]
Line 26: Line 26:
 Un sistem de operare are de obicei mai multe aplicații care rulează, deci mai multe procese. Prea multe procese pot duce la o încărcare prea mare a sistemului, încetinind sau împiedicând funcționarea acestuia. Anumite procese pot consuma excesiv resurse afectând celelalte procese. De aceea, este util să investigăm procesele unui sistem și consumul de resurse al acestora. Un sistem de operare are de obicei mai multe aplicații care rulează, deci mai multe procese. Prea multe procese pot duce la o încărcare prea mare a sistemului, încetinind sau împiedicând funcționarea acestuia. Anumite procese pot consuma excesiv resurse afectând celelalte procese. De aceea, este util să investigăm procesele unui sistem și consumul de resurse al acestora.
  
 +Un proces este creat de un alt proces. De exemplu, mai sus, procesul ''​%%which%%''​ a fost creat dintr-un proces shell (''​%%bash%%''​). Procesul shell a fost, la rândul său, creat de un alt proces. Un proces are un proces părinte; un proces poate avea mai multe procese copil. Procesele sunt, așadar, parte dintr-o ierarhie.
 +
 +În vârful ierarhiei de procese este procesul numit clasic ''​%%init%%''​. În listarea de mai sus vedem că procesul din vârful ierarhiei este ''​%%systemd%%''​. ''​%%systemd%%''​((https://​freedesktop.org/​wiki/​Software/​systemd/​
 +)) este implementarea de ''​%%init%%''​ prezentă în cea mai mare parte a distribuțiilor Linux curente((Procesul ''​%%init%%''​ va exista în permanență în vârful ierarhiei de procese, indiferent de faptul că se va numi ''​%%systemd%%'',​ ''​%%init%%'',​ ''​%%upstart%%''​ sau altfel.
 +)).
 ==== Listarea proceselor ==== ==== Listarea proceselor ====
  
Line 57: Line 62:
 [...] [...]
 </​code>​ </​code>​
-==== Ierarhia proceselor ==== 
- 
-Un proces este creat de un alt proces. De exemplu, mai sus, procesul ''​%%ps%%''​ a fost creat dintr-un proces shell (''​%%bash%%''​). Procesul shell a fost, la rândul său, creat de un alt proces. Un proces are un proces părinte; un proces poate avea mai multe procese copil. Procesele sunt, așadar, parte dintr-o ierarhie. 
- 
-Pentru a vizualiza ierarhia de procese, folosim utilitarul ''​%%pstree%%'':​ 
- 
-<code bash> 
-student@uso:​~$ pstree 
-systemd-+-ModemManager---2*[{ModemManager}] 
-        |-NetworkManager-+-2*[dhclient] 
-        |                `-2*[{NetworkManager}] 
-        [...] 
-        |-acpid 
-        |-avahi-daemon---avahi-daemon 
-        |-boltd---2*[{boltd}] 
-        |-colord---2*[{colord}] 
-        |-cron 
-        [...] 
-        |-systemd-+-(sd-pam) 
-        |         ​|-gnome-terminal--+-bash 
-        |         ​| ​                ​`-3*[{gnome-terminal-}] 
-        [...] 
-</​code>​ 
-În vârful ierarhiei de procese este procesul numit clasic ''​%%init%%''​. În listarea de mai sus vedem că procesul din vârful ierarhiei este ''​%%systemd%%''​. ''​%%systemd%%''​((https://​freedesktop.org/​wiki/​Software/​systemd/​ 
-)) este implementarea de ''​%%init%%''​ prezentă în cea mai mare parte a distribuțiilor Linux curente((Procesul ''​%%init%%''​ va exista în permanență în vârful ierarhiei de procese, indiferent de faptul că se va numi ''​%%systemd%%'',​ ''​%%init%%'',​ ''​%%upstart%%''​ sau altfel. 
-)). 
  
 ==== Atributele proceselor ==== ==== Atributele proceselor ====
Line 190: Line 169:
  
 <code bash> <code bash>
-student@uso:​~$ kill 9486+student@uso:​~$ kill -SIGKILL ​9486
 </​code>​ </​code>​
 Comanda ''​%%kill%%''​ primește ca argument PID-ul procesului de omorât, adică ''​%%9486%%''​. Comanda ''​%%kill%%''​ primește ca argument PID-ul procesului de omorât, adică ''​%%9486%%''​.
Line 203: Line 182:
  
 În terminalul inițial, în care am rulat comanda ''​%%sleep%%'',​ apare un mesaj care indică omorârea procesului: În terminalul inițial, în care am rulat comanda ''​%%sleep%%'',​ apare un mesaj care indică omorârea procesului:
- 
-<code bash> 
-student@uso:​~$ sleep 60 
-Terminated 
-</​code>​ 
-=== Folosirea semnalului SIGKILL === 
- 
-În anumite situații, folosirea utilitarului ''​%%kill%%''​ nu duce la omorârea procesului țintă. În această situație, vom transmite procesului țintă semnalul ''​%%SIGKILL%%''​ care este garantat că va omorî procesul. Adică, amuzant spus, ''​%%SIGKILL%%''​ este o bombă nucleară, un glonț care trece prin vesta anti-glonț,​ cianură de potasiu. Astfel, dacă pornim pe un terminal un proces ''​%%sleep%%''​ la fel ca mai sus, în alt terminal vom omorî procesul folosind semnalul ''​%%SIGKILL%%''​ ca mai jos: 
- 
-<code bash> 
-student@uso:​~$ pidof sleep 
-9834 
-student@uso:​~$ kill -KILL 9834 
-student@uso:​~$ pidof sleep 
-student@uso:​~$ 
-</​code>​ 
-Secvența de comenzi este similară secvenței anterioare cu excepția folosirii opțiunii ''​%%-KILL%%''​ la comanda ''​%%kill%%''​ care înseamnă trimiterea semnalului ''​%%SIGKILL%%''​. 
- 
-Efectul este similar dar, pe terminalul în care am rulat comanda ''​%%sleep%%'',​ apare un mesaj de forma: 
  
 <code bash> <code bash>
Line 227: Line 187:
 Killed Killed
 </​code>​ </​code>​
-Mesajul ''​%%Killed%%''​ este afișat atunci când un proces primește semnalul ''​%%SIGKILL%%''​. 
  
 ==== Exerciții: Oprirea proceselor ==== ==== Exerciții: Oprirea proceselor ====
uso/laboratoare/ac/laborator-04/run.1603817231.txt.gz · Last modified: 2021/10/28 20:50 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0