38
Datalogi 1F Forår 2003 OS[2]: Processor, tråde og skedulering Jørgen Sværke Hansen [email protected]

Datalogi 1F Forår 2003

  • Upload
    jalene

  • View
    48

  • Download
    0

Embed Size (px)

DESCRIPTION

Datalogi 1F Forår 2003. OS[2]: Processor, tråde og skedulering Jørgen Sværke Hansen [email protected]. Planen for idag. Processer: Procesbegrebet Processkift Processers familieliv Kommunikerende processer Tråde En lettere form for parallelisme Skedulering - PowerPoint PPT Presentation

Citation preview

Datalogi 1FForår 2003

OS[2]: Processor, tråde og skedulering

Jørgen Sværke Hansen

[email protected]

Datalogi 1F: Operativsystemer[2] 2

Planen for idag

• Processer:– Procesbegrebet– Processkift– Processers familieliv– Kommunikerende processer

• Tråde– En lettere form for parallelisme

• Skedulering– Hvordan udnyttes ressourcerne bedst muligt– Hvordan sikres lave ventetider

Datalogi 1F: Operativsystemer[2] 3

Hvad er en proces?• Operativsystemet afvikler bruger- og

systemprogrammer• Programmernes funktionalitet er specificeret

en serie af instruktioner:– Eksekverbar kode– Højniveausprog og fortolker

• En proces er et program under afvikling:– Specifikation– Køretidstilstand

• Processer udføres sekventielt

Datalogi 1F: Operativsystemer[2] 4

Livscyklus for en proces

En proces P bevæger sig mellem følgende

tilstande gennem sin levetid:

ny: P er ved at blive oprettet

kørende: P’s instruktioner bliver pt. udført

ventende: P venter på resultat af en operation

klar: P er klar til at blive udført men venter på CPU tid

afsluttet: P er termineret

Datalogi 1F: Operativsystemer[2] 5

Tilstandsdiagram for en proces´ livscyklus

Datalogi 1F: Operativsystemer[2] 6

Hvad består en proces af?

• En aktiv instans af et program:– Program kode (ens for alle instanser)– Program data– CPU registre– Systemressourcer:

• Lager• Åbne filer

– Bogføringsinformation:• Proces ID• Forbrug af systemressourcer

Datalogi 1F: Operativsystemer[2] 7

Process Control Block

Datalogi 1F: Operativsystemer[2] 8

Processkift (kontekstskift)

Datalogi 1F: Operativsystemer[2] 9

Processkift (2)

• Processkift er dyrt:– Umiddelbar omkostninger:

• Opmagasinering/reetablering af CPU registre• Skift af datastrukturer for virtuel hukommelse• Evt. afbrydelseshåndtering

– Afledte omkostninger:• CPU cache fyldt op med data fra gammel proces• Andre caches har lignende problemer (eks. TLB)

• Hardware understøttelse af processkift:– CPU har flere registersæt– Intel hyperthreading (2 aktive processer per CPU)

Datalogi 1F: Operativsystemer[2] 10

Hvor opholder processerne sig henne når de ikke er kørende?

Når en proces ikke er aktiv, placeres dens

PCB i en ventekø:

Klar-kø: svarende til klar-tilstanden

Ventekø: proces venter på hændelse:

I/O-kø: typisk en kø for hver ydre enhed

Synkroniseringskø: ved begrænset adgang til routiner kan det være nødvendigt at vente

Datalogi 1F: Operativsystemer[2] 11

OS proceskøer

Datalogi 1F: Operativsystemer[2] 12

Sammenhængen mellem køerne

Datalogi 1F: Operativsystemer[2] 13

Processers familieliv• Processer (en forælder) kan starte nye processer

(børn)• Et barn kan arve (dele af) systemressourcer fra

forælder:– Åbne filer– Lagerområder

• Et barn kan startes som en instans af et andet program (typisk arves ingenting fra forælder)

• Udførsel af børn:– Forældre kan vente på afslutningen af børnene– Forældre og børn udføres samtidigt

• Hvis en forælder dør:– Slås alle børn ihjel– Forælderrettighed overgives til stamfaderen

Datalogi 1F: Operativsystemer[2] 14

UNIX eksempel• fork() kloner en proces:

– Opretter kopi af arbejdslageret (kan ske dovent)

