Cursul 4Utilizatori s, i procese
Utilizarea Sistemelor de Operare (USO)16 octombrie 2017
Departamentul de Calculatoare
CSE Dep Cursul 4, Utilizatori s, i procese 1/52
Moto
Multitasking: A polite way of telling someone you haven’t heard aword they said.
CSE Dep Cursul 4, Utilizatori s, i procese 2/52
Dezvoltarea programelor
fișcod sursă
fișier
cod sursă
fișier
obiect
fișier
obiect
fișier
executabilpachet
software
fișier
de datefișier de
configurare
bibliotecă
compilare
compilare
linking
dezvoltator
utilizator
CSE Dep Cursul 4, Utilizatori s, i procese 3/52
Dezvoltarea programelor
http://blog.codinghorror.com/whos-your-coding-buddy/
CSE Dep Cursul 4, Utilizatori s, i procese 4/52
In aceasta saptamana la USO
I WoUSO ruleaza la https://wouso.cs.pub.ro/
I miercuri, 18 octombrie 2017, ıncepe laboratorul 4: Utilizatoris, i procese
I tema 0 are termen joi, 19 octombrie 2017, 23:55I ıntrebat, i, ıntrebat, i, ıntrebat, iI folosit, i forumulI ajutat, i colegii pe forumI https://ocw.cs.pub.ro/courses/uso/regulament
I sect, iunea ,,Recomandari de comunicare electronica”I sect, iunea ,,Realizarea temelor”
I tema 1 va aparea joi, 19 octombrie 2017
I slide-urile cursului 5: Administrarea sistemului de fis, iere vor fipublicate vineri, 20 octombrie 2017
I luni, 23 octombrie 2017, la cursul 5 va avea loc lucrarea decurs 1, cu ıntrebari din cursurile 2, 3 s, i 4
I https://ocw.cs.pub.ro/courses/uso/punctaj
CSE Dep Cursul 4, Utilizatori s, i procese 5/52
Suport de curs
I Suport (Introducere ın sisteme de operare)I Capitolul 5 – ProceseI Sect, iunea 3.1I Sect, iunea 4.5I Sect, iunea 10.2.3I Sect, iunea 10.2.4I Sect, iunea 10.3.3 (paragraful ,,sudo”)
CSE Dep Cursul 4, Utilizatori s, i procese 6/52
De ce exista conturi s, i de autentificare?
I organizare
I separarea resurselor
I securitate
I privacy
I sa existe mai mult, i utilizatori pe un sistem (chiar simultan,cum este fep.grid.pub.ro
Spunem ca un sistem dispune de mai mult, i utilizatori, estemultiuser
CSE Dep Cursul 4, Utilizatori s, i procese 8/52
Ce poate face o aplicat, ie ıntr-un sistem?
I o aplicat, ie (sau ,,ceva care ruleaza”) este numita proces
I un proces ruleaza cu permisiunile utilizatorui care a pornit-o
I cand Dan lanseaza un proces acesta nu poate s, terge fis, iere aleCorinei s, i viceversa
I exista mai mult, i utilizatori ıntr-un sistem s, i mai multe procesecare t, in de utilizatori
I unii utilizatori sunt ,,ascuns, i” (nu te pot, i autentifica) pentruca anumite procese sa ruleaze cu permisiunile acelora
I o aplicat, ie care instaleaza pachete pe un telefon mobil va rulacu un anumit utilizator ,,ascuns”
I ın felul acesta nu apar probleme ıntre diversele procese
Intr-un sistem, utilizatorii reprezinta modul prin care se asiguraseparat, ia permisiunilor ıntre procese.
CSE Dep Cursul 4, Utilizatori s, i procese 9/52
Privilegii de utilizator
I utilizator obis,nuit/neprivilegiatI procesele lansate de acesta pot opera doar cu resursele saleI nu poate afecta mersul proceselor altor utilizatoriI prompt-ul se ıncheie cu $
I utilizator privilegiat (administrator, root)I procesele lansate de acesta pot modifica ıntre sistemulI poate afecta mersul proceselor altor utilizatoriI controleaza toate resursele sistemuluiI prompt-ul se ıncheie cu #
I sisteme de operare moderne permit privilegii separate (nutotale) anumitor utilizatori; de ce?
CSE Dep Cursul 4, Utilizatori s, i procese 10/52
Ce este un utilizator?
I perspectiva umanaI persoana care foloses, te un sistem de calcul
I perspectiva sistemului de operareI cont pe un sistemI entitate de tip agent – executa act, iuni ın cadrul sistemuluiI acces, drepturi (limitari, privilegii), act, iuni, proprietate
(ownership)I ın general identificat printr-un nume (username) s, i un
identificator (UID: user identifier)I procesele sunt create ın cadrul unui utilizator
CSE Dep Cursul 4, Utilizatori s, i procese 12/52
Operat, ii realizate de utilizatori
I autentificare (login)I furnizarea unor date de autentificare (credent, iale, credentials)I parola, semnatura digitala, amprenta
I deconectare (logout)
I schimbare credent, iale (parola, detalii de acces)
I schimbarea utilizatorului curent (switch user)
I rularea de procese cu permisiunile utilizatorului
CSE Dep Cursul 4, Utilizatori s, i procese 13/52
Parola
I forma obis,nuita de obt, inere a accesului (login)
I s, ir de caractere tiparibileI considerente de securitate
I fara cuvinte comune (din dict, ionar)I fara date de nas, tereI daca se noteaza, de avut grija unde se noteazaI ınlocuire periodicaI caractere speciale, numere, majuscule
Treat your password like your toothbrush. Don’t let anybody else use it,and get a new one every six months.
Clifford Stoll
CSE Dep Cursul 4, Utilizatori s, i procese 14/52
Schimbarea utilizatorului
ın linia de comanda, comanda su (substitute user)
Folosirea comenzii su
razvan@valhalla:~$ su
Password:
root@valhalla:/home/razvan# exit
razvan@valhalla:~$ su -
Password:
root@valhalla:~# logout
razvan@valhalla:~$ su - so
Password:
so@valhalla:~$
CSE Dep Cursul 4, Utilizatori s, i procese 15/52
Act, iuni privilegiate
I act, iunile neprivilegiate pot fi executate de tot, i utilizatoriiI parcurgerea ierarhiei de fis, iereI rularea de programeI conexiuni de ret,ea
I act, iunile privilegiate pot fi executate doar de anumit, iutilizatori
I gestiunea utilizatorilor (adaugare, s, tergere utilizatori)I gestiunea pachetelorI configurarea ret,eleiI configurarea parametrilor de bootI configurarea nucleului
CSE Dep Cursul 4, Utilizatori s, i procese 16/52
Utilizator privilegiat
I ın general, exista un utilizator sau seturi de utilizatoriprivilegiat, i cu drepturi depline ın sistem
I Unix: utilizatorul rootI prompt-ul ıncepe cu #
I Windows: utilizatorul Administrator, grupulAdministrators
I accesul unui utilizator strain la un cont privilegiat ınseamnacompromiterea sistemului
I trebuie folosit cat mai rar contul privilegiatI pe Unix, se poate folosi su sau sudo
CSE Dep Cursul 4, Utilizatori s, i procese 17/52
sudo
I substitute user do
I rularea unor comenzi cu drepturi altui utilizator
I de obicei se ruleaza cu drepturi de root
I este solicitata parola utilizatorului care ruleaza comanda
Exemple de cazuri de utilizare sudo
$ sudo apt-get install package-name # install package-name
$ sudo su # open root shell
$ sudo bash # open root shell
I configurat ın /etc/sudoers
I putem configura granular privilegii: un utilizator poate rulaprivilegiat doar anumite comenzi
CSE Dep Cursul 4, Utilizatori s, i procese 18/52
Operat, ii cu utilizatori
Realizate de tot, i utilizatorii
I informat, ii despre utilizatori s, i grupuri
I /etc/passwd, /etc/group
I comenzile id, w, who, whoami, users, finger, pinky, last
Realizate de utilizator privilegiat
I adaugarea sau s, tergerea unui utilizator: adduser, deluser
I schimbarea parolei unui utilizator (poate fi realizata de unutilizator neprivilegiat pentru sine): passwd
I crearea sau s, tergerea unui grup de utilizatori
I adaugare sau s, tergerea unui utilizator ıntr-un grup
I oferirea sau revocarea de privilegii unui utilizator (de exempluın /etc/sudoers)
I mai multe ın cursul 12: Elemente de securitate
CSE Dep Cursul 4, Utilizatori s, i procese 19/52
Legatura utilizatori-procese
I un utilizator este un identificator (UID)
I act, iunile ın sistem se fac prin procese care t, in de un anumeutilizator
I un utilizator este autentificat ın sistem → exista un processhell al carui camp UID este al utilizatorului
I o comanda rulata de un utilizator = shell-ul curent, alutilizatorului, creeaza un proces nou, tot al utilizatorului
I ın sistem, un utilizator este reprezentat de o suma de procese
CSE Dep Cursul 4, Utilizatori s, i procese 21/52
Cum creeaza un utilizator procese?
I deschid aplicat, ii
I dublu click ın GUI
I rularea unei comenzi ın linia de comanda
I Alt+F2 (ın Linux) sau Buton de Windows + R (ın Windows)
I cand oricare dintre ei se autentifica se pornesc procesele destartup (interfat,a grafica pentru GUI sau shell-ul pentru CLI)
CSE Dep Cursul 4, Utilizatori s, i procese 22/52
Procese
I concept fundamental ın sisteme de operare, se refera laact, iune
I procesul poate fi numit aplicat, ie, task sau, nu foarte corect,,,program”
I un program aflat ın execut, ie (instant, a a unui program)I o aplicat, ie deschisa (care ruleaza)I act, iune ın cadrul sistemului de operareI program este, strict tehnic, executabilul din care se nas, te
procesul
CSE Dep Cursul 4, Utilizatori s, i procese 23/52
Procese (detaliat)
I unitatea de lucru ın SOI det, ine informat, ii despre
I ce se ruleaza (codul obt, inut din program/executabil)I cum se ruleaza un program ın SOI cand trebuie rulate part, i de cod din cadrul unui programI ce resurse sunt folosite la rularea unui program
I denumit s, i task sau job
I ia nas, tere dintr-un executabil, se ıncarca executabilul ınmemorie
CSE Dep Cursul 4, Utilizatori s, i procese 24/52
Resurse folosite de un proces
I un identificator la nivelul sistemului: PID (process identifier)
I procesor (ruleaza instruct, iuni pe procesor)
I memorie (instruct, iunile s, i datele sunt ın memorie)
I spat, iu pe disc (daca lucreaza cu fis, iere)
I dispozitive de intrare/ies, ire (placa de ret,ea, USB devices etc.)
CSE Dep Cursul 4, Utilizatori s, i procese 25/52
Operat, ii cu procese
I crearea sau pornirea unui proces
I terminarea, oprirea sau ıncheierea unui proces
I vizualizarea listei de procese
I inspectarea unui proces
I modificarea atributelor unui proces
I comunicarea ıntre procese
CSE Dep Cursul 4, Utilizatori s, i procese 26/52
Ce poate face s, i ce nu poate face un proces?
I depinde ce privilegii s, i permisiuni are pe resurse
I un proces sau nu poate crea un fis, ier; un proces poate sau nupoate trimite pachete pe ret,ea
I privilegiile unui proces sunt date de utilizatorul ce det, ineprocesul
I orice proces apart, ine unui utilizator
CSE Dep Cursul 4, Utilizatori s, i procese 27/52
Vizualizare procese ın Unix/Linux
I comanda ps (process status)
Vizualizarea proceselor din terminalul curent
razvan@anaconda:~$ ps
PID TTY TIME CMD
10388 pts/2 00:00:00 bash
10478 pts/2 00:00:00 ps
CSE Dep Cursul 4, Utilizatori s, i procese 29/52
Vizualizare procese ın Unix/Linux (cont.)
Vizualizarea tuturor proceselor din sistem
razvan@anaconda:~$ ps -e
PID TTY TIME CMD
1 ? 00:00:00 init
2 ? 00:00:00 ksoftirqd/0
3 ? 00:00:00 events/0
4 ? 00:00:00 khelper
5 ? 00:00:00 kacpid
...
3798 ? 00:00:08 soffice.bin
10388 pts/2 00:00:00 bash
10415 ? 00:00:00 sshd
10479 pts/2 00:00:00 ps
CSE Dep Cursul 4, Utilizatori s, i procese 30/52
Vizualizare procese ın Unix/Linux (cont.)
Vizualizare personalizata
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, Utilizatori s, i procese 31/52
Ierarhia de procese
I identificatorul unui proces – PID (process ID) (un numar)
I orice proces are un proces parinte (s, i numai unul) (except, ieinit)
I un proces este creat dintr-un alt proces
I ın linia de comanda un proces este creat din procesul shell(din procesul care cites, te comanda utilizatorului)
I rezulta o ierarhie de proceseI un proces are un proces parinteI un proces are 0 sau mai multe procese copilI ın Unix, procesul init este radacina ierarhiei
CSE Dep Cursul 4, Utilizatori s, i procese 32/52
Ierarhia de procese (cont.)
Vizualizarea ierarhiei de procese ın Unix cu ps -H
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, Utilizatori s, i procese 33/52
Ierarhia de procese (cont.)
Vizualizarea ierarhiei de procese ın Unix cu pstree
razvan@anaconda:~$ pstree -p
init(1)-+-Xprt(3144)
|-apache(3313)-+-apache(27892)
| |-apache(28002)
| |-apache(28037)
| |-apache(28038)
[...]
|-sshd(3048)---sshd(32733)---sshd(32736)---bash(32737)---pstree(571)
CSE Dep Cursul 4, Utilizatori s, i procese 34/52
Utilitarul top
I vizualizarea dinamica (ın timp real) a funct, ionarii sistemuluiI memoria ocupataI ocuparea procesoruluiI informat, ii despre procese
I monitorizarea proceselor s, i sistemului
I utilitarul htop: culori, scroll vertical s, i orizontal, cautare etc.
CSE Dep Cursul 4, Utilizatori s, i procese 35/52
Crearea unui proces
I un proces este creat din cadrul unui proces existent
I ın Unix, init este ,,strabunul” tuturor proceselorI fazele crearii
I copierea (,,clonarea”) procesului parinteI alocarea resurselor necesare pentru noul proces (PID, tabela de
fis, iere, zone de memorie etc.)I ıncarcarea ın memorie a executabilului asociat noulul proces
(faza se numes, te “loading”)I actualizarea resurselor (zone de memorie, fis, iere deschise)I ulterior se ruleaza procesul (se executa instruct, iuni pe procesor)
CSE Dep Cursul 4, Utilizatori s, i procese 37/52
Terminarea unui proces
I la terminarea unui procesI toate informat, iile aferente disparI resursele (memorie, fis, iere) sunt eliberate
I Cand un proces moare, se s, terge fis, ierul executabil asociat?I Cand se termina un proces?
I se ajunge la sfars, itul zonei de cod a executabiluluiI se apeleaza exit (sau o funct, ie asemanatoare)I act, iune nevalida, condit, ii anormale (abnormal termination):
generarea unei except, ii (acces nevalid la memorie sau altaresursa)
I este terminat de utilizator sau alt proces
CSE Dep Cursul 4, Utilizatori s, i procese 38/52
Terminare fort,ata a unui proces
I procesul executa o act, iune nevalida (condit, ie anormala) →sistemul de operare termina procesul
I nu mai sunt resurse ın sistem → sistemul de operare terminaprocesul
I rat, iuni particulare → utilizatorul sau alt proces terminaprocesul (utilizatorul tot printr-un proces, de obicei shell-ul)
I terminarea fort,ata a procesului ınseamna transmiterea uneinotificari catre acesta (unui ,,glont,”)
I notificarea este trimisa de sistemul de operare sau de un altproces
I notificarea se numes, te semnal (signal) pe Linux s, i except, ie(exception) pe Windows)
I anumite tipuri de notificare sunt doar pentru anunt, , nu sunt,,gloant,e” (nu termina procesul)
CSE Dep Cursul 4, Utilizatori s, i procese 39/52
Semnale
I ın Unix
I mecanisme de notificare prin care se indica unui procesI ıncheierea unei operat, ii sau atingerea unei stari (notificare)I o condit, ie deosebita ın funct, ionare (de ex. accesarea unei zone
invalide de memorie)
Lista de semnale ın Unix
razvan@anaconda:~$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
30) SIGPWR 31) SIGSYS
CSE Dep Cursul 4, Utilizatori s, i procese 40/52
Semnale (cont.)
I comanda kill poate fi folosita pentru transmiterea unuisemnal
I denumire nefericita: nu toate semnalele termina procesul
Terminarea unui proces cu semnalul SIGKILL
razvan@anaconda:~$ ps
PID TTY TIME CMD
10388 pts/2 00:00:00 bash
10422 pts/2 00:00:00 netcat
10424 pts/2 00:00:00 ps
razvan@anaconda:~$ kill -KILL 10422
[1]+ Killed netcat
razvan@anaconda:~$ ps
PID TTY TIME CMD
10388 pts/2 00:00:00 bash
10425 pts/2 00:00:00 ps
razvan@anaconda:~$
CSE Dep Cursul 4, Utilizatori s, i procese 41/52
Semnale (cont.)
I pkill, killall: comenzi pentru semnale catre grupuri deprocese
CSE Dep Cursul 4, Utilizatori s, i procese 42/52
Legatura procese-utilizatori
I un utilizator este un identificator (UID)
I act, iunile ın sistem se fac prin procese care t, in de un anumeutilizator
I un utilizator este autentificat ın sistem → exista un processhell al carui camp UID este al utilizatorului
I o comanda rulata de un utilizator = shell-ul curent, alutilizatorului, creeaza un proces nou, tot al utilizatorului
I ın sistem, un utilizator este reprezentat de o suma de procese
CSE Dep Cursul 4, Utilizatori s, i procese 44/52
Procese
I pornite de utilizator
I pornite de sistem (t, in de utilizatori ,,ascuns, i”)
I ps, top, htop: vizualizare procese
I proceselor le este ıncheiata execut, ia prin semnale
CSE Dep Cursul 4, Utilizatori s, i procese 45/52
Cuvinte cheie
I proces
I PID
I Task Manager
I ps
I init
I ierarhie de procese
I pstree
I top
I creare proces
I terminare proces
I semnal
I kill
I utilizator
I UID
I parola
I privilegiat
I root
I su
I sudo
CSE Dep Cursul 4, Utilizatori s, i procese 46/52
Operating Systems Concepts
I edit, ia a 8-a, 2008
I Silberschatz, Galvin, Gagne
I una dintre cart, ile de capatai ın lumea sistemelor de operare
I acopera foarte bine subiectele de gestiunea proceselor s, igestiunea memoriei
I edit, ia a 9-a planificata pentru 2012
CSE Dep Cursul 4, Utilizatori s, i procese 48/52
Donald Knuth
I The Art of Computer ProgrammingI ıntrerupt dupa volumul trei pentru a scrie TEXI volumul 4 aproape gataI estimare pentru volumul 5 ın 2020I volumele 6 s, i 7 planificate
I analiza algoritmilor
I autorul TEX, METAFONT
I umor profesional
CSE Dep Cursul 4, Utilizatori s, i procese 49/52
IBM
I International Business Machines Corporation
I fondata, ca nume, ın 1924
I una dintre cele mai mari companii din lume
I unul dintre cele mai recunoscute brand-uri
I hardware (servere), software, servicii
I Blue Gene supercomputers
I sust, inator al open source – IBM Linux Technology Center
CSE Dep Cursul 4, Utilizatori s, i procese 50/52
DTrace
I dynamic tracing
I analiza dinamica (ın timp real) a aplicat, iilor s, i sistemului deoperare
I aparut ın 2005, Sun Microsystems
I ruleaza pe Solaris, Mac OS X s, i *BSD
I cand a fost apelata o funct, ie, cu ce argumente
I ,,scriptat”’ cu ajutorul unui limbaj de programare
I a primit numeroase premii de inovat, ie
I modul de kernel portat pe Linux
I echivalent pe Linux este utilitarul SystemTap (stap)
CSE Dep Cursul 4, Utilizatori s, i procese 51/52
Resurse utile
I Silberschatz, Galvin, Gagne – Operating System Concepts, 7th Edition(chapter 3: Processes)
I Andrew Tanenbaum – Modern Operating Systems, 2nd Edition (chapter2: Processes and Threads)
I http://en.wikipedia.org/wiki/Process_(computing)
I http://en.wikipedia.org/wiki/Category:Unix_signals
I http://computer.howstuffworks.com/operating-system5.htm
CSE Dep Cursul 4, Utilizatori s, i procese 52/52