Documente Academic
Documente Profesional
Documente Cultură
CSE Dep
Cursul 4, Procese
1/50
Moto
Multitasking: A polite way of telling someone you havent heard a word they said.
CSE Dep
Cursul 4, Procese
2/50
Utilizatori
http://stevelaube.com/wp-content/uploads/2011/06/iStock_000011246561XSmall.jpg
/home
gid
adduser
http://www.cccp-shirts.com/images/sysadmin_bl_shirt.jpg
CSE Dep
Cursul 4, Procese
3/50
Utilizatori
http://penpen.soup.io/post/63943110/Office-keyboard-Look-Busy-Go-Home-Wake
CSE Dep
Cursul 4, Procese
4/50
Suport de curs
CSE Dep
Cursul 4, Procese
5/50
informal
click pe un icon scris comenzi accesat meniuri
mai formal: ,,deschidem aplicat , ii tehnic: rul am procese o aplicat a = cel put a , ie deschis , in un proces care ruleaz
CSE Dep
Cursul 4, Procese
7/50
Procese
proces
entitate activ a instruct ncarc a n memorie s , iunile s , i datele programului se ,i sunt rulate de procesor (CPU)
CSE Dep
Cursul 4, Procese
8/50
Procese (cont.)
denumit s , i task sau job un proces este un program c aruia i s-a asociat un context de execut ie , ia nas , tere dintr-un executabil se creeaz a o imagine a executabilului n memorie, apart and , in procesului
CSE Dep
Cursul 4, Procese
9/50
Context de execut , ie
abstractizarea informat , iei despre execut , ia unui program Ce trebuie executat? (program) Pentru c at timp? (durat a, cuant a) Ce condit ndeplinite pentru execut , ii vor trebui , ie? (requirements ) (memorie, mecanisme de comunicare, permisiuni) Pe care core/procesor? (planicare)
CSE Dep
Cursul 4, Procese
10/50
CSE Dep
Cursul 4, Procese
11/50
CSE Dep
Cursul 4, Procese
12/50
Task Manager ALT+CTRL+DEL sau CTRL+SHIFT+ESC lista cu procesele active din sistem numele executabilului, al utilizatorului, utilizarea procesorului s a (congurabil) , i memoria ocupat terminarea proceselor nedorite
CSE Dep
Cursul 4, Procese
14/50
PS C:\Documents and Settings\razvan> ps firefox Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) ------- -------------- ---------318 25 36584 52924 164 14.95 PS C:\Documents and Settings\razvan> ps power* Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) ------- -------------- ---------674 70 110888 5036 315 391.47 558 15 68028 63388 571 4.64 PS C:\Documents CommandType ----------Alias
Id -1500 496
Definition ---------Get-Process
CSE Dep
Cursul 4, Procese
15/50
CSE Dep
Cursul 4, Procese
16/50
CSE Dep
Cursul 4, Procese
17/50
Vizualizare personalizat a
razvan@anaconda:~$ ps -o pid,ppid,tty,rss,cmd -e --sort rss PID PPID TT RSS CMD 3263 1 ? 380 /usr/sbin/squid -D -sYC 2770 2746 ? 388 hald-addon-storage: polling /dev/hdc 2737 1 ? 392 /usr/bin/dbus-daemon --system 1075 1 ? 400 udevd --daemon 3355 1 tty1 416 /sbin/getty 38400 tty1 3356 1 tty2 416 /sbin/getty 38400 tty2 [...] 3364 1 tty6 416 /sbin/getty 38400 tty6 3057 1 ? 432 /usr/bin/xfs -daemon 3380 3377 ? 436 git-daemon --verbose --base-path=/var/cache /var/cach 2733 1 ? 448 /usr/sbin/courierlogger courierpop3login 3636 1 ? 456 gpg-agent {daemon [...] 367 3313 ? 5188 /usr/sbin/apache 2827 2804 ? 5336 /usr/bin/python /var/lib/mailman/bin/qrunner --runner [...] 2823 2804 ? 6652 /usr/bin/python /var/lib/mailman/bin/qrunner --runner 32488 3313 ? 10340 /usr/sbin/apache 3313 1 ? 10488 /usr/sbin/apache
CSE Dep
Cursul 4, Procese
18/50
Ierarhia de procese
identicatorul unui proces PID (process ID ) (un num ar) orice proces are un proces p arinte (s , i numai unul) (except , ie init) un proces este creat prin intermediul unui alt proces (fork) rezult a o ierarhie de procese
un proces are un proces p arinte un proces are 0 sau mai multe procese copil n Unix, procesul init este r ad acina ierarhiei
CSE Dep
Cursul 4, Procese
19/50
CSE Dep
Cursul 4, Procese
20/50
CSE Dep
Cursul 4, Procese
21/50
Utilitarul top
monitorizarea proceselor s , i sistemului utilitarul htop: culor, scroll vertical s autare etc. , i orizontal, c
CSE Dep
Cursul 4, Procese
22/50
CSE Dep
Cursul 4, Procese
23/50
procfs
sistem de s , iere virtual
informat asesc n memorie , iile se g
CSE Dep
Cursul 4, Procese
25/50
procfs (cont.)
informat ntr-un director dat , iile despre un proces sunt grupate de PID-ul procesului
Directoare cu nume date de PID-uri n /proc
anaconda:~# ls /proc/ 1 2693 2770 3 10 2694 2798 3015 32398 32488 3377 3379 853 854 driver execdomains modules mounts
CSE Dep
Cursul 4, Procese
26/50
procfs (cont.)
Informat , ii despre un proces Vim folosind /proc
anaconda:~# ps -e | grep vim 877 pts/1 00:00:00 vim anaconda:~# cd /proc/877/ anaconda:/proc/877# ls attr cpuset exe mem oom_adj smaps status auxv cwd fd mounts oom_score stat task cmdline environ maps mountstats root statm wchan anaconda:/proc/877# ls -l exe lrwxrwxrwx 1 root root 0 Oct 20 11:33 exe -> /usr/bin/vim.basic anaconda:/proc/877# cat cmdline vimmac_add.txtanaconda:/proc/877# ls fd/ 0 1 2 4 anaconda:/proc/877# ls -l fd/ total 4 lrwx------ 1 root root 64 Oct 20 11:34 0 -> /dev/pts/1 lrwx------ 1 root root 64 Oct 20 11:34 1 -> /dev/pts/1 lrwx------ 1 root root 64 Oct 20 11:33 2 -> /dev/pts/1 lrwx------ 1 root root 64 Oct 20 11:34 4 -> /root/.mac_add.txt.swp
CSE Dep
Cursul 4, Procese
27/50
un proces este creat din cadrul unui proces existent n Unix, init este ,,str abunul tuturor proceselor fazele cre arii
copierea procesului p arinte (cu imaginea acestuia) alocarea resurselor necesare pentru noul proces (PID, tabel a de s , iere, zone de memorie etc.) nc arcarea executabilului asociat (imaginea procesului) actualizarea resurselor (zone de memorie, s , iere deschise) ulterior se ruleaz a procesul (se execut a instruct , iuni pe procesor)
CSE Dep
Cursul 4, Procese
28/50
C and un proces moare, se s , terge s , ierul executabil asociat? C and moare un proces?
se ajunge la sf ars , itul zonei de cod a executabilului se apeleaz a exit (sau o funct an atoare) , ie asem condit , ii anormale (abnormal termination ): primirea unui semnal, generarea unei except , ii
CSE Dep
Cursul 4, Procese
29/50
Semnale
CSE Dep
Cursul 4, Procese
30/50
Semnale (cont.)
CSE Dep
Cursul 4, Procese
31/50
Semnale (cont.)
comanda kill poate folosit a pentru transmiterea unui semnal
denumire nefericit a: nu toate semnalele termin a procesul
Terminarea unui proces cu semnalul SIGKILL
razvan@anaconda:~$ ps PID TTY TIME 10388 pts/2 00:00:00 10422 pts/2 00:00:00 10424 pts/2 00:00:00 razvan@anaconda:~$ kill [1]+ Killed razvan@anaconda:~$ ps PID TTY TIME 10388 pts/2 00:00:00 10425 pts/2 00:00:00 razvan@anaconda:~$ CMD bash netcat ps -KILL 10422 netcat CMD bash ps
CSE Dep
Cursul 4, Procese
32/50
Semnale (cont.)
pkill, killall: comenzi pentru semnale c atre grupuri de procese combinat ii de taste n shell pentru transmiterea de semnale
CTRL-C transmite SIGINT ( ntrerupe procesul terminare) CTRL-\ transmite SIGQUIT (opres , te procesul terminare mai puternic dec at CTRL-C) CTRL-Z transmite SIGSTOP (suspend a procesul n fundal pauz a)
CSE Dep
Cursul 4, Procese
33/50
CSE Dep
Cursul 4, Procese
35/50
Operatorul pipe: |
form a de baz a de comunicare ntre procese ies a spre intrarea altei , irea unei comenzi este redirectat comenzi nl ant , uirea comenzilor (lozoe Unix: Do one thing, do one thing well )
Folosirea operatorului |
anaconda:~# ps -e | grep bash 32737 pts/1 00:00:00 bash 794 ? 00:00:00 bash 854 pts/1 00:00:00 bash anaconda:~# ps -e | wc -l 118 anaconda:~# ps -e | head -n 5 PID TTY TIME CMD 1 ? 00:00:02 init 2 ? 00:00:00 migration/0 3 ? 00:00:00 ksoftirqd/0 4 ? 00:00:00 events/0
CSE Dep
Cursul 4, Procese
36/50
Rularea n fundal
fundalul (background ) sau prim planul (foreground ) interpretorului de comenzi (shell-ului) n mod implicit, rularea unei comenzi duce la rularea unui proces n foreground rulare n background nu se pot primi comenzi de la utilizator
se foloses , te operatorul & procesul continu a s a ruleze
comanda fg aduce procesul din background n foreground folosirea CTRL-Z (SIGSTOP) fort a procesul n background , eaz n starea suspendat (nu ruleaz a)
CSE Dep
Cursul 4, Procese
38/50
356 R
0.0
0.2
0:00.80 du
CSE Dep
Cursul 4, Procese
39/50
foreground s , i background
CSE Dep
Cursul 4, Procese
40/50
Daemoni
Disk And Execution MONitor (backronym) proces care ruleaz a n background s , i care . . .
. . . este detas ar a intrare s , at de terminalul de control (f , i ies , ire) . . . are ca p arinte init
util pentru act a intervent , iuni care nu necesit , ia utilizatorului numele executabilului aferent se termin a, de obicei, n d
sshd, syslogd, httpd, vsftpd etc.
CSE Dep
Cursul 4, Procese
41/50
Daemoni (cont.)
comandarea daemonilor n Linux se realizeaz a cu scripturile din /etc/init.d/
anaconda:/# /etc/init.d/apache stop Stopping apache 1.3 web server.... anaconda:/# /etc/init.d/apache start Starting apache 1.3 web server.... anaconda:/# /etc/init.d/apache restart Restarting apache 1.3 web server....
comandarea serviciilor n Windows se realizeaz a cu ajutorul comenzii net sau folosind interfat a grac a ,
C:\>net stop "DHCP client" The DHCP Client service is stopping. The DHCP Client service was stopped successfully. C:\>net start "DHCP client" The DHCP Client service is starting. The DHCP Client service was started successfully.
CSE Dep Cursul 4, Procese 42/50
edit , ia a 8-a, 2008 Silberschatz, Galvin, Gagne una dintre c art ap at ai n lumea sistemelor de operare , ile de c acoper a foarte bine subiectele de gestiunea proceselor s ,i gestiunea memoriei edit a pentru 2012 , ia a 9-a planicat
CSE Dep
Cursul 4, Procese
44/50
Donald Knuth
IBM
International Business Machines Corporation fondat a, ca nume, n 1924 una dintre cele mai mari companii din lume unul dintre cele mai recunoscute brand-uri hardware (servere), software, servicii Blue Gene supercomputers sust ator al open source IBM Linux Technology Center , in
CSE Dep
Cursul 4, Procese
46/50
DTrace
dynamic tracing analiza dinamic a ( n timp real) a aplicat , iilor s , i sistemului de operare ap arut n 2005, Sun Microsystems ruleaza pe Solaris, Mac OS X s , i *BSD c and a fost apelat a o funct , ie, cu ce argumente ,,scriptat cu ajutorul unui limbaj de programare a primit numeroase premii de inovat , ie modul de kernel portat pe Linux echivalent pe Linux este utilitarul SystemTap (stap)
CSE Dep
Cursul 4, Procese
47/50
Cuvinte cheie
proces program/executabil context de execut , ie PID init ierarhie de procese ps Task Manager Get-Process (PowerShell)
top comunicare ntre procese operatorul | semnale kill foreground background CTRL+Z, fg, bg daemon serviciu
CSE Dep
Cursul 4, Procese
48/50
Resurse utile
Silberschatz, Galvin, Gagne Operating System Concepts, 7th Edition (chapter 3: Processes) Andrew Tanenbaum Modern Operating Systems, 2nd Edition (chapter 2: Processes and Threads) http://en.wikipedia.org/wiki/Process_(computing) http://en.wikipedia.org/wiki/Daemon_(computer_software) http://en.wikipedia.org/wiki/Category:Unix_signals http://en.wikipedia.org/wiki/Inter-process_communication http://en.wikipedia.org/wiki/Paging http://computer.howstuffworks.com/operating-system5.htm
CSE Dep
Cursul 4, Procese
49/50