70
1 Procesi in niti Poglavje 2 2.1 Procesi 2.2 Niti 2.3 Medprocesna komunikacija 2.4 Klasični IPC problemi 2.5 Razporejanje

Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

  • Upload
    others

  • View
    20

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

1

Procesi in niti

Poglavje 2

2.1 Procesi2.2 Niti2.3 Medprocesna komunikacija2.4 Klasični IPC problemi2.5 Razporejanje

Page 2: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

2

ProcesiProcesni model

• Multiprogramiranje štirih programov• Konceptualni model 4 neodvisnih, sekvenčnih procesov• Samo en program je aktiven v določenem času

Page 3: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

3

Kreiranje procesa

Dogodki, ki povzročijo kreiranje procesa:1. Inicializacija sistema2. Izvajanje sistema - kreiranja procesa3. Uporabniška zahteva po kreaciji procesa4. Iniciacija svežnjev opravil

Page 4: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

4

Kreiranje procesa

• Inicializacija sistema– Proces init (pid=0)

• Vidnost procesa– Viden: xtem, ura, urejevalnik,...– V ozadju: mailer, web strežnik, tiskanje, ...

• Tehnično je proces kreiran vedno z uporabo sistemskega klica za kreiranje procesa– fork()– createProcess

Page 5: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

5

Ustavitev procesa

Pogoji za zaustavitev procesa1. Normalen izhod (samostojno)2. Izhod z napako (samostojno)3. Težka napaka (na silo)4. Ubije ga drug proces (na silo)

Page 6: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

6

Hirarhije procesov

• Starš kreira otroka, otrok lahko kreira svoje procese

• Kreiranje hierarhije– UNIX imenuje to "skupina procesa"

• Windows nima koncepta hierarhije procesov– Vsi procesi so kreirani enaki

Page 7: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

7

Stanja procesa (1)

• Možna stanja procesa– izvajanje– blokiran– pripravljen

• Prehodi med stanji

Page 8: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

8

Stanja procesa (2)

• Najnižji nivo procesno strukturiranega OS – Ureja prekinitve, razporejanje

• Nad tem nivojem so sekvenčni procesi

Page 9: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

9

Implementacija procesov (1)

• Tabela procesov – (ali) Kontrolni blok procesa– Stanje procesa, PC, SP, spomin, odprte

datoteke, ...

• Dogajanje ob prekinitvi

Page 10: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

10

Implementacija procesov (2)

Polja zapisa procesne tabele

Page 11: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

11

Implementacija procesov (3)

Skelet scenarija: kaj naredi najnižji nivo ob prekinitvi.

Page 12: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

12

Stopnja multi-programiranja

Page 13: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

13

NitiModel niti (1)

(a) Trije procesi vsak z eno nitjo (b) En proces s tremi nitmi

Page 14: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

14

Model niti (2)

• Stvari ki si jih niti delijo v procesu• Stvari privatne za vsako nit

Page 15: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

15

Model niti (3)

Vsaka nit ima svoj sklad

Page 16: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

16

Uporaba niti (1)

Urejevalnik besedil s tremi nitmi

Page 17: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

17

Uporaba niti (2)

Večnitni Web strežnik

Page 18: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

18

Uporaba niti (3)

• Grob oris kode za prejšnjo prosojnico(a) Razpečevalec nit(b) Delavec nit

Page 19: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

19

Uporaba niti (4)

Trije načini za konstrukcijo strežnika

Page 20: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

20

Implementacija niti v uporabniškem prostoru

Paket za niti na uporabniškem nivoju

Page 21: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

21

Implementacija niti v uporabniškem prostoru

• Pozitivne lastnosti– Uporabniške niti se izvajajo hitreje.– Lahko imamo na kožo pisan razvrščevalnik.

• Negativne lastnosti– Če ena nit pokliče blokirajoč sistemski klic se

ustavi celoten proces.• Lahko pogledamo vnaprej ali je sistemski klic blokirajoč. • V tem primeru se nit uvrsti v tabelo niti; naslednjič se

zgodba ponovi.

– Uporabniška nit mora sama prepustiti kontrolo razvrščevalniku.

• Drugače bo tekla v neskončnost

Page 22: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

22

Implementacija niti v jedru

Paket za niti, ki ga uporablja jedro

Page 23: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

23

Hibridna implementacija

Multipleksiranje niti iz uporabniškega nivoja na jedrne niti

Page 24: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

24

Razvrščanje

• Cilj – oponašanje funkcionalnosti jedrnih niti – Dobimo uporabiške niti

• Izogibanje nepotrebnim prehodom v jedro• Jedro priredi virtualne procesorje vsakemu procesu

– Runtime sistem alocira niti procesorjem

• Problem:– Sistem se naslanja na jedro (nižji nivoji), ki kliče

uporabniške nivoje (višji nivo)

Page 25: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

25

Proženje niti

• Kreacija nove niti ob sporočilu(a) preden prispe sporočilo(b) potem ko prispe sporočilo

