Visoka poslovnotehnika kola Uice OPERATIVNI SISTEMI PROCESI I

  • Slides: 42
Download presentation
Visoka poslovno-tehnička škola Užice OPERATIVNI SISTEMI PROCESI I NITI dr Ljubica Diković mr Slobodan

Visoka poslovno-tehnička škola Užice OPERATIVNI SISTEMI PROCESI I NITI dr Ljubica Diković mr Slobodan Petrović

Pojam procesa l l l 2/41 Program – datoteka (fajl) na disku Datoteka u

Pojam procesa l l l 2/41 Program – datoteka (fajl) na disku Datoteka u memoriji - proces Proces (process) je program ili deo programa u stanju izvršavanja nad 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

Hijerarhija memorije - podsećanje 3/41

Hijerarhija memorije - podsećanje 3/41

Pojam procesa l l 4/41 Svaki proces odlikuje: – pozicija u izvršavanju – mesto

Pojam procesa l l 4/41 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 l l 5/41 Kreiranje procesa: roditeljski (parent) proces kreira procesdete (child)

Operacije nad procesima l l 5/41 Kreiranje procesa: roditeljski (parent) proces kreira procesdete (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 l 6/41 Primer – Linux: – Svaki Linux proces poseduje sledeće

Operacije nad procesima l 6/41 Primer – Linux: – Svaki Linux proces poseduje sledeće atribute: ID vlasnika, naziv procesa, ID procesa (PID), stanje procesa, PID procesa roditelja, vreme u kom je 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 7/41

Operacije nad procesima 7/41

Operacije nad procesima l 8/41 pokrenuti terminal, kucati komandu ps –e ili ps –aef,

Operacije nad procesima l 8/41 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 l l 9/41 MS Windows podržava oba načina formiranja adresnog prostora:

Operacije nad procesima l l 9/41 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: l potomak je iscrpeo svoje resurse l nije više potreban l roditelj treba da se ugasi, a OS ne dozvoljava da njegovi potomci dalje rade (kaskadno gašenje) – OS gasi proces zbog neke nedozvoljene operacije

Operacije nad procesima 10/41

Operacije nad procesima 10/41

Dijagram stanja procesa l l l START – nastanak, formiranje procesa READY – proces

Dijagram stanja procesa l l l 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 STOP RUN START 11/41 READY WAIT

Implementacija procesa l 12/41 Struktura podataka u kojoj se čuvaju informacije PCB za svaki

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

Procesorski red l 13/41 Svi procesi u stanju READY mogu se povezati u red

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

Raspoređivanje procesa X RUN READY red PCB 2 X READY PCB 1 PCB 4

Raspoređivanje procesa X RUN READY red PCB 2 X READY PCB 1 PCB 4 PCB 5 X Disk PCB 7 I/O red PCB 9 X Event X waiting 14/41 PCB 0 PCB 6 PCB 3 PCB 8 Event red

Raspoređivanje procesa l l 15/41 Proces prolazi kroz razna stanja i redove čekanja. Programi

Raspoređivanje procesa l l 15/41 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 highlevel scheduler (deli poslove na procese, dodeljuje prioritete procesima, dovodi procese u red čekanja) – dispečer – dispatcher, short-term or low-level scheduler (dodeljuje CPU procesima koji se nalaze u procesorskom redu)

Pojam niti l l 16/41 Nit (thread) predstavlja jedno izvršavanje nekog dela programa unutar

Pojam niti l l 16/41 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 l 17/41 Više niti može biti kreirano unutar istog procesa: – svaka

Pojam niti l 17/41 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

Primeri niti Primeri upotrebe - ista aplikacija, isti proces, isti program, ali više uporednih aktivnosti - niti: – – – 18/41 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 l 19/41 Podrška nitima može biti: – na nivou korisničkog programa (user

Implementacija niti l 19/41 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 – – – 20/41 Bolji odziv interaktivne aplikacije: vremenski duge aktivnosti se

Korist niti – – – 20/41 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 l l l 21/41 PROGRAM MS Word, smešten na HDD c:

Program, proces, niti l l l 21/41 PROGRAM MS Word, smešten na HDD c: Program FilesMicrosoft Office PROCES WINWORD. EXE – u memoriji (RAM) NIT izmene u tekstu, kontrola gramatike, štampa. . .

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

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

Dijagram stanja procesa l l l START – nastanak, formiranje procesa READY – proces

Dijagram stanja procesa l l l 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 STOP RUN START 23/42 READY WAIT

Kriterijumi raspoređivanja l l 24/42 Izbor algoritma raspoređivanja zavisi od prirode procesa. Svaki algoritam

Kriterijumi raspoređivanja l l 24/42 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 l 25/42 Načini optimizacije: – optimizovati srednje vrednosti navedenih parametara – optimizovati

Kriterijumi raspoređivanja l 25/42 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 26/42 l First-Come, First Served (FCFS): prvi proces koji dođe,

Algoritmi raspoređivanja - FCFS 26/42 l First-Come, First Served (FCFS): prvi proces koji dođe, prvi je i uslužen od CPU l 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

Algoritmi raspoređivanja - FCFS Primer: Proces: Vreme izvršavanja: P 1 24 P 2 3

Algoritmi raspoređivanja - FCFS Primer: Proces: Vreme izvršavanja: P 1 24 P 2 3 P 3 3 Ako su redom došli na izvršenje P 1, P 2, P 3 : Vreme čekanja: W 1=0, W 2=24, W 3=24+3=27, Ws=(W 1+W 2+W 3)/3=17 Međutim, ako su redom P 2, P 3, P 1: W 2=0, W 3=3, W 1=3+3=6, Ws=(0+3+6)/3=3 27/42 P 3

Algoritmi raspoređivanja - FCFS l l l 28/42 Zaključak: vreme čekanja (a time i

Algoritmi raspoređivanja - FCFS l l l 28/42 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 Konvoj efekat (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

Algoritmi raspoređivanja - SJF l l l 29/42 Shortest-Job-First (SJF): svakom procesu u redu

Algoritmi raspoređivanja - SJF l l l 29/42 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: P 1 6 P 2 8 P 3 7 P 4 3 P 4 P 1 P 3 P 2

Algoritmi raspoređivanja - SJF Redosled izvršavanja prema SJF: P 4, P 1, P 3,

Algoritmi raspoređivanja - SJF Redosled izvršavanja prema SJF: P 4, P 1, P 3, P 2 (P 4=3, P 1=6, P 3=7, P 2=8) Vreme čekanja: W 1=3, W 2=3+6+7=16, W 3=3+6=9, W 4=0 Ws=(3+16+9+0)/4=7 Redosled izvršavanja po FCFS: P 1, P 2, P 3, P 4 Ws=(0+6+14+21)/4=10. 25 30/42 P 4 P 1 P 3 P 2

Algoritmi raspoređivanja - SJF l l 31/42 Dokazivo je da je SJF optimalan u

Algoritmi raspoređivanja - SJF l l 31/42 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 l l l 32/42 Raspoređivanje sa prioritetima (Priority Scheduling,

Algoritmi raspoređivanja – Prioritet procesa l l l 32/42 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 l Primer: Proces: P 1 P 2 P 3

Algoritmi raspoređivanja – Priority Scheduling l Primer: Proces: P 1 P 2 P 3 P 4 P 5 0 P 2 1 Vreme izvršavanja: Prioritet: 10 3 1 1 2 4 1 5 5 2 P 5 6 P 1 16 Srednje vreme čekanja: (0+1+6+16+18)/5=8. 2 33/42 P 3 18 P 4 19

Algoritmi raspoređivanja – Priority Scheduling l l 34/42 Prioriteti se procesima mogu dodeliti: –

Algoritmi raspoređivanja – Priority Scheduling l l 34/42 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 l l 35/42 Osnovni problem ovog raspoređivanja - izgladnjivanje

Algoritmi raspoređivanja – Priority Scheduling l l 35/42 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 l l 36/42 Round-Robin (RR) raspoređivanje - specijalno osmišljen za

Algoritmi raspoređivanja – RR l l 36/42 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 l Primer: vremenski interval (kvantum) od 4 jedinice vremena Proces:

Algoritmi raspoređivanja – RR l Primer: vremenski interval (kvantum) od 4 jedinice vremena Proces: P 1 P 2 P 3 Vreme izvršavanja: 24 3 3 Redosled izvršavanja: P 1(4), P 2(3), P 3(3), P 1(5*4) 37/42

Algoritmi raspoređivanja – RR l Uticaj veličine vremenskog kvantuma: – – l 38/42 veoma

Algoritmi raspoređivanja – RR l Uticaj veličine vremenskog kvantuma: – – l 38/42 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 l l 39/42 Multilevel Queue Scheduling (MQS) – Agoritmi za

Algoritmi raspoređivanja – MQS l l 39/42 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 l Primer: Visok prioritet Sistemski procesi Interaktivni procesi. . .

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

Algoritmi raspoređivanja – MFQS l 41/42 Multilevel Feedback-Queue Scheduling (MFQS) Agoritmi sa povratnom spregom

Algoritmi raspoređivanja – MFQS l 41/42 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 l MFQS definiše sledeće: – – – 42/42 broj redova

Algoritmi raspoređivanja – MFQS l MFQS definiše sledeće: – – – 42/42 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