Planen for idag. Datalogi 1F Forår 2003. Hvad er en proces? Livscyklus for en proces. Hvad består en proces af?



Relaterede dokumenter
Planen for idag. Opdatering af delt lager

Lærebog. Datalogi 1F Forår Hvad sker hvornår? Kursusbøger. Planen for idag. Hvad er et operativsystem

Planen for idag. Synkroniseringsmekanismer. Krav til løsning. Kritiske regioner. Bagerens algoritme. Kritisk region via delt lager.

Schedulering. dopsys

DATALOGI 1F. Skriftlig eksamen tirsdag den 27. januar 2004

1 Operativsystemer oversigt

Oversigt. Operativsystemer [6]: Virtuelt lager. Virtuel lager. Virtuelt lager. Virkemåde. Virtuelt lager eksempel virtuelt lager

Principper for Samtidighed og Styresystemer

Schedulering. dopsys 1

DATALOGI 1F. Skriftlig eksamen tirsdag den 10. juni % 2 10 % 3 25 % 4 10 % 5 30 %

Schedulering. dopsys 1

Koordinering. dopsys

Typisk PC arkitektur. Synkronisering ved aktiv venten

Kerner med afbrydelser. Planen for i dag. Kerne med afbrydelser. Tætkoblede drivprogrammer. Uheldig rækkefølge. Synkronisering med ydre enheder

Computer Literacy. En stationær bordmodel. En Bærbar Notebook, Labtop, Slæbbar, Blærebar mm.

Operativsystemer of C Efterår 2013 Virtuel hukommelse (kap. 9)

1. Forklar sammenhængen mellem sektor, spor (track) og cylinder.

DATALOGI 1F. Vejledende løsninger til Skriftlig eksamen tirsdag den 27. januar 2004

Processer og tråde. dopsys 1

Algorithms & Architectures II

Implementation af Koordinering. dopsys 1

Scheduling. Niels Olof Bouvin. Institut for Datalogi Aarhus Universitet

Uniprocessor Scheduling

Lageradministration. dopsys

Planen for idag. Kontrol af ydre enheder. Systemarkitektur. Synkronisering ved aktiv venten. Multiprogrammering[1]: Ydre enheder og multiprogrammer

Lærevejledning. - en introduktion til maskinarkitektur. faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen

Sider og segmenter. dopsys 1

Sider og segmenter. dopsys 1

Operativsystemer - dopsys

Lageradministration Paging og segmentering

Input/Output: Disk & Clock. dopsys

Input/Output: Brugergrænseflader. dopsys

Blockprog Rev1.0. Block programmering CS1/CJ1. Qiuck guide OMRON

Analyse og design af Indlejrede Systemer. v/ Jens Dalsgaard Nielsen Henrik Schiøler alle Afdeling for Proceskontrol

Synkronisering af sekventielle processer

Design Systemkald. User-mode Linux, The Linux kernel/

Planen for i dag. Logiske og fysiske adresser. Systemarkitektur. Binding af programkode til lager. Hardware understøttelse af lageradministration

Projekt - Valgfrit Tema

Processer og koordinering. dopsys 1

Ydeevne og kapacitet. Indholdsfortegnelse

Filsystemer: Implementation. dopsys

Processer. DS kursusgang nr. 2: Procestræer. ps: Vis processer

Virtuel Hukommelse. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Indhold. Maskinstruktur Kapitel 1. Assemblersprog Indledning Hop-instruktioner Input og output...

Computerens Anatomi. Kom/IT C - Computer Anatomi - Daniel og Fie - 3/ Planlægning af kommunikationsvalg og medieprodukt.

Computerens Anatomi. Af Martin Arnetoft

Jobliste overblik

Input/Output: Brugergrænseflader. dopsys

Interconnect. Front end interface

Batch. Navision Stat oktober 2008 ØKO/LIM. Overblik. Indholdsfortegnelse. Målgruppe

Vidar Jon Bauge. Notater til Teknik. Datamatikeruddannelsen efterår 2005 Side 1 af 54

DATALOGI 1F. Skriftlig eksamen mandag den 11. juni % 2 15 % 3 35 % 4 20 % 5 15 %

Datalogi 1F rapportopgave K2 Anonym datakommunikation

Oversigt. Operativsystemer [5]: Filsystemer. Hvad er en fil? Hvor er en fil? Strukturen af en fil. Beskrivelse af en fil

Styresystemer og tjenester

Bilag 2C ATP PC-arbejdsplads

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

3. Computerens opbygning.

CPU i7 2.2 GHz 4 kerner i5-4210u 1,7 GHz 2 kerner, 4 logiske kerner GPU integreret Nvidia GeForce 820M Ram 8GB 6 GB Harddisk HDD HDD

Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen

Systemkald DM Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/ Afleveret af: Jacob Christiansen,

Repræsentation af tal

AstroComp en idé Version 0.2 (foreløbig)

Bundkort Beskrivelse

Oversigt. Indhold mm.5: Latch es og flip-flops Analyse af synkrone sekventielle kredsløb Syntese. Boolsk algebra, byggeblokke,

Lageret i maskinarkitekturen. Beregningsenhed, lagre (registre, RAM, disk), ydre enheder

Large assembly handling Presented by TEAMWORKS A/S. Brogrenen10, Ishøj Rædersgade 3, Horsens

Underbilag 14 C: Afprøvningsforskrifter til prøver og tests

The ADSL-optimizer: Korrekt trafikstyring på ADSL linier

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

2x50 ETHERNET MODUL. RS485 slave med Ethernet-IP. Gælder for: Program nr.: AUXSLAVE v1 Dokument nr.: 0422md2x50-2v1 Dato:

Når du skal forberede din MUS-samtale MUS

EG Data Inform. Byggebasen. WCF og webservices. Jens Karsø

Guide til opdatering af Navision Stat med ny funktionalitet - nye objekter, datakonvertering, automatisk indlæsning af datafiler.

Analyse og design af Indlejrede Systemer. v/ Jens Dalsgaard Nielsen Henrik Schiøler Mads Dore alle Afdeling for Proceskontrol

Introduktion Til Functional Safety

Din brugermanual KONICA MINOLTA DI1610

NOTAT. Antal Borgere fordelt på genoptræningsforløb Figur 1

TAP'ers evaluering af fleksordning Dato :20:03

Principper for Samtidighed og Styresystemer

Versionsbrev LUDUS Web version LUDUS Web Den 8. december J. nr: 4004-V

Indholdsfortegnelse. Trafikanalyse af Lågegyde. Hørsholm Kommune. 1 Indledning. 2 Forudsætninger

Speciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)

Lageradministration Intel Pentium og Unix/Linux

Versionsbrev. LUDUS Web version Den 16. august J.nr V

Operation for stiv storetå

Opfyldelse af lovkrav Kvalitetsløft x Effektivisering x

Datalogi 1F rapportopgave K2: Implementering af en datanet protokolstak

Styresystemer og tjenester

Årsagen til fejl. Erkendelse af fejl. Håndtering af fejl.

Bits DM534. Rolf Fagerberg, 2012

Real-time programming safety in Java and Ada

Processer og koordinering

Velkommen til. Lær at se lean som metode til udvikling i køkkenet! Ulla Lundstrøm ulm@bdo.dk INDLEVELSE SKABER UDVIKLING

2. Systemarkitektur... 2

Parallelisering/Distribuering af Genetiske Algoritmer

Versionsbrev. LUDUS Web version Den 13. april J.nr V

Søren Guldbrand Pedersen Diverse noter til PC & Net Side 2 af 8. TYPE - viser fil eller program på skærmen.

Quickstart Guide. Dansk

Transkript:

Datalogi 1F Forår 2003 OS[2]: Processor, tråde og skedulering Jørgen Sværke Hansen 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] 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] 3 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] 4 Tilstandsdiagram for en proces livscyklus Datalogi 1F: Operativsystemer[2] 5 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] 6 1

Process Control Block Processkift (kontekstskift) Datalogi 1F: Operativsystemer[2] 7 Datalogi 1F: Operativsystemer[2] 8 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] 9 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] 10 OS proceskøer Sammenhængen mellem køerne Datalogi 1F: Operativsystemer[2] 11 Datalogi 1F: Operativsystemer[2] 12 2

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 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] 13 Datalogi 1F: Operativsystemer[2] 14 UNIX pstree eksempel UNIX ps eksempel Datalogi 1F: Operativsystemer[2] 15 Datalogi 1F: Operativsystemer[2] 16 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] 17 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] 18 3

Producent-konsument problemet Producent-konsument via delt lager 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 item 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 fuld betingelse buffer tom betingelse Datalogi 1F: Operativsystemer[2] 19 Datalogi 1F: Operativsystemer[2] 20 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] 21 En proces med en eller flere tråde Datalogi 1F: Operativsystemer[2] 22 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 CPU skedulering Målet for CPU skedulering Forskellige skeduleringsstrategier: First come first served Shortest job first Round robin Prioritetsbaseret Flerniveaubaseret Datalogi 1F: Operativsystemer[2] 23 Datalogi 1F: Operativsystemer[2] 24 4

CPU skeduleringens formål Udnyt systemressourcer i multiprogrammeret system bedst/mest muligt: CPU Ydre enheder Sikre lave ventetider for brugere Procesafvikling består af et mix af CPU og I/O-perioder 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] 25 Datalogi 1F: Operativsystemer[2] 26 Fordeling af længden af CPU eksplosioner 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] 27 Datalogi 1F: Operativsystemer[2] 28 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] 29 First Come First Served (FCFS) Proces Processor periode P 1 24 P 2 3 P 3 3 Processerne ankommer i rækkefølgen: P 1, P 2, P 3 Gantt diagrammet for rækkefølgen er: 0 P 1 P 2 P 3 24 27 30 Ventetiden for P 1 = 0; P 2 = 24; P 3 = 27 Gennemsnitlig ventetid: (0 + 24 + 27)/3 = 17 Datalogi 1F: Operativsystemer[2] 30 5

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: τ n = α t + α τ Løbende gennemsnit 1 n ( ) n + 1 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] 31 Datalogi 1F: Operativsystemer[2] 32 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] 33 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] 34 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ø Flerniveau med feedback Eksempel Datalogi 1F: Operativsystemer[2] 35 Datalogi 1F: Operativsystemer[2] 36 6

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 Kilder Disse slides er baseret på SG03 samt de af forfatterne udviklede slides Datalogi 1F: Operativsystemer[2] 37 Datalogi 1F: Operativsystemer[2] 38 7