Professional Documents
Culture Documents
Cursul 4
Procese Utilizarea Sistemelor de Operare (USO) 22 octombrie 2012
Departamentul de Calculatoare
Multitasking: A polite way of telling someone you havent heard a word they said.
CSE Dep
Cursul 4, Procese
1/50
CSE Dep
Cursul 4, Procese
2/50
Utilizatori
http://stevelaube.com/wp-content/uploads/2011/06/iStock_000011246561XSmall.jpg
Utilizatori
/home
gid
adduser
http://www.cccp-shirts.com/images/sysadmin_bl_shirt.jpg
http://penpen.soup.io/post/63943110/Office-keyboard-Look-Busy-Go-Home-Wake
CSE Dep
Cursul 4, Procese
3/50
CSE Dep
Cursul 4, Procese
4/50
Suport de curs
mai formal: ,,deschidem aplicatii , tehnic: rulm procese a o aplicatie deschis = cel putin un proces care ruleaz a a , ,
CSE Dep
Cursul 4, Procese
5/50
CSE Dep
Cursul 4, Procese
7/50
Procese
Procese (cont.)
denumit si task sau job , un proces este un program cruia i s-a asociat un context de a executie , ia nastere dintr-un executabil , se creeaz o imagine a executabilului memorie, apartinnd a n a , procesului
proces
entitate activ a instructiunile si datele programului se ncarc memorie si a n , , , sunt rulate de procesor (CPU)
CSE Dep
Cursul 4, Procese
8/50
CSE Dep
Cursul 4, Procese
9/50
Context de executie ,
Program notepad.exe Windows n
C:\WINDOWS\system32>dir notepad.exe Volume in drive C has no label. Volume Serial Number is D050-E9E7
abstractizarea informatiei despre executia unui program , , Ce trebuie executat? (program) Pentru ct timp? (durat, cuant) a a a Ce conditii vor trebui ndeplinite pentru executie? , , (requirements) (memorie, mecanisme de comunicare, permisiuni) Pe care core/procesor? (planicare)
Directory of C:\WINDOWS\system32 08/04/2004 04:07 AM 1 File(s) 0 Dir(s) 69,120 notepad.exe 69,120 bytes 453,902,336 bytes free
CSE Dep
Cursul 4, Procese
10/50
CSE Dep
Cursul 4, Procese
11/50
Task Manager ALT+CTRL+DEL sau CTRL+SHIFT+ESC lista cu procesele active din sistem numele executabilului, al utilizatorului, utilizarea procesorului si memoria ocupat (congurabil) a , terminarea proceselor nedorite
CSE Dep
Cursul 4, Procese
12/50
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
CSE Dep
Cursul 4, Procese
18/50
Ierarhia de procese
identicatorul unui proces PID (process ID) (un numr) a orice proces are un proces printe (si numai unul) (exceptie a , , init) un proces este creat prin intermediul unui alt proces (fork) rezult o ierarhie de procese a
un proces are un proces printe a un proces are 0 sau mai multe procese copil Unix, procesul init este rdcina ierarhiei n a a
razvan@anaconda:~$ ps -H -o pid,ppid,comm -C init,sshd,bash,ps PID PPID COMMAND 1 0 init 3048 1 sshd 29263 3048 sshd 29266 29263 sshd 29267 29266 bash 32688 3048 sshd 32691 32688 sshd 32692 32691 bash 32733 3048 sshd 32736 32733 sshd 32737 32736 bash 487 32737 ps
CSE Dep
Cursul 4, Procese
19/50
CSE Dep
Cursul 4, Procese
20/50
Utilitarul top
monitorizarea proceselor si sistemului , utilitarul htop: culor, scroll vertical si orizontal, cutare etc. a ,
CSE Dep
Cursul 4, Procese
21/50
CSE Dep
Cursul 4, Procese
22/50
procfs
CSE Dep
Cursul 4, Procese
23/50
CSE Dep
Cursul 4, Procese
25/50
procfs (cont.)
Informatii despre un proces Vim folosind /proc ,
procfs (cont.)
informatiile despre un proces sunt grupate ntr-un director dat , de PID-ul procesului
Directoare cu nume date de PID-uri /proc n
anaconda:~# ls /proc/ 1 2693 2770 3 10 2694 2798 3015 32398 32488 3377 3379 853 854 driver execdomains modules mounts
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
26/50
CSE Dep
Cursul 4, Procese
27/50
un proces este creat din cadrul unui proces existent Unix, init este ,,strbunul tuturor proceselor n a fazele crerii a
copierea procesului printe (cu imaginea acestuia) a alocarea resurselor necesare pentru noul proces (PID, tabel de a siere, zone de memorie etc.) , arcarea executabilului asociat (imaginea procesului) nc actualizarea resurselor (zone de memorie, siere deschise) , ulterior se ruleaz procesul (se execut instructiuni pe procesor) a a ,
Cnd un proces moare, se sterge sierul executabil asociat? a , , Cnd moare un proces? a
se ajunge la sfrsitul zonei de cod a executabilului a , se apeleaz exit (sau o functie asemntoare) a a a , conditii anormale (abnormal termination): primirea unui , semnal, generarea unei exceptii ,
CSE Dep
Cursul 4, Procese
28/50
CSE Dep
Cursul 4, Procese
29/50
Semnale
Semnale (cont.)
CSE Dep
Cursul 4, Procese
30/50
CSE Dep
Cursul 4, Procese
31/50
Semnale (cont.)
comanda kill poate folosit pentru transmiterea unui a semnal
denumire nefericit: nu toate semnalele termin procesul a a
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
Semnale (cont.)
pkill, killall: comenzi pentru semnale ctre grupuri de a procese combinatii de taste shell pentru transmiterea de semnale n
CTRL-C transmite SIGINT ( ntrerupe procesul terminare) CTRL-\ transmite SIGQUIT (opreste procesul terminare , mai puternic dect CTRL-C) a CTRL-Z transmite SIGSTOP (suspend procesul fundal a n pauz) a
CSE Dep
Cursul 4, Procese
32/50
CSE Dep
Cursul 4, Procese
33/50
Operatorul pipe: |
form de baz de comunicare a a ntre procese iesirea unei comenzi este redirectat spre intrarea altei a , comenzi antuirea comenzilor (lozoe Unix: Do one thing, do one nl , 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
35/50
CSE Dep
Cursul 4, Procese
36/50
Rularea fundal n
fundalul (background) sau prim planul (foreground) interpretorului de comenzi (shell-ului) mod implicit, rularea unei comenzi duce la rularea unui n proces foreground n rulare background nu se pot primi comenzi de la utilizator n
se foloseste operatorul & , procesul continu s ruleze a a
356 R
0.0
0.2
0:00.80 du
comanda fg aduce procesul din background foreground n folosirea CTRL-Z (SIGSTOP) forteaz procesul background a n , starea suspendat (nu ruleaz) n a
CSE Dep
Cursul 4, Procese
38/50
CSE Dep
Cursul 4, Procese
39/50
foreground si background ,
Daemoni
Disk And Execution MONitor (backronym) proces care ruleaz background si care . . . a n ,
. . . este detasat de terminalul de control (fr intrare si iesire) aa , , , . . . are ca printe init a
util pentru actiuni care nu necesit interventia utilizatorului a , , numele executabilului aferent se termin, de obicei, d a n
sshd, syslogd, httpd, vsftpd etc.
CSE Dep
Cursul 4, Procese
40/50
CSE Dep
Cursul 4, Procese
41/50
Daemoni (cont.)
comandarea daemonilor Linux se realizeaz cu scripturile n a 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....
editia a 8-a, 2008 , Silberschatz, Galvin, Gagne una dintre crtile de cpti lumea sistemelor de operare a , a a a n acoper foarte bine subiectele de gestiunea proceselor si a , gestiunea memoriei editia a 9-a planicat pentru 2012 a ,
comandarea serviciilor Windows se realizeaz cu ajutorul n a comenzii net sau folosind interfata 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 CSE Dep
Cursul 4, Procese
44/50
Donald Knuth
IBM
International Business Machines Corporation fondat, ca nume, 1924 a n una dintre cele mai mari companii din lume The Art of Computer Programming
ntrerupt dup volumul trei pentru a scrie TEX a volumul 4 aproape gata estimare pentru volumul 5 2020 n volumele 6 si 7 planicate ,
unul dintre cele mai recunoscute brand-uri hardware (servere), software, servicii Blue Gene supercomputers sustintor al open source IBM Linux Technology Center a ,
DTrace
Cuvinte cheie
dynamic tracing analiza dinamic ( timp real) a aplicatiilor si sistemului de a n , , operare aprut 2005, Sun Microsystems a n ruleaza pe Solaris, Mac OS X si *BSD , cnd a fost apelat o functie, cu ce argumente a a , ,,scriptat cu ajutorul unui limbaj de programare a primit numeroase premii de inovatie , modul de kernel portat pe Linux echivalent pe Linux este utilitarul SystemTap (stap)
proces program/executabil context de executie , 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
47/50
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