• Returværdi af kaldet er:– 0 hvis det er en børneproces– Proces_id for børneproces hos kaldene forælder

• wait() venter på en børneproces afsluttes:– Zombie processer – afsluttede processer hvor

forælder endnu ikke har ventet på dem

• execv(prog) udfører det nye program ”prog”

Datalogi 1F: Operativsystemer[2] 15

UNIX pstree eksempel

Datalogi 1F: Operativsystemer[2] 16

UNIX ps eksempel

Datalogi 1F: Operativsystemer[2] 17

Samarbejdende processer

• Uafhængige processer påvirkes ikke af udførslen af andre processer

• Samarbejdende processer kan påvirke hinanden

• Fordele ved samarbejde:– Dele data– Hurtigere udførsel af en opgave– Modularitet– Flere processer er naturligt til opgave

Datalogi 1F: Operativsystemer[2] 18

Koordinering af processer:Inter Process Communication (IPC)

• Sammenkædning af inddata med uddata:– UNIX pipes, f.eks.: gunzip –v text.txt.gz | less

• Beskedudveksling:– Direkte:

• send(453,besked): send besked til process med ID 453• modtag(id, besked): modtag besked fra en eller anden

– Indirekte (via postkasser):• Nemmere at etablere mange til mange relationer• Navngivne postkasser afkobler identifikation fra proces ID

• Delt lager

Datalogi 1F: Operativsystemer[2] 19

Producent-konsument problemet

• Paradigme for samarbejdende processer: en producent proces skaber data som bruges af en konsument proces

• Buffer plads:– Ubegrænset = ikke de store problemer– Begrænset = P’s hastighed skal afstemmes med Ks

• Delt lager:– buffer: en tabel– in: peger på næste frie indgang i buffer– out: peger på næste færdige element

Datalogi 1F: Operativsystemer[2] 20

Producent-konsument via delt lageritem nextProduced;

while (1) {while (((in + 1) % BUFFER_SIZE) == out)

yield(); /* do nothing */buffer[in] = nextProduced;in = (in + 1) % BUFFER_SIZE;

}

item nextConsumed;

while (1) {while (in == out)

yield(); /* do nothing */nextConsumed = buffer[out];out = (out + 1) % BUFFER_SIZE;

}

buffer fuldbetingelse

buffer tombetingelse

Datalogi 1F: Operativsystemer[2] 21

Tråde• ”Internt” i en proces kan der være flere

parallelle arbejdsopgaver, f.eks.:– Web-server: hver forespørgsel kan

behandles separat– Tekstbehandling: formatering af tekst sker

samtidig med behandling af inddata

• Tråde giver en proces mulighed for at have flere aktive programsekvenser, der deler processens systemressourcer:– Tråde er ”lette”– Processer er ”tunge”

Datalogi 1F: Operativsystemer[2] 22

En proces med en eller flere tråde

Datalogi 1F: Operativsystemer[2] 23

2 slags trådimplementation

• Tråde på brugerniveau:– Implementeret ”inden i” en enkelt proces– Al administration af tråde sker i brugerprocessen– Lav omkostning ved skift/oprettelse/nedlæggelse af

tråde

• Kernetråde:– Kernekald ved trådadministration (dyrt)– Kernen kan skifte tråd ved blokerende systemkald– Kan udnytte flere processorer

Datalogi 1F: Operativsystemer[2] 24

CPU skedulering

• Målet for CPU skedulering

• Forskellige skeduleringsstrategier:– First come first served– Shortest job first– Round robin– Prioritetsbaseret– Flerniveaubaseret

Datalogi 1F: Operativsystemer[2] 25

CPU skeduleringens formål

• Udnyt systemressourcer i multiprogram-meret system bedst/mest muligt:– CPU– Ydre enheder

• Sikre lave ventetider for brugere

• Procesafvikling består af et mix af CPU og I/O-perioder

Datalogi 1F: Operativsystemer[2] 26

Proces’ CPU vs I/O brug• CPU bunden:

bruger CPU mere end ydre enheder

• I/O-bundet: bruger ydre enheder mere end CPU

Datalogi 1F: Operativsystemer[2] 27

Fordeling af længden af CPU ”eksplosioner”

Datalogi 1F: Operativsystemer[2] 28

CPU skeduler

• Skeduleren vælger en proces til udførsel ud af en mængde af klare processer

• Valg kan foretages:1. Når en kørende proces skifter til ventetilstand

2. Når en kørende proces skifter til klartilstanden

3. Når en ventende proces skifter bliver klar

4. Når en proces afsluttes

• Frivilligt processkift (nonpreemptive): 1 og 4• Tvungent processkift (preemptive): resten

Datalogi 1F: Operativsystemer[2] 29

Kriterier for CPU skedulering• CPU udnyttelse: MAKSIMERES

– hvor mange % af tiden er CPU uden arbejde

• Throughput: MAKSIMERES– antal processer færdige per minut

• Udførselstid: MINIMERES– hvor lang tid tager det at udføre en given proces

• Ventetid: MINIMERES– hvor lang tid har en proces opholdt sig i ventekøen

• Responstid: MINIMERES– hvor langt tid er der imellem forespørgsel og

reaktion

Datalogi 1F: Operativsystemer[2] 30

First Come First Served (FCFS) Proces Processor periode

P1 24

P2 3

P3 3

• Processerne ankommer i rækkefølgen: P1 , P2 , P3

Gantt diagrammet for rækkefølgen er:

• Ventetiden for P1 = 0; P2 = 24; P3 = 27

• Gennemsnitlig ventetid: (0 + 24 + 27)/3 = 17

P1 P2 P3

24 27 300

Datalogi 1F: Operativsystemer[2] 31

Shortest Job First• Proces der har kortest tid tilbage udføres først:

– Preemptive: hvis der ankommer en kortere proces senere afbrydes den kørende proces

– Nonpreemptive: processer afbrydes ikke

• Giver den korteste ventetid for en given mængde processer

• Problem: det kræver at udførselstid kendes• Heuristikker til forudsigelse af næste

processorperiode:– Løbende gennemsnit nnn t 1 1

Datalogi 1F: Operativsystemer[2] 32

Round robin (RR)• En proces får adgang til CPU’en i en

begrænset periode T (en tidsskive), f.eks. 100 ms

• Når perioden udløber sættes processen bagest i klarkøen

• Med n processer i klarkøen får hver proces en 1/n-del af CPU tiden, og skal aldrig vente længere end T(n-1).

• Fastsættelse af T:– T stor betyder lange ventetider (gående mod FCFS)– T lav kan resultere i spildtid pga. mange

kontekstskift

Datalogi 1F: Operativsystemer[2] 33

Prioritetsbaseret afvikling• Hver proces tilknyttes et heltal, der angiver

processens prioritet, f.eks.: 0 (høj) - 7 (lav)• Processen med den højeste prioritet afvikles

først: (ved lighed bruge oftest RR)• SJF specialtilfælde hvor kortere køretid giver

højere prioritet• Problem: Udsultning – processer med lav

prioritet kommer aldrig til• Udsultning kan afhjælpes ved ældning af

processer (prioritet øges over tid)

Datalogi 1F: Operativsystemer[2] 34

Flerniveau skedulering• Klarkøen splittes op i flere køer, hvor hver kø

håndterer en klasse af applikationer:– Forgrund (interaktive)– Baggrund (CPU-bundne)

• Hver kø har sin egen skedulering:– Forgrund (RR)– Baggrund (SJF)

• Fordeling af procestid mellem køer:– Prioritetsbaseret: forgrund altid før baggrund– Tidsskiver: forgrund får 80% af CPU, bagrund 20%

Datalogi 1F: Operativsystemer[2] 35

Flerniveau med feedback

• En proces kan skifte mellem niveauer, f.eks ved ældning

• Processen overvåges løbende og placeres i en kø, der passer til observerede opførsel:– En proces i forgrundskøen, der ofte

overskrider sin tidsskive flyttes til baggrundskø

Datalogi 1F: Operativsystemer[2] 36

Flerniveau med feedbackEksempel

Datalogi 1F: Operativsystemer[2] 37

Opsummering

• Procesbegrebet: et program under udførsel, processkift, proceskøer

• Tråde: parallelisme internt i processer

• Skedulering: maksimer CPU udnyttelse, minimer ventetider, tvungent vs frivilligt processkift, forskellige skeduleringsalgoritmer

Datalogi 1F: Operativsystemer[2] 38

Kilder

• Disse slides er baseret på SG03 samt de af forfatterne udviklede slides