Download præsentationen
Offentliggjort afPernille Bonde Redigeret for ca. et år siden
1
OS[2]: Processor, tråde og skedulering
Datalogi 1F Forår 2003 OS[2]: Processor, tråde og skedulering Jørgen Sværke Hansen
2
Datalogi 1F: Operativsystemer[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
Datalogi 1F: Operativsystemer[2]
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
Datalogi 1F: Operativsystemer[2]
Process Control Block Datalogi 1F: Operativsystemer[2]
8
Processkift (kontekstskift)
Datalogi 1F: Operativsystemer[2]
9
Datalogi 1F: Operativsystemer[2]
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
Datalogi 1F: Operativsystemer[2]
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
Datalogi 1F: Operativsystemer[2]
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
Datalogi 1F: Operativsystemer[2]
UNIX pstree eksempel Datalogi 1F: Operativsystemer[2]
16
Datalogi 1F: Operativsystemer[2]
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 lager
item nextProduced; while (1) { while (((in + 1) % BUFFER_SIZE) == out) yield(); /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; } buffer fuld betingelse item nextConsumed; while (1) { while (in == out) yield(); /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; } buffer tom betingelse Datalogi 1F: Operativsystemer[2]
21
Datalogi 1F: Operativsystemer[2]
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
Datalogi 1F: Operativsystemer[2]
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
Datalogi 1F: Operativsystemer[2]
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
Datalogi 1F: Operativsystemer[2]
CPU skeduler Skeduleren vælger en proces til udførsel ud af en mængde af klare processer Valg kan foretages: Når en kørende proces skifter til ventetilstand Når en kørende proces skifter til klartilstanden Når en ventende proces skifter bliver klar 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 P P P 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: ( )/3 = 17 P1 P2 P3 24 27 30 Datalogi 1F: Operativsystemer[2]
31
Datalogi 1F: Operativsystemer[2]
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 Datalogi 1F: Operativsystemer[2]
32
Datalogi 1F: Operativsystemer[2]
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 feedback Eksempel
Datalogi 1F: Operativsystemer[2]
37
Datalogi 1F: Operativsystemer[2]
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
Datalogi 1F: Operativsystemer[2]
Kilder Disse slides er baseret på SG03 samt de af forfatterne udviklede slides Datalogi 1F: Operativsystemer[2]
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.