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 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] 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] 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] 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] 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] 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] 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] 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