Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

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

Lignende præsentationer


Præsentationer af emnet: "OS[2]: Processor, tråde og skedulering"— Præsentationens transcript:

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]


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

Lignende præsentationer


Annoncer fra Google