cursul 4 - utilizatori si proceseelf.cs.pub.ro/uso/res/cursuri/curs-04/curs-04-handout.pdf ·...

45
Cursul 4 Utilizatori s , i procese Utilizarea Sistemelor de Operare (USO) 16 octombrie 2017 Departamentul de Calculatoare CSE Dep Cursul 4, Utilizatori s , i procese 1/52

Upload: lydien

Post on 14-Feb-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

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