Sunteți pe pagina 1din 43

Cursul 4

Procese Utilizarea Sistemelor de Operare (USO) 22 octombrie 2012


Departamentul de Calculatoare

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

chmod username rwx parol ./program

/home

gid

uid sudo su chown ugo addgroup shadow


Administrators

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

Suport (Introducere n sisteme de operare)


Capitolul 5 Procese

CSE Dep

Cursul 4, Procese

5/50

Cum ,,facem lucruri ntr-un SO?

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

una din cele dou a abstractiz ari fundamentale n SO


cealalt a este s , ierul

un program aat n execut a a unui program) , ie (instant ,


o aplicat a (care ruleaz a) , ie deschis act n cadrul sistemului de operare , iune

program vs. proces


program
entitate pasiv a executabil din sistemul de s , iere (aat pe disc)

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.)

unitatea de lucru n SO det , ine informat , ii despre


ce se ruleaz a (codul obt , inut din program/executabil) cum se ruleaz a un program n SO c and trebuie rulate p art , i de cod din cadrul unui program ce resurse sunt folosite la rularea unui program

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

Program vs. proces n Windows


Program notepad.exe n Windows
C:\WINDOWS\system32>dir notepad.exe Volume in drive C has no label. Volume Serial Number is D050-E9E7 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

11/50

Program vs. proces n Linux


Program vim n Linux
razvan@anaconda:~$ whereis vim vim: /usr/bin/vim.basic /usr/bin/vim [...] razvan@anaconda:~$ file /usr/bin/vim.basic /usr/bin/vim.basic: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), for GNU/Linux 2.4.1, stripped razvan@anaconda:~$ ls -l /usr/bin/vim.basic -rwxr-xr-x 1 root root 1384232 Aug 29 14:02 /usr/bin/vim.basic

CSE Dep

Cursul 4, Procese

12/50

Vizualizare procese n Windows Explorer

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

Vizualizare procese n PowerShell


Procese n PowerShell
PS C:\Documents and Settings\razvan> ps Handles NPM(K) PM(K) WS(K) VM(M) ------- -------------- ----93 8 1404 4328 29 100 6 3300 5996 56 [...] 512 0 44 256 2 148 11 7712 2348 80 650 172 10056 5536 99 131 9 3072 8320 72 46 4 1152 2872 40 168 6 2620 7640 39 CPU(s) -----0.02 0.41 13.31 0.73 0.95 0.45 0.00 0.20 Id -2036 628 4 2824 372 2364 904 1840 ProcessName ----------alg ati2evxx System TOTALCMD winlogon WLTRAY WLTRYSVC wmiprvse

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 ProcessName -- ----------2156 firefox

Id -1500 496

ProcessName ----------POWERPNT powershell

and Settings\razvan> get-item -path alias:ps Name ---ps

Definition ---------Get-Process

CSE Dep

Cursul 4, Procese

15/50

Vizualizare procese n Unix

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, Procese

16/50

Vizualizare procese n Unix (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, Procese

17/50

Vizualizare procese n Unix (cont.)

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

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, Procese

20/50

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, Procese

21/50

Utilitarul top

vizualizarea dinamic a ( n timp real) a funct arii sistemului , ion


memoria ocupat a ocuparea procesorului informat , ii despre procese

monitorizarea proceselor s , i sistemului utilitarul htop: culor, scroll vertical s autare etc. , i orizontal, c

CSE Dep

Cursul 4, Procese

22/50

top processes gone crazy

CSE Dep

Cursul 4, Procese

23/50

procfs
sistem de s , iere virtual
informat asesc n memorie , iile se g

montat n /proc folosit de multe utilitare de baz a


Utilitare ce folosesc procfs
razvan@anaconda:~$ dpkg -L procps /bin/kill /bin/ps [..] /usr/bin/uptime /usr/bin/tload /usr/bin/free /usr/bin/top /usr/bin/vmstat /usr/bin/watch /usr/bin/skill /usr/bin/pmap /usr/bin/pgrep /usr/bin/slabtop

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

Crearea unui proces

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

Terminarea unui proces

la terminarea unui proces


toate informat , iile asociate dispar resursele (memorie, s , iere) sunt eliberate

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

n Unix mecanisme prin care se indic a unui proces


ncheierea unei operat ari (noticare) , ii sau atingerea unei st o condit a n funct , ie deosebit , ionare (de ex. accesarea unei zone invalide de memorie)

mecanismele echivalente ntr-un sistem Windows


evenimente (events ), pentru noticare except , ii, pentru condit , ii deosebite

CSE Dep

Cursul 4, Procese

30/50

Semnale (cont.)

Lista de semnale n Unix


razvan@anaconda:~$ kill -l 1) SIGHUP 2) SIGINT 5) SIGTRAP 6) SIGABRT 9) SIGKILL 10) SIGUSR1 13) SIGPIPE 14) SIGALRM 18) SIGCONT 19) SIGSTOP 22) SIGTTOU 23) SIGURG 26) SIGVTALRM 27) SIGPROF 30) SIGPWR 31) SIGSYS 3) 7) 11) 15) 20) 24) 28) SIGQUIT SIGBUS SIGSEGV SIGTERM SIGTSTP SIGXCPU SIGWINCH 4) 8) 12) 17) 21) 25) 29) SIGILL SIGFPE SIGUSR2 SIGCHLD SIGTTIN SIGXFSZ SIGIO

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

Comunicarea ntre procese

Social processes :-) intermediat a de nucleul SO semnale


un proces poate transmite un semnal altuia comanda kill transmiterea unui semnal de la shell la proces

alte forme de comunicare ntre procese


pipe-uri anonime sau cu nume (named pipes sau FIFO ) socket , i Unix s , i socket , i de ret , ea memorie partajat a cozi de mesaje

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

Rularea n fundal (cont.)

Rularea n background s n foreground , i revenirea


anaconda:/# [1] 1169 anaconda:/# 1169 pts/1 anaconda:/# 1169 root anaconda:/# du -hs du -hs & ps -e | grep du 00:00:00 du top -b -n 1 | grep du 18 0 1624 564 fg

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.

Cum se interact a cu un daemon? , ioneaz


semnale s , iere de congurare

pe Windows, echivalentul daemonului este serviciul


Control Panel Administrative Tools Services

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

Operating Systems Concepts

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

The Art of Computer Programming


ntrerupt dup a volumul trei pentru a scrie TEX volumul 4 aproape gata estimare pentru volumul 5 n 2020 volumele 6 s , i 7 planicate

analiza algoritmilor autorul TEX, METAFONT umor profesional


CSE Dep Cursul 4, Procese 45/50

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

S-ar putea să vă placă și

  • Culegere de Ghicitori PT Copii
    Culegere de Ghicitori PT Copii
    Document70 pagini
    Culegere de Ghicitori PT Copii
    riana 77
    100% (2)
  • CV Tip Simplu
    CV Tip Simplu
    Document1 pagină
    CV Tip Simplu
    AnNe MaRie
    100% (1)
  • Latex Prin Exemple
    Latex Prin Exemple
    Document212 pagini
    Latex Prin Exemple
    Denis Ibram
    Încă nu există evaluări
  • Comenzi Latex
    Comenzi Latex
    Document2 pagini
    Comenzi Latex
    mari_eu
    Încă nu există evaluări
  • Lab7 USO
    Lab7 USO
    Document12 pagini
    Lab7 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab6 USO
    Lab6 USO
    Document10 pagini
    Lab6 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab4 USO
    Lab4 USO
    Document11 pagini
    Lab4 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab9 USO
    Lab9 USO
    Document9 pagini
    Lab9 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab11 USO
    Lab11 USO
    Document12 pagini
    Lab11 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab 10 USO
    Lab 10 USO
    Document11 pagini
    Lab 10 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab8 USO
    Lab8 USO
    Document8 pagini
    Lab8 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab3 USO
    Lab3 USO
    Document13 pagini
    Lab3 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab5 USO
    Lab5 USO
    Document9 pagini
    Lab5 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 13 Handout
    Curs 13 Handout
    Document38 pagini
    Curs 13 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 05 Handout
    Curs 05 Handout
    Document37 pagini
    Curs 05 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Lab2 USO
    Lab2 USO
    Document13 pagini
    Lab2 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab12 USO
    Lab12 USO
    Document5 pagini
    Lab12 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab1 USO
    Lab1 USO
    Document5 pagini
    Lab1 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 11 Handout
    Curs 11 Handout
    Document37 pagini
    Curs 11 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 12 Handout
    Curs 12 Handout
    Document36 pagini
    Curs 12 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 02 Handout
    Curs 02 Handout
    Document39 pagini
    Curs 02 Handout
    Sarah Hernandez
    Încă nu există evaluări
  • Curs 09 Handout
    Curs 09 Handout
    Document40 pagini
    Curs 09 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 00 USO Facultatea Politehnica Bucuresti
    Curs 00 USO Facultatea Politehnica Bucuresti
    Document26 pagini
    Curs 00 USO Facultatea Politehnica Bucuresti
    Daniela Dragan
    Încă nu există evaluări
  • Curs 10 Handout
    Curs 10 Handout
    Document41 pagini
    Curs 10 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 06 Handout
    Curs 06 Handout
    Document42 pagini
    Curs 06 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • USO Curs 07 Handout
    USO Curs 07 Handout
    Document38 pagini
    USO Curs 07 Handout
    Alexandru Grigore
    Încă nu există evaluări
  • Curs 03 Handout
    Curs 03 Handout
    Document41 pagini
    Curs 03 Handout
    Sarah Hernandez
    Încă nu există evaluări
  • Curs 08 Handout
    Curs 08 Handout
    Document36 pagini
    Curs 08 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 01 Handout
    Curs 01 Handout
    Document28 pagini
    Curs 01 Handout
    Sarah Hernandez
    Încă nu există evaluări