1 / 42

Procesi i niti

Vi soka poslovno-tehnička škola Užice. Procesi i niti. OPERATIVNI SISTEMI. dr Ljubica Diković mr Slobodan Petrović. Pojam procesa. Program – datotek a (fajl) na disku Datoteka u memoriji - proces

dominy
Download Presentation

Procesi i niti

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visoka poslovno-tehnička škola Užice Procesi i niti OPERATIVNI SISTEMI dr Ljubica Diković mr Slobodan Petrović

  2. Pojam procesa • Program – datoteka (fajl) na disku • Datoteka u memoriji - proces • Proces(process) je program ili deo programa u stanju izvršavanjanad datim podacima. Proces koristi računarske resurse (CPU, RAM ...) • program: statičan zapis instrukcija • proces: jedno izvršavanje (instanca) datog programa za dati skup podataka – sa jednim adresnim prostorom • moguće je kreirati više procesa nad istim programom, svaki radi nad svojim podacima – svaki ima svoj adresni prostor

  3. Hijerarhija memorije - podsećanje

  4. Pojam procesa • Svaki proces odlikuje: • pozicija u izvršavanju – mesto u programu dokle je izvršavanje stiglo (Program Counter) • stanje – podaci nad kojima proces radi – adresni prostor • Pojam posao(job) u suštini znači isto što i proces, • Pojam zadatak(task) ima različito značenje u različitim sistemimam i programskim jezicima, ali uglavnom znači isto što i proces • Na jednom procesoru (CPU) u jednom trenutku može da se izvršava samo jedan proces.

  5. Operacije nad procesima • Kreiranje procesa: roditeljski(parent) proces kreira proces-dete (child) sistemskim pozivom • Varijante dozvoljavanja korišćenja resursa: • proces-dete može da traži bilo koji resurs od OS • proces-dete može da koristi samo podskup resursa roditelja • Varijante izvršavanja: • kada kreira potomka, roditeljski proces se suspenduje (zaustavlja izvršavanje) sve dok se svi potomci ne završe • kada kreira potomka, roditeljski proces nastavlja izvršavanje uporedo sa svojim potomcima • Varijante formiranja adresnog prostora: • potomak dobija kopiju adresnog prostora (RAM) roditelja – “kloniranje” • potomak ima nezavisan program i (novi, prazan) adresni prostor (RAM)

  6. Operacije nad procesima • Primer – Linux: • Svaki Linux proces poseduje sledeće atribute:ID vlasnika, naziv procesa, ID procesa (PID), stanje procesa, PID procesa roditelja, vreme u komje proces pokrenut • sistemski poziv za kreiranje procesa: fork() • proces-dete dobija kopiju adresnog prostora roditelja i kompletan kontekst, pa nastavlja izvršavanje od istog mesta kao i roditelj • sistemski poziv wait() vrši sinhronizaciju procesa – proces-roditelj čeka da se proces-dete završi da bi nastavio dalje

  7. Operacije nad procesima

  8. Operacije nad procesima • pokrenuti terminal, kucati komandu ps –e ili ps –aef, videti proces i njegov PID (proces ID) koji je zauzeo svo procesorsko vreme i kucati komandu kill PID ili ako to ne uspe, sigurno „ubijanje” kill -9 PID

  9. Operacije nad procesima • MS Windows podržava oba načina formiranja adresnog prostora: • roditeljski adresni prostor se klonira • roditelj specifikuje ime programa nad kojim se kreira nov proces i (novi, prazan) adresni prostor (RAM) • Gašenje procesa: • kada završi izvršavanje glavnog programa • kada sam proces to eksplicitno zatraži, npr. sistemski poziv exit() • jedan proces gasi (“ubija”) neki drugi proces; moguća su ograničenja, npr. to može da uradi samo roditeljski proces; mogući razlozi: • potomak je iscrpeo svoje resurse • nije više potreban • roditelj treba da se ugasi, a OS ne dozvoljava da njegovi potomci dalje rade (kaskadno gašenje) • OS gasi proces zbog neke nedozvoljene operacije

  10. Operacije nad procesima

  11. STOP RUN START WAIT READY Dijagram stanja procesa • START – nastanak, formiranje procesa • READY – proces ima sve resurse, čeka na procesor • RUN – procesor (CPU) izvršava proces • WAIT – proces čeka na resurs (štampač, tastatura, miš, neki drugi proces ...) • STOP – kraj procesa

  12. PCB ID Processor context Memory params I/O info Scheduling params Accounting params ... Implementacija procesa • Struktura podataka u kojoj se čuvaju informacije za svaki poces unutar OS – Process Control Block (PCB) i sadrži: • ID – jedinstveni identifikator procesa unutar OS • kontekst procesora (process context): sve informacije potrebne da OS nastavi izvršavanje procesa, da ga kontroliše i ugasi • memorijski parametri: veličina i pozicija dodeljenog memorijskog bloka (RAM) • informacije o I/O resursima: spisak otvorenih fajlova, zauzetih resursa itd. • podaci potrebni za raspoređivanje: prioritet, dodeljeno CPU vreme, itd. • podaci potrebni za obračunavanje • ...

  13. Procesorski red • Svi procesi u stanju READY mogu se povezati u red PCB 1 PCB n PCB 2 ... ID ID ID Status Status Status Kontekst Kontekst Kontekst Prioritet Prioritet Prioritet Sledeći proces u redu Sledeći proces u redu Sledeći proces u redu Procesor CPU

  14. Raspoređivanje procesa X READY red RUN PCB2 X READY PCB1 PCB4 PCB5 PCB6 X I/O red Disk PCB7 PCB9 Event red X Event X waiting PCB0 PCB3 PCB8

  15. Raspoređivanje procesa • Proces prolazi kroz razna stanja i redove čekanja. Programi za raspoređivnje (schedules) odlučuju kada će proces ući u neki red ili napustiti. • Komponente OS koje ovo obavljaju su: • planer poslova – job scheduler, long-term or high-level scheduler (deli poslove na procese, dodeljuje prioritete procesima, dovodi procese u red čekanja) • dispečer – dispatcher, short-term or low-levelscheduler (dodeljuje CPU procesima koji se nalaze u procesorskom redu)

  16. Pojam niti • Nit (thread) predstavlja jedno izvršavanje nekog dela programa unutar adresnog prostora procesa • Razlika proces – nit : • Proces (teški proces, heavyweight process): jedno izvršavanje jednog programa sa sopstvenim adresnim prostorom (za dati skup podataka) • Nit (laki proces, lightweight process): jedno izvršavanje dela programa unutar adresnog prostora procesa

  17. Pojam niti • Više niti može biti kreirano unutar istog procesa: • svaka ima svoj tok kontrole(thread of control) – svoju poziciju izvršavanja u programskom kodu • sve niti dele isti adresni prostor i resurse procesa – otvorene fajlove, globalne podatke programa ... • svaka ima svoje lokalne podatke za pozive podprograma

  18. Primeri niti Primeri upotrebe - ista aplikacija, isti proces, isti program, ali više uporednih aktivnosti-niti: • tekst-procesor (WORD): 1 - snima dokument u pozadini, 2 - proverava gramatiku u pozadini, 3 - uporedo obrađuje pritiske tastera i druge akcije korisnika • Web Browser: 1 - dovlači slike ili drugi sadržaj sa Interneta, 2 - prikazuje sadržaj, 3 - obrađuje akcije korisnika • server: po jedna nit nad istim programom za svaki zahtev klijenta

  19. Implementacija niti • Podrška nitima može biti: • na nivou korisničkog programa (user threads): niti podržava izvršno okruženje ili biblioteka programskog jezika, OS nema koncept niti; prednosti: efikasnost i jednostavnost mane: kada se jedna nit blokira na sistemskom pozivu, ceo proces se blokira • na nivou OS-a (jezgra, kernel threads): OS direktno podržava koncept niti

  20. Korist niti • Bolji odziv interaktivne aplikacije: vremenski duge aktivnosti se mogu raditi “u pozadini”, a uporedo prihvatati akcije korisnika • Deljenje resursa: niti dele memoriju (adresni prostor), otvorene fajlove, programski kod ... • Ekonomičnost: kreiranje procesa, promena konteksta, alokacija memorije i ostalih resursa je skupo (troše resurse – CPU, RAM, ...); niti te režijske troškove ili eliminišu ili drastično smanjuju

  21. Program, proces, niti • PROGRAMMS Word, smešten na HDDc:\Program Files\Microsoft Office\ • PROCESWINWORD.EXE – u memoriji (RAM) • NITizmene u tekstu, kontrola gramatike, štampa ...

  22. Visoka poslovno-tehnička škola Užice OPERATIVNI SISTEMI Raspoređivanje procesa dr Ljubica Diković mr Slobodan Petrović

  23. STOP RUN START WAIT READY Dijagram stanja procesa • START – nastanak, formiranje procesa • READY – proces ima sve resurse, čeka na procesor • RUN – procesor izvršava proces • WAIT – proces čeka na resurs (štampač, tastatura, miš, neki drugi proces ...) • STOP – kraj procesa

  24. Kriterijumi raspoređivanja • Izbor algoritma raspoređivanja zavisi od prirode procesa. Svaki algoritam ima svoje karakteristike i pogodniji je za neke vrste procesa • Kriterijumi poređenja algoritama: • Iskorišćenje procesora (CPU utilization) • Propusnost (throughput): broj završenih procesa u jedinici vremena • Ukupno vreme provedeno u sistemu (turnaround time): vreme koje protekne od kreiranja do gašenja procesa • Vreme čekanja (waiting time): vreme koje proces provede u redu spremnih procesa • Vreme odziva (response time) u interaktivnom sistemu: vreme koje protekne od korisničkog zahteva do odziva na taj zahtev

  25. Kriterijumi raspoređivanja • Načini optimizacije: • optimizovati srednje vrednosti navedenih parametara • optimizovati maksimalne/minimalne vrednosti ovih parametara • minimizovati varijansu vrednosti: kod interaktivnih sistema, važnija je predvidivost odziva nego srednja vrednost njegovog odziva

  26. Algoritmi raspoređivanja - FCFS • First-Come, First Served (FCFS):prvi proces koji dođe, prvi je i uslužen od CPU • Najjednostavniji algoritam i jednostavna implementacija pomoću FIFO (First Input – First Output) reda: iz reda spremnih uzima se prvi proces, a novi se stavlja na kraj

  27. P1 P2 P3 Algoritmi raspoređivanja - FCFS Primer: Proces: Vreme izvršavanja: P1 24 P2 3 P3 3 Ako su redom došli na izvršenje P1, P2, P3 : Vreme čekanja: W1=0, W2=24, W3=24+3=27, Ws=(W1+W2+W3)/3=17 Međutim, ako su redom P2, P3, P1: W2=0, W3=3, W1=3+3=6, Ws=(0+3+6)/3=3

  28. Algoritmi raspoređivanja - FCFS • Zaključak:vreme čekanja (a time i vreme odziva) kod FCFS nije uvek minimalno i može značajno da varira ako su vremena izvršavanja procesa značajno različita • Konvojefekat (convoy effect): grupa I/O (Input-Output) procesa čeka da jedan RUN proces završi svoje dugo izvršavanje i stalno tako u krug – konvoj efekt – veliko sporo vozilo na uzbrdici prati veći broj manjih ali bržih vizila • FCSF je nepogodan za sisteme sa raspodelom vremena

  29. P4 P1 P3 P2 Algoritmi raspoređivanja - SJF • Shortest-Job-First (SJF): svakom procesu u redu čekanja procenjuje se vreme potrebno za izvršenje i CPU se dodeljuje onom procesu koji ima najmanju procenjenu vrednost. • Za procese sa istom procenjenom vrednošću - FCFS. • Primer Proces: Procenjeno vreme izvršavanja: P1 6 P2 8 P3 7 P4 3

  30. P4 P1 P3 P2 Algoritmi raspoređivanja - SJF Redosled izvršavanja prema SJF: P4, P1, P3, P2 (P4=3, P1=6, P3=7, P2=8) Vreme čekanja: W1=3, W2=3+6+7=16, W3=3+6=9, W4=0 Ws=(3+16+9+0)/4=7 Redosled izvršavanja po FCFS:P1, P2, P3, P4Ws=(0+6+14+21)/4=10.25

  31. Algoritmi raspoređivanja - SJF • Dokazivo je da je SJF optimalan u smislu da za dati skup procesa daje minimalno srednje vreme čekanja • Osnovni problem SJF algoritma: kako znati vrednost trajanja procesa?

  32. Algoritmi raspoređivanja – Prioritet procesa • Raspoređivanje sa prioritetima (Priority Scheduling, PS): • svakom procesu se dodeljuje vrednost prioriteta, a CPU se dodeljuje procesu sa najvišim prioritetom • Neki sistemi označavaju viši prioritet manjim celim brojem, a neki obrnuto. • Naš primer: manji broj – viši prioritet

  33. Algoritmi raspoređivanja – Priority Scheduling • Primer: Proces: Vreme izvršavanja: Prioritet: P1 10 3 P2 1 1 P3 2 4 P4 1 5 P5 5 2 Srednje vreme čekanja: (0+1+6+16+18)/5=8.2 P2 P5 P1 P4 P3 6 16 18 0 1 19

  34. Algoritmi raspoređivanja – Priority Scheduling • Prioriteti se procesima mogu dodeliti: • interno: sam OS dodeljuje vrednost neke ili nekih resursa kao prioritet (na primer: vremensko ograničenje, memorijski zahtevi, broj otvorenih fajlova, količnik prosečnog vremena I/O operacije i CPU izračunavanja) • eksterno: zadaje se van OS, kao parametar kreiranja procesa (npr. važnost procesa, cena njegovog izvršavanja ili vremenska ograničenja) • Raspoređivanje po prioritetima može biti: • sa pretraživanjem (proces se prekida kada se pojavi proces sa većim prioritetom) i • bez pretraživanja (proces se NE prekida kada se pojavi proces sa većim prioritetom)

  35. Algoritmi raspoređivanja – Priority Scheduling • Osnovni problem ovog raspoređivanja - izgladnjivanje (starvation): proces koji je spreman nikada ne dolazi do procesora jer ga pretiču procesi višeg prioriteta • Jedan način rešavanja problema izgladnjivanja – starenje (aging): prioritet nekom procesu se postepeno povećava kako on duže čeka na izvršavanje, pa konačno dolazi na red

  36. Algoritmi raspoređivanja – RR • Round-Robin (RR) raspoređivanje - specijalno osmišljen za interaktivne sisteme: • svakom procesu se dodeljuje kratak vremenski interval (vremenski kvantum - time slice) za izvršavanje (npr. 10 do 100 ms) i formira kružni red čekanja, nov proces na kraj liste • Moguće situacije: • Proces se završio u okviru vremenskog kvantuma • Proces nije se završio ali mora da prekine izvršenje zbog isteka vremena • Proces se blokira zbog čekanja na U/I operacije

  37. Algoritmi raspoređivanja – RR • Primer: vremenski interval (kvantum) od 4 jedinice vremena Proces: Vreme izvršavanja: P1 24 P2 3 P3 3 Redosled izvršavanja: P1(4), P2(3), P3(3), P1(5*4)

  38. Algoritmi raspoređivanja – RR • Uticaj veličine vremenskog kvantuma: • veoma veliki kvantum: RR postaje FCFS • veoma mali kvantum: povećava broj promena konteksta i time i režijsko vreme • Okvirno empirijsko pravilo: 80% vremena izvršavanja procesa treba da bude kraće od vremenskog kvantuma

  39. Algoritmi raspoređivanja – MQS • Multilevel Queue Scheduling (MQS) – Agoritmi za raspoređivanje u više redova – Procesi se razvrstavaju u različite grupe (npr. na interaktivne i pozadinske procese) • Režim rada: • postoji više redova čekanja spremnih procesa, • proces se smešta u odgovarajući red prema svojim karakteristikama (vrsta procesa ili parametri korišćenja resursa) • za svaki red se primenjuje poseban nezavisan algoritam raspoređivanja • postoji i jedan globalni algoritam raspoređivanja između redova; uglavnom se sprovodi raspoređivanje po prioritetima i sa preuzimanjem ili se za svaki red dodeljuje odgovarajući vremenski kvantum izvršavanja

  40. Algoritmi raspoređivanja – MQS • Primer: Visok prioritet CPU Sistemski procesi Interaktivni procesi ... Paketna obrada Korisnički procesi Nizak prioritet

  41. Algoritmi raspoređivanja – MFQS • Multilevel Feedback-Queue Scheduling (MFQS)Agoritmi sa povratnom spregom između redova • slično kao MQS, samo što procesi mogu da se premeštaju iz jednog reda spremnih u drugi. • ako je proces mnogo koristio CPU (istekao mu je vremenski kvantum), premešta se u red nižeg prioriteta • ako je proces dugo čekao u redu nižeg prioriteta, premešta se u red višeg prioriteta

  42. Algoritmi raspoređivanja – MFQS • MFQS definiše sledeće: • broj redova spremnih procesa • algoritam raspoređivanja za svaki red • metod koji se koristi za premeštanje procesa u red višeg prioriteta • metod koji se koristi za premeštanje procesa u red nižeg prioriteta • u koji red se smešta novi spreman proces

More Related