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

Procesi i niti

  • 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

Page 1: Procesi i niti

PROCESI I NITI

dr Ljubica Dikovićmr Slobodan Petrović

Visoka poslovno-tehnička škola Užice

OPERATIVNI SISTEMI

Page 2: Procesi i niti

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

Page 3: Procesi i niti

3/41

Hijerarhija memorije - podsećanje

Page 4: Procesi i niti

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

Page 5: Procesi i niti

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

Page 6: Procesi i niti

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

Page 7: Procesi i niti

Operacije nad procesima

7/41

Page 8: Procesi i niti

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

Page 9: Procesi i niti

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

Page 10: Procesi i niti

Operacije nad procesima

10/41

Page 11: Procesi i niti

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

Page 12: Procesi i niti

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

...

Page 13: Procesi i niti

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

Page 14: Procesi i niti

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

Page 15: Procesi i niti

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

Page 16: Procesi i niti

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

Page 17: Procesi i niti

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

Page 18: Procesi i niti

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

Page 19: Procesi i niti

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

Page 20: Procesi i 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

20/41

Page 21: Procesi i niti

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

Page 22: Procesi i niti

dr Ljubica Dikovićmr Slobodan Petrović

Visoka poslovno-tehnička škola Užice

Raspoređivanje procesa

OPERATIVNI SISTEMI

Page 23: Procesi i niti

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

Page 24: Procesi i niti

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

Page 25: Procesi i niti

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

Page 26: Procesi i niti

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

Page 27: Procesi i niti

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

Page 28: Procesi i niti

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

Page 29: Procesi i niti

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

Page 30: Procesi i niti

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

Page 31: Procesi i niti

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

Page 32: Procesi i niti

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

Page 33: Procesi i niti

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

Page 34: Procesi i niti

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

Page 35: Procesi i niti

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

Page 36: Procesi i niti

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

Page 37: Procesi i niti

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

Page 38: Procesi i niti

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

Page 39: Procesi i niti

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

Page 40: Procesi i niti

Algoritmi raspoređivanja – MQS

Primer:

40/42

Sistemski procesi

Interaktivni procesi

...

Paketna obrada

Korisnički procesi

Visok prioritet

Nizak prioritet

CPU

Page 41: Procesi i niti

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

Page 42: Procesi i niti

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