Page 26: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

26

Naredimo kodo z eno nitjo večnitno (1)

Konflikti med nitmi pri uporabi globalne spremenljivke

Page 27: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

27

Naredimo kodo z eno nitjo večnitno (2)

Nit ima lahko privatno globalno spremenljivko

Page 28: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

28

Medprocesna komunikacija

Dva procesa hočeta dostopat do skupnega pomnilnika hkrati

Tekmovanja

Page 29: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

29

Kritična področja (1)

Štirje pogoji za omogočenje vzajemnega izklučevanja1. Dva procesa ne smeta bit hkrati v kritičnem območju2. Ni predpostavk o hitrosti in številu procesorjev3. Nobeden proces, ki teče izven kritične regije ne blokira

druge procese4. Noben proces ne sme čakati v neskončnost, da vstopi v

kritično področje

Page 30: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

30

Kritična področja (2)

Vzajemno izklučevanje s kritičnimi regijami

Page 31: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

31

Rešitve za kritično sekcijo

• Vzajemno izključevanje s čakanjem v zanki– Prepoved prekinitev– Ključavnice– Striktno izmenjevanje– Dekkerjev algoritem– Petersonov algoritem– TSL (test-and-set-lock)

• Spanje in zbujanje (kasneje)

Page 32: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

32

Vzajemno izključevanje s čakalno zanko (1)

Striktno izmenjevanje (spin lock)(a) Proces 0. (b) Proces 1.

Page 33: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

33

Vzajemno izključevanje s čakalno zanko (2)

Petersonova rešitev za doseganje vzajemnega izključevanja

Page 34: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

34

Vzajemno izključevanje s čakalno zanko (3)

Vstop in izstop iz kritične sekcije z uporabo

TSL instrukcij

Page 35: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

35

Proizvajalec-Uporabnik s kritičnim tekmovanjem

Spanje in zbujanje

(fatal race condition)

Page 36: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

36

Semaforji (1)// Implementacija semaforja iz knjige S.Hartley.

class semaphore {

protected int value = 0 ;

protected semaphore() { value = 0 ; }

protected semaphore(int initial) { value = initial ; }

public synchronized void P() {

value-- ;

if (value < 0)

try { wait() ; } catch( InterruptedException e ) { }

}

public synchronized void V() {

value++ ; if (value <= 0) notify() ;

}

}

Page 37: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

37

Semaforji (2)// Implementacija splosnega semaforja iz knjige Doug Lea.

class semaphore {

private int value ;

public semaphore(int i) {

value = i ;

}

synchronized void P() {

while ( value <= 0 )

try { wait() ; } catch (InterruptedException e) { }

value-- ;

}

synchronized void V() {

value++ ;

notify() ;

}

}

Page 38: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

38

Semaforji (3)

Proizvajalec-Uporabnik z uporabo semaforjev

Page 39: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

39

Mutex

Implementacija mutex_lock in mutex_unlock

Page 40: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

40

Monitorji (1)

Primer monitorja

Page 41: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

41

Pogojne spremenljivke

• Pogojne spremenljivke so uporabne samo v monitorju

• Nitka lahko počaka na pogojno spremenljivko: wait – V tem trenutku druga nitka lahko vstopi v monitor

• Nitka lahko tudi sporoči drugi nitki, da je pogoj izpolnjen: signal – Ena čakajoča nitka lahko nadaljuje z delom

• Nitka lahko pošlje sporočilo vsem čakajočim nitkam na pogojno spremenljivko - broadcast

Page 42: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

42

Monitorji (2)

• Skica impl. Proizvajalca-Uporabnika z monitorji– Samo en monitor je aktiven ob danem času– Vmesni pomnilnik ima N predalov

Page 43: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

43

Monitorji (3)

Rešitev problema Proizvajalca-Uporabnika v Javi (del 1)

Page 44: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

44

Monitors (4)

Rešitev problema Proizvajalca-Uporabnika v Javi (del 2)

Page 45: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

45

Pošiljanje sporočil

Problem Proizvajalca-Uporabnika z N sporočili

Page 46: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

46

Meje (Barriers)

• Uporaba mej– Proces se približuje meji– Vsi procesi razen enega so blikorani pri meji– Pride zadnji in vsi gredo naprej

Page 47: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

47

Obedujoči filozofi (1)

• Filozofi jejo/razmišljajo• Potrebujejo 2 vilici• Jemljejo eno vilico

naenkrat • Kako preprečiti smrtni

objem

Page 48: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

48

Obedujoči filozofi (2)

Nepravilna rešitev za problem filozofov

Page 49: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

49

Obedujoči filozofi (3)

Rešitev za obedujoče filozofe (del 1)

Page 50: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

50

Obedujoči filozofi (4)

Rešitev za obedujoče filozofe (del 2)

Page 51: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

51

Problem Bralcev in Pisalcev

Rešitev za bralce in pisalce

Page 52: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

52

Problem spečega brivca (1)

