Hoofdstuk 10: Scheduling bij multiprocessing en realtime

Slides:



Advertisements
Verwante presentaties
Critical Chain Project Management Marco Luiten NOVITADE.
Advertisements

CIMSOLUTIONS B.V. CIMSOLUTIONS Automation for Industry & Business SIG Embedded “Proces Ellende” André Vink CDP real-time embedded 28 september 2005.
Installatie & beheer Jonathan Mohnen Martijn Wolfs.
(E)OBD.
ICT Infrastructuren 26 november 2007 David N. Jansen.

Les 2 De antwoorden na een opening van 1 in een kleur
BESTURINGS SYSTEMEN Vincent Naessens.
DEEL V: INVOER/UITVOER EN BESTAND Hoofdstuk 11: I/O beheer en schijfscheduling Hoofdstuk 12: Bestandsbeheer.
17 juni 2013 OVERLEG PPJ OBVR SUBSIDIE. T1T1 + T2T1 + T2 + T3 Deel 3: forfait per plaats voor opdrachten T3 Deel 2b: Subsidiebedrag per plaats o.b.v.
Welkom Voorstellen Bustechnologie ASI Actuator-Sensor-Interface
Onderwerpen van deze presentatie
Loe Hameleers Twan Saleming Twan Elfers (Graydon)
Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Geavanceerde pipelining en parallellisme op het niveau van instructies (ILP:
Hoofdstuk 6: Controle structuren
1 SOCS Hoofdstuk 3 Basisprogrammatuur. 2 Inhoud De Vertaler De Voorvertaler De Lader De Binder De Vertolker  Werking van vertolker  Voor- en nadelen.
Op de koffie bij de kabouters
Inleiding Informatica Prof. Dr. O. De Troyer Hoofdstuk 10: Omgaan met problemen.
Overzicht presentatie
Internationale hogeschool Breda Wiskunde bij het ontwerpen en evalueren van verkeerslichtenregelingen Wachten voor een verkeerslicht duurt altijd te lang…..
Elke 7 seconden een nieuw getal
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Oefeningen F-toetsen ANOVA.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1.
College Project Management 1 maart 2002
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
Divide and Conquer in Multi-agent Planning Multi-Agent Planning as the Process of Merging Distributed Sub-plans Eithan Ephrati and Jeffrey S. Rosenschein.
Toonhoogte en frequentie
Real-Time Systems (RTSYST) Week Priority inheritance voorbeeld taakprioexecutionrelease time d4EEQVE4 c3EVVE2 b2EE2 a1EQQQQE0.
Febelfin – Studiedag “De beurs vandaag” Leen Van Wambeke Retail Marketing Services Euronext Brussels.
Hoofdstuk 9: Scheduling bij één processor
Les 3 Elektrische velden van continue ladingsverdelingen
De FFT spectrumanalyzer
Hoofdstuk 11 Effectief problemen oplossen
1Ben Bruidegom 1 De Harvard Machine Van rekenmachine met “loopjes” naar processor.
Een bakje kwark kost € 1,27. Hoeveel kosten vijf bakjes? 5 x € 1,27 = 5 x € 1,00 = € 5,00 5 x € 0,20 = € 1,00 5 x € 0,07 = € 0, € 6,35 Een.
10 juni 2002 TIF Slide Welkom 1 W.M. Everse | Z.Y. Ye | P. Groenenberg.
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
Operating Systems Informatica.
Voorlichting fysieke belasting
Real time systemen Real time –De resultaten moeten deterministisch (steeds binnen een gedefiniëerde tijd) ter beschikking zijn na het optreden van een.
Concurrency en Deadlock ICT Infrastructuren David N. Jansen Stallings hoofdstukken 5 en 6.
Inhoud college Bespreken opdracht Lijnbalancering: TPM
Inhoud college Lijnbalancering Comsoal Random Sequence Generation
ontdek wat jij kunt bereiken
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 13: scheduling.
9 Geschiedenis Mainframes en minicomputers. 9 Geschiedenis Mainframes -1 Na de Tweede Wereldoorlog begon de computer aan zijn opmars. De oorlogsindustrie.
Visum en overheidsopdrachten
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Finite State Machine (Eindige.
Basisfuncties Operating System.
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur hoofdstuk 13: scheduling.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Energie op school. Energiebesparing op school tot 20%
Representatie & Zoeken
Besturingssysteem Vaak wordt de Engelse term gebruikt: Operating System ( OS ) Plaats van het OS in een computersysteem: Hardware Applicatie Operating.
Best3-1 Les 3: Procesplanning Pareto principle — States that for many phenomena 80% of consequences stem from 20% of the causes.
Code compressie in Embedded Systems Onno Kievit ET4074 Kwantitatieve aspecten van computer architectuur.
Hoorcollege 4 Bespreking casus 2 (supermarkt).
TirPrs06: Wachttijdtheorie & simulatietechniek
1 VMWare. 2 Introductie VMware Fysieke server ESX-server Virtuele machines Ongewijzigde toepassing Ongewijzigd besturingssysteem Virtuele hardware.
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
Module code: Scheduling Het verdelen van processortijd onder processen en threads 1.
Change support Tactisch support Strategisch support Management support Monitoring Educatie Management- informatie Data- beheer Behoefte- management Contract-
Operating Systems Informatica.
Besturingssystemen 1 (TINBES01-1)
3 Hardware 3.1 De processor en intern geheugen
Besturingssystemen Ga verder met een muisklik..
Transcript van de presentatie:

Hoofdstuk 10: Scheduling bij multiprocessing en realtime

10.1. Scheduling bij meerdere processoren clusters (~loosely coupled) functional dedicated processors RAM I/O PROCESSOR I/O PROCESSOR RAM PR PROCESSOR MAIN PR RAM I/O PROCESSOR I/O PROCESSOR PR Hfdst 11 Hfdst 14 closely coupled RAM PR PR PR Hfdst 10

10.1. Scheduling bij meerdere processoren granulariteit bij multiprocessing ~granulariteit van synchronisatie onafhankelijke parallelliteit : systeem met timesharing grof gegranuleerde parallelliteit : verzameling gelijktijdige toepassingen gemiddeld gegranuleerde parallelliteit : verzameling threads binnen 1 proces fijn gegranuleerde parallelliteit : parallelliteit binnen 1 machine instructie aanpassingen scheduling algoritme noodzakelijk

10.1. Scheduling bij meerdere processoren ontwerpaspecten toewijzen van processen aan processoren 2. gebruik van multiprogrammering op verschillende processoren 3. feitelijke dispatching van een proces 1. toewijzen van processen aan processoren statisch dynamisch - proces permanent toegewezen aan zelfde proc. - 1 KT wachtrij per processor (load balancing) - proces ingeroosterd op willekeurige proc. - 1 KT wachtrij voor ganse systeem + minder overhead voor scheduler + groepscheduling/gangscheduling - performantie variante : dynamic load balancing (threads verplaatsen naar andere queue)

10.1. Scheduling bij meerdere processoren 1. toewijzen van processen aan processoren master/slave peer oriented master beheert kernelfuncties master is verantwoordelijk voor scheduling elke processor is gelijkwaardig elke processor voert sched. uit voor bep. proc. kritische fout bij master legt systeem plat master kan bottleneck worden voorkomen dat 2 proc.’en zelfde proces kiezen 2. gebruik van multiprogrammering voor individuele processors bij toepassingen met grove granulariteit : multiprogrammering = OK bij toepassingen met gemiddelde granulariteit : multiprogrammering = OK/NOK 3. toedeling van processen FCFS, RR, SJF, … ???

10.1. Scheduling bij meerdere processoren scheduling van processen 1,15 conclusies: keuze voor specifiek schedulingalgoritme minder belangrijk bij multiprocessorsystemen één processor 1,13 1,10 verhouding doorvoer RR en FCFS 1,08 1,05 twee processoren 1,03 1,00 0,98 1 2 3 4 5 variatiecoëfficient

10.1. Scheduling bij meerdere processoren scheduling van threads voordelen van threads: beter structureren van programma’s gelijktijdige I/O en verwerking benutten echte parallelliteit in een toepassing opm: kleine verschillen in beheer en scheduling kunnen significante invloed hebben op prestaties aanpakken: load sharing (dynamisch  load balancing) groepsscheduling/gangscheduling: groep gerelateerde threads ingeroosterd om gelijktijdig te worden uitgevoerd aantal processoren vaste processortoewijzing: aantal processors toewijzen gedurende ganse levensduur van threads dynamische scheduling: aantal threads aanpasbaar in een programma

10.1. Scheduling bij meerdere processoren queue load sharing voordelen: 1. werklast gelijkmatig verdeeld 2. geen gecentraliseerde scheduler nodig 3. wachtrij kan op verschillende manieren worden opgebouwd PR_1 PR_2 PR_3 PR_4 verschillende versies: FCFS (alle threads komen achteraan gemeenschappelijke wachtrij) laagste aantal threads eerst: PRIO(proces) = PRIO(- aantal_threads) preëmptief laagste aantal threads eerst. resultaten uit simulatiemodellen: beste strategie: FCFS + gang scheduling

10.1. Scheduling bij meerdere processoren queue load sharing nadelen: centrale wachtrij gevolg: mutual exclusion nodig (problematisch bij groot aantal processoren) mogelijks verschillende processoren bij preëmptie gevolg: problemen met cache-on-processor PR_1 PR_2 PR_3 PR_4

10.1. Scheduling bij meerdere processoren groepscheduling PR_1 PR_2 PR_3 PR_4 voordelen: aantal blokkeringen vanwege synchronisatie relatief klein (samen uitvoeren van units met hoge interactiegraad) schedulingoverhead relatief laag (één beslissing invloed op meerdere processoren) Processortoewijzing moeilijker Stel: N processors en M toepassingen (bestaan uit ≤ N threads) G1 uniforme verdeling verdeling op gewicht G1 G2 G1 G2 G2 PR_1 PR_2 PR_3 PR_4 PR_1 PR_2 PR_3 PR_4

10.1. Scheduling bij meerdere processoren vaste processortoewijzing (extreme vorm van groepsscheduling) PR_1 PR_2 PR_3 PR_4 nadelen: processoren ongebruikt bij I/O 2. geen multiprogrammering voordelen: processortijd niet belangrijk bij groot aantal processoren 2. snellere uitvoering van programma door vermijden proceswisselingen aantal threads ≤ aantal processoren (zie volgende slide)

10.1. Scheduling bij meerdere processoren vaste processortoewijzing (extreme vorm van groepsscheduling) PR_1 PR_2 PR_3 PR_4 Setting: 16 processoren

10.1. Scheduling bij meerdere processoren Dynamische scheduling assumptie: mechanismes om aantal threads per job dynamisch aan te passen (afh. van aantal beschikbare processoren) ALGORITME: process.request_processors(int aantal) if(ongebruikte processors) assign_processors else 1. zoek proces met meerdere processoren aan toegekend 2. neem er eentje van af 3. ken processor toe aan het nieuwe proces else wacht_efkes_in_queue ALGORITME: process.release_processors(int aantal) geef 1 processor aan alle processen in queue Geef rest van processor op basis van FCFS

10.2. Realtime-scheduling Inleiding hard realtime task : schade indien begin of einde van taak niet voor deadline soft realtime task : toch nog zinvol om taak na deadline uit te voeren niet-periodieke taak : deadline waarop taak moet starten/eindigen periodieke taak : ‘eens per periode T’ of ‘precies om de T eenheden’

interrupt service routine 10.2. Realtime-scheduling Kenmerken van realtime besturingssysteem deterministic ~vertraging vooraleer een interrupt wordt bevestigd door OS 1. snel kunnen reageren op events (~interrupts) 2. voldoende capaciteit om verzoeken af te handelen binnen tijdsinterval responsiveness ~tijd die nodig is om interrupt af te handelen tijd om interrupt af te handelen tijd om interrupt service routine (ISR) uit te voeren invloed van nesten van interrupts bevestiging interrupt interrupt afhandeling interrupt afhandeling interrupt service routine

10.2. Realtime-scheduling Korte Termijnscheduler Very Important Kenmerken van realtime besturingssysteem user influence opgeven prioriteiten aan taken aangeven welke processen zeker in RAM moeten blijven … reliability verlies kan prestaties verminderen of rampzalige gevolgen hebben fail-soft werking/stabiliteit fouten opvangen zonder werking fundamenteel te verhinderen Korte Termijnscheduler Very Important

10.2. Realtime-scheduling : verzoek RT_proces : preëmptieve OP Mogelijke schedulingstrategieën preëmptieve scheduler met RR realtime proces achteraan queue proces_1 proces_2 proces_n RT_proces prioriteitsgestuurde, niet-preëmptieve scheduler realtime proces eerste in queue huidig_proces RT_proces prioriteitsgestuurde, preëmptieve scheduler met preëmptieve onderbrekingspunten wachten op volgende OP huidig_proces RT_proces onmiddellijk preëmptieve scheduler met RR onmiddellijk onderbreken huidig_proces RT_proces

10.2. Realtime-scheduling beschikbare informatie voor task: Deadline scheduling beschikbare informatie voor task: tijdstip Ready (vooral bij periodieke taken) begindeadline/einddeadline verwerkingstijd resource requirements priorities (hard RT tasks vs soft RT tasks) subtaskstructuur (verplichte subtask vs facultatieve subtask)

10.2. Realtime-scheduling schedulingstrategieën Stel: A en B 2 sensoren Deadline scheduling: scheduling van periodieke taken met einddeadlines einddeadlines A1 A2 B1 A3 A4 B2/A5 aankomsttijden & verwerkingstijden A1 A2 A3 A4 A5 B1 B1 0 10 20 30 40 50 60 70 80 90 100 scheduling met vaste prioriteit A heeft prioriteit A1 B1 A2 B1 A3 B2 A4 B2 A5 B2 0 10 20 30 40 50 60 70 80 90 100 scheduling met vaste prioriteit B heeft prioriteit B1 A2 A3 B2 A5 schedulingstrategieën 0 10 20 30 40 50 60 70 80 90 100 scheduling met vroegste einddeadline A1 B1 A2 B1 A3 B2 A4 B2 A5 0 10 20 30 40 50 60 70 80 90 100

10.2. Realtime-scheduling schedulingstrategieën Stel: alle jobs duren 20 TE niet periodisch Deadline scheduling: scheduling van periodieke taken met begindeadlines A B C D E aankomsttijden begindeadlines 0 10 20 30 40 50 60 70 80 90 100 110 120 B C E D A vroegste deadline A C E D 0 10 20 30 40 50 60 70 80 90 100 110 120 vroegste deadline met niet opgelegde leeglooptijden B C E D A schedulingstrategieën 0 10 20 30 40 50 60 70 80 90 100 110 120 first-come, first-served A C D 0 10 20 30 40 50 60 70 80 90 100 110 120

10.2. Realtime-scheduling Stel: alle jobs duren 20 TE niet periodisch Frequentie scheduling (rate monotonic scheduling, RMS) prioriteit toekennen op basis van frequentie van task periode = T = tijdsinterval tussen aankomst van twee instanties van taak frequentie = inverse van periode (in seconden, in hertz) verwerkingstijd = C = hoeveelheid tijd nodig om taak te voltooien bezettingsgraad = U = C/T voorbeeld: periode T = 50 msec frequentie = 20 Hz bij RMS: taak met hoogste prioriteit = taak met kortste periode = taak met hoogste frequentie

10.2. Realtime-scheduling n n(21/n-1) 1 1.0 2 0.828 3 0.779 4 0.756 5 Frequentie scheduling (rate monotonic scheduling, RMS) hoog bovengrens bij perfect scheduling alg: C1/T1 + C2/T2 + C3/T3 + … + Cn/Tn ≤ 1 bovengrens bij RMS: C1/T1 + C2/T2 + C3/T3 + … + Cn/Tn ≤ n(21/n-1) prioriteit n 1 2 3 4 5 … oneindig n(21/n-1) 1.0 0.828 0.779 0.756 0.743 … ln 2 = 0.693 laag frequentie voorbeeld: taak P1: C1=20; T1=100 taak P2: C2=40; T2=150 taak P3: C3=100; T3=350 vraag: Zijn P1, P2 en P3 inroosterbaar met RMS?

10.2. Realtime-scheduling prioriteitinversie probleem kan optreden bij preëmptie met prioriteiten Wat is de uiteindelijke problematiek? taak met hogere prioriteit moet wachten op taak met lagere prioriteit (~ oa bij blokkering van resources) T1: periodiek controleren van toestand van SW T2: beeldgegevens verwerken T3: tests uitvoeren ivm toestand apparatuur dalende prioriteit marsverkenner pathfinder T1 en T3 delen gegevensstructuur T1 stelt timer met maximum waarde in  totale reset als timer afloopt … (duurt 1 dag) probleem: na enkele dagen geen data meer doorgestuurd nr aarde

10.2. Realtime-scheduling T1 T2 T3 probleem bij ongebonden prioriteitinversie geblokkeerd door T3 s vergrendeld T1 T2 onderbroken door T1 s vergrendeld s ontgrendeld onderbroken door T2 T3 oplossing: prioriteitsovererving prioriteit wisselt van plaats zodra taak met hoge prio blokkeert vanwege resource geblokkeerd door T3 s vergrendeld T1 T2 onderbroken door T1 s vergrendeld s ontgrendeld T3