430 likes | 680 Views
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
E N D
Visoka poslovno-tehnička škola Užice Procesi i niti OPERATIVNI SISTEMI dr Ljubica Diković mr Slobodan Petrović
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
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.
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)
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
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
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
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
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 • ...
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
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
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)
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
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
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
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
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
Program, proces, niti • PROGRAMMS Word, smešten na HDDc:\Program Files\Microsoft Office\ • PROCESWINWORD.EXE – u memoriji (RAM) • NITizmene u tekstu, kontrola gramatike, štampa ...
Visoka poslovno-tehnička škola Užice OPERATIVNI SISTEMI Raspoređivanje procesa dr Ljubica Diković mr Slobodan Petrović
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
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
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
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
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
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
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
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
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?
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
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
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)
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
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
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)
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
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
Algoritmi raspoređivanja – MQS • Primer: Visok prioritet CPU Sistemski procesi Interaktivni procesi ... Paketna obrada Korisnički procesi Nizak prioritet
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
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