Page 53: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

53

Problem spečega brivca (2)

Rešitev za spečega brivca

Page 54: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

54

RazporejanjeUvod v razporejanje (1)

• Razporejanje na 2. generaciji: poženi naslednji posel

• Razporejanje na večjih računalnikih 3. generacije– CPU čas je zelo dragocen

• Osebni računalniki– Razporejanje ne pride toliko do izraza

• Razporejanje na omrežnih strežnikih– Procesorski čas je zelo pomemben– Zamenjava procesa je zelo draga

Page 55: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

55

Uvod v razporejanje (2)

• Uporaba CPU se zamenjuje s čakanjem na I/O – Proces vezan na CPU – Proces vezan na I/O

Page 56: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

56

Uvod v razporejanje (3)

• Kdaj razporejati?– Ko se proces kreira se doda v vrsto READY.– Ko se proces konča je potrebno pognati

razvrščevalnik.– Ko je proces blokiran bodisi z I/O ali čem

drugim (npr. semafor).– V primeru da se zgodi prekinitev se lahko

nadaljuje isti proces ali se izbere nov.

Page 57: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

57

Uvod v razporejanje (4)

• Kdaj razporejati?– Ura generira prekinitev z 60 Hz (20ms). – Ne-preklopno razporejanje pusti, da se proces izvrši

do konca.– Preklopno (preemptive) razporejanje pusti izvajanje

procesa določen čas potem izbere drug proces.

Page 58: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

58

Uvod v razporejanje (5)

Algoritmi za razporejanje

Page 59: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

59

Razporejanje v sveženjskih sistemih (1)

• Prvi pride prvi melje• Najkrajši posel najprej• Najkrajši preostali čas najprej

Page 60: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

60

Razporejanje v sveženjskih sistemih (2)

Primer razporejanja: najkrajši posel najprej

Page 61: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

61

Razporejanje v sveženjskih sistemih (3)

Trije nivoji razporejanja

Page 62: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

62

Razporejanje v interaktivnih sistemih (1)

• Round Robin• Prioritetno razporejanje• Prioritetno razporejanje z več vrstami• Razporejanje z zagotovljenimi roki• Razporejanje loterija• Pravično razporejanje

Page 63: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

63

Razporejanje v interaktivnih sistemih (2)

• Razporejanje Round Robin– Seznam procesov za izvajanje– … po tem, ko je B naredil en kvant

Page 64: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

64

Razporejanje v interaktivnih sistemih (3)

• Vsi procesi so enako pomembni pri RR• Osnovna ideja:

– Vsak proces ima prioriteto – Vedno se uporabi proces z najvišjo prioriteto

• Izogibanje preveliki uporabi procesov z visoko prio.:– Prioriteta pada vsak kvant– Vsak proces ima max kvant

• Statično in dinamično dodeljevanje prioritet

Prioritetno razporejanje

Page 65: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

65

Razporejanje v interaktivnih sistemih (4)

• Razporeditev procesov v razrede (vrste) glede na prio– RR razporejanje znotraj razreda; prio razporejanje med

razredi

– Algoritem za razporejanje 1:• Izvedi najvišjo prio vrsto, pojdi navzdol.

– Algoritem za razporejanje 2:• CTSS, MIT, IBM 7094, 1962

• Ugotovitev: zamenjava procesov je draga

• Najvišji razred 1 kvant; nižji razredi 2, 4, 8, 16, ... kvantov

• Interaktivni procesi so odzivni

• Procesom z daljšim CPU se dviguje čas

Prioritetno razporejanje

Page 66: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

66

Razporejanje v interaktivnih sistemih (3)

Algoritem za razporejanje s štirimi prioritetnimi razredi

Page 67: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

67

Razporejanje za sisteme v realnem-času

Razporedljiv sistem v realnem času• Dano

– m periodičnih dogodkov

– dogodek i se zgodi s periodo Pi in zahteva Ci sekund

• Obremenitev se lahko izvede če

1

1m

i

i i

C

P=

≤∑

Page 68: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

68

Politika vs mehanizem

• Ločimo to kar je dovoljeno narediti od tega kako je narejeno.– Proces ve kateri otroci (niti) so pomembni in

potrebujejo prioriteto

• Algoritem razporejanja je parametriziran– Mehanizem v jedru

• Parametri so definirani z uporabnikovimi procesi– Politiko določi uporabniški proces

Page 69: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

69

Razporejanje niti (1)

Možna razporejanja uporabniških niti • 50-msec kvant procesa• Niti se izvajajo vsakih 5 msec/CPU

Page 70: Procesi in nitiosebje.famnit.upr.si/~savnik/predmeti/Sis2/02-Procesi...procesi –Politiko določi uporabniški proces 69 Razporejanje niti (1) Možna razporejanja uporabniških niti

70

Razporejanje niti (2)

Možna razporejanja niti na nivoju jedra• 50-msec kvant procesa• Niti se izvajajo v 5 msec/CPU