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

Slides:



Advertisements
Lignende præsentationer
HUNDE SPEED km h 34,4 HUNDE SPEED km h 34,1 HUNDE SPEED km h 32,8 HUNDE SPEED km h 31,9 HUNDE SPEED km h 31,8 HUNDE SPEED km h 30,9.
Advertisements

VMS data Geografisk og tidsmæssig udvikling af indsatsen i tobisfiskeriet v/ dataspecialist Josefine Egekvist Sekretariat for myndighedsbetjening.
Atomer Et programmeret forløb. En måde at lære på.
SharePoint /36 2 General SettingsPermissions and ManagementCommunications Titel, description and navigation Versioning settings Advanced settings.
NemID og Fællesskema 2014 v/Signe Hansen Blegmand
Operativsystemer [6]: Virtuelt lager Datalogi 1F Forår 2003 Jørgen Sværke Hansen
TEST 2 modul 1 20 spørgsmål. Du skal klikke med musen på det rigtige svar, så kommer du automatisk til næste spørgsmål Klik for start.
Torbenfeldvej Vallensbæk strand Tlf.: – – dagligt brug af vores hjemmeside •AGEN LYS har en stor og omfattende.
1 Problemkompleksitet 2 Problemers kompleksitet En ineffektiv algoritme: køretiden vokser eksponentielt med input- størrelsen Et problem, der ikke kan.
Elevernes digitale dannelse
Bolig selskabernes Landsforening– Almene lejeboliger - Maj/Juni Almene lejeboliger - Danmarkspanelet - Maj/Juni 2010.
Tidlig skriftsprog i dagtilbud
COMPUTERENS ANATOMI KENDER DU DIN COMPUTER SÅ GODT SOM DU TROR?
Trivselsundersøgelse og ledelsesevaluering
Fremtidens ledelse af en kulturvirksomhed
SEO PÅ AU.
Statistik.
Flerbrugermaskine Fælles maskine Root: webserver Peter: uploader filer Pia: programudvikling 1 langvarig proces, evt. med børneprocesser skiftende behov.
Slide 1 Lindalsbakken Hadsund Sandtidssystemer Del 3 Forlæsningsplan Del 1:Introduktion, definition.
Slide 1 Lindalsbakken Hadsund Sandtidssystemer del 2 Forlæsningsplan MM1:Introduktion, definition.
Representations for Path Finding in Planar Environments.
Multiprogrammering[2] Datalogi 1F Forår 2003 Synkronisering og grænseflader Jørgen Sværke Hansen
Datalogi 1F: Multiprogrammering[2]
Datalogi 1F: Multiprogrammering[4] 1 Planen for i dag Repetition af kerner med afbrydelser Kerner med tvungent processkift Præsentation af K1.
Kursus om borger.dk og brugen af digital signatur
Introduktion til Access (Access, del 1)
Opslagsfelter (Access, del 6). RHS – Informationsteknologi 2 Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser vores.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Østjysk rapport om udligning og tilskud Seminar om udligning den 26. April 2010 Job og Økonomidirektør Asbjørn Friis Jensen, Favrskov.
Pleje og Sundhed Gennemførte719 Inviterede895 Svarprocent80% FREDERICIA KOMMUNE MTU og Psykisk APV 2012 Rapportspecifikationer.
1 UNION-FIND. 2 inddata: en følge af heltalspar (p, q); betydning: p er “forbundet med” q uddata: intet, hvis p og q er forbundet, ellers (p, q) Eksempel.
Operativsystemer [3]: Synkronisering og baglåse Datalogi 1F: Forår 2003 Jørgen Sværke Hansen
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Trivselsundersøgelse og ledelsesevaluering Anæstesiologisk Afdeling Flere ledere
1 Algoritme til at løse knude P-center problemet Algoritmen brugte set covering problemet Virker derfor kun til knude problemer Vi vil alligevel bruge.
Datalogi 1F Forår 2003 Operativsystemer og multiprogrammering Jørgen Sværke Hansen
ETU 2008 | Elevtilfredshedsundersøgelse Erhvervsskolen Nordsjælland HTX (Teknisk Gymnasium) - Hillerød Baseret på 313 besvarelser.
1 Borgerpanelet i Silkeborg Kommune.
Swapping og paging Flytning af processer (swapping) eller dele af processer (paging) mellem arbejdslager og fjernlager. Baggrund: På den ene side skal.
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
Datalogi 1F Forår 2003 Multiprogrammering[3] Eksempler på multiprogrammeringskerner Jørgen Sværke Hansen
MSBuild & Team Build i C#/C++ solutions VSTS ERFA d. 25 November.
Rapporter (Access, del 5). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller, og.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Grunde til at jeg elsker dig
Tilføj hjælpelinjer: 1.Højreklik et sted i det grå område rundt om dette dias 2.Vælg "Gitter og hjælpelinjer" 3.Vælg "Vis hjælpelinjer på skærm" Oplæg.
Fundamentale datastrukturer
Beskeder/beskedkøer Afsender- proces hej Modtager- proces.. msgsnd(..,"hej",..);.. msgrcv(..);.. Afsender skal bl.a. angive den besked der ønskes afsendt.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Objekter og klasser Rasmus D. Lehrmann DM
Opslagsfelter (Access, del 6). RHS – Informationsteknologi – Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser.
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
1 Team Build med Team Foundation Server 2008 Konfiguration og udvidelse af build jobs Kort præsentation Hvorfor bruge Team Build Afvikling af et build.
Slide Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 15 Algorithms for Query Processing and Optimization.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Procestræ under afvikling af cp init login shell cp cp src dest.
1 Kap. 4, Jordens Tyngdefelt = Torge, 2001, Kap. 3. Tyngdekraftens retning og størrelse g (m/s 2 ) Acceleration Tyngdepotentialet (W): evene til at udføre.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Operativsystemer, processor og tråde. Disposition Operativsystem Kerne funktionalitet Presser og adresserum Tråde.
Process Control Hardware baggrund Process begrebet i et OS Process tilstande Context switching.
Per Printz Madsen 1 Linux kernen Monolithic kernel Support for dynamiske moduler Få kerne tråde Preemptive.
Grundlæggende programmering Forår 2002
VTU 2008 | Virksomhedstilfredshedsundersøgelse Aalborg Tekniske Skole Svarprocent: 27% (414 besvarelser ud af mulige)
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
Datalogi 1F: Multiprogrammering[3] 1 Planen for idag Kerner uden afbrydelser (KB4 kap. 6): –akernen: kerne med decentralt processkift –bkernen: kerne med.
DAIMIProgrammering af Store Systemer1 Concurrency i Java – Samarbejdende tråde.
Præsentationens transcript:

OS[2]: Processor, tråde og skedulering Datalogi 1F Forår 2003 OS[2]: Processor, tråde og skedulering Jørgen Sværke Hansen cyller@diku.dk

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]

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]

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]

Tilstandsdiagram for en proces´ livscyklus Datalogi 1F: Operativsystemer[2]

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]

Datalogi 1F: Operativsystemer[2] Process Control Block Datalogi 1F: Operativsystemer[2]

Processkift (kontekstskift) Datalogi 1F: Operativsystemer[2]

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]

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]

Datalogi 1F: Operativsystemer[2] OS proceskøer Datalogi 1F: Operativsystemer[2]

Sammenhængen mellem køerne Datalogi 1F: Operativsystemer[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 Datalogi 1F: Operativsystemer[2]

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]

Datalogi 1F: Operativsystemer[2] UNIX pstree eksempel Datalogi 1F: Operativsystemer[2]

Datalogi 1F: Operativsystemer[2] UNIX ps eksempel Datalogi 1F: Operativsystemer[2]

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]

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]

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]

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]

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]

En proces med en eller flere tråde Datalogi 1F: Operativsystemer[2]

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]

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]

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]

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]

Fordeling af længden af CPU ”eksplosioner” Datalogi 1F: Operativsystemer[2]

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]

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]

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 30 Datalogi 1F: Operativsystemer[2]

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]

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]

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]

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]

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]

Flerniveau med feedback Eksempel Datalogi 1F: Operativsystemer[2]

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]

Datalogi 1F: Operativsystemer[2] Kilder Disse slides er baseret på SG03 samt de af forfatterne udviklede slides Datalogi 1F: Operativsystemer[2]