Upload
dominy
View
118
Download
3
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
PROCESI I NITI
dr Ljubica Dikovićmr Slobodan Petrović
Visoka poslovno-tehnička škola Užice
OPERATIVNI SISTEMI
Pojam procesa
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
2/41
3/41
Hijerarhija memorije - podsećanje
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.
4/41
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)5/41
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 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
6/41
Operacije nad procesima
7/41
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
8/41
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 resursenije više potrebanroditelj treba da se ugasi, a OS ne dozvoljava da
njegovi potomci dalje rade (kaskadno gašenje)– OS gasi proces zbog neke nedozvoljene operacije9/41
Operacije nad procesima
10/41
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
11/41
START READY
RUN
WAIT
STOP
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– ...
12/41
ID
Processorcontext
Memoryparams
I/O info
Schedulingparams
PCB
Accountingparams
...
Procesorski red
Svi procesi u stanju READY mogu se povezati u red
13/41
ID
Status
Kontekst
Prioritet
Sledeći proces u
redu
PCB 1ID
Status
Kontekst
Prioritet
Sledeći proces u
redu
PCB 2ID
Status
Kontekst
Prioritet
Sledeći proces u
redu
PCB n...
Procesor CPU
Raspoređivanje procesa
14/41
RUN
READY
Disk
X
PCB2
X
Event X waitingX
X
PCB1
PCB7
PCB0
PCB4 PCB5 PCB6
PCB9
PCB3 PCB8
READY red
I/O red
Event red
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-level scheduler (dodeljuje CPU procesima koji se nalaze u procesorskom redu)
15/41
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
16/41
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
17/41
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
18/41
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 jednostavnostmane: 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
19/41
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
20/41
Program, proces, niti
PROGRAMMS Word, smešten na HDDc:\Program Files\Microsoft Office\
PROCESWINWORD.EXE – u memoriji (RAM)
NITizmene u tekstu, kontrola gramatike, štampa ...
21/41
dr Ljubica Dikovićmr Slobodan Petrović
Visoka poslovno-tehnička škola Užice
Raspoređivanje procesa
OPERATIVNI SISTEMI
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
23/42
START READY
RUN
WAIT
STOP
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
24/42
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
25/42
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
26/42
Algoritmi raspoređivanja - FCFS
Primer:Proces: Vreme izvršavanja:
P1 24P2 3P3 3Ako 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
27/42
P1
P2
P3
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
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
28/42
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 6P2 8P3 7P4 3
29/42P1
P2
P3
P4
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
30/42P1
P2
P3
P4
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?
31/42
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
32/42
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
33/42
P2
P5
P3
P10 1 6 16 19
P4
18
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)
34/42
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
35/42
Algoritmi raspoređivanja – Priority Scheduling
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
36/42
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)
37/42
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
38/42
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šavanja39/42
Algoritmi raspoređivanja – MQS
Primer:
40/42
Sistemski procesi
Interaktivni procesi
...
Paketna obrada
Korisnički procesi
Visok prioritet
Nizak prioritet
CPU
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
41/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
42/42