De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Hoofdstuk 10: Scheduling bij multiprocessing en realtime.

Verwante presentaties


Presentatie over: "Hoofdstuk 10: Scheduling bij multiprocessing en realtime."— Transcript van de presentatie:

1 Hoofdstuk 10: Scheduling bij multiprocessing en realtime

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

3 10.1. Scheduling bij meerdere processoren granulariteit bij multiprocessing 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 ~granulariteit van synchronisatie aanpassingen scheduling algoritme noodzakelijk

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

5 10.1. Scheduling bij meerdere processoren 1. toewijzen van processen aan processoren master/slavepeer oriented - master beheert kernelfuncties - master is verantwoordelijk voor scheduling -kritische fout bij master legt systeem plat -master kan bottleneck worden - elke processor is gelijkwaardig - elke processor voert sched. uit voor bep. proc. - 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, … ???

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

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

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

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

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

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

12 10.1. Scheduling bij meerdere processoren vaste processortoewijzing (extreme vorm van groepsscheduling) PR_2PR_3PR_4PR_1 P Setting: 16 processoren

13 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) 1.geef 1 processor aan alle processen in queue 2.Geef rest van processor op basis van FCFS

14 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’

15 10.2. Realtime-scheduling Kenmerken van realtime besturingssysteem deterministic responsiveness ~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 ~tijd die nodig is om interrupt af te handelen 1.tijd om interrupt af te handelen 2.tijd om interrupt service routine (ISR) uit te voeren 3.invloed van nesten van interrupts interrupt bevestiging interrupt afhandeling interrupt afhandeling interrupt service routine

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

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

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

19 10.2. Realtime-scheduling Deadline scheduling: scheduling van periodieke taken met einddeadlines A1A2A3A4A5 B1 A1 A2 B1 A3 A4 B2/A5 einddeadlines A1A2A3A4A5 B1 B2 A2 A3A5 B2 B1 A1A2A3A4A5 B1B2 B1 aankomsttijden & verwerkingstijden scheduling met vaste prioriteit A heeft prioriteit scheduling met vaste prioriteit B heeft prioriteit scheduling met vroegste einddeadline schedulingstrategieën Stel: A en B 2 sensoren

20 10.2. Realtime-scheduling Deadline scheduling: scheduling van periodieke taken met begindeadlines A B C D E aankomsttijden A begindeadlines vroegste deadline vroegste deadline met niet opgelegde leeglooptijden first-come, first-served schedulingstrategieën Stel: -alle jobs duren 20 TE -niet periodisch B C E D A CED BCEDA CDA

21 10.2. Realtime-scheduling Frequentie scheduling (rate monotonic scheduling, RMS) Stel: -alle jobs duren 20 TE -niet periodisch 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

22 10.2. Realtime-scheduling Frequentie scheduling (rate monotonic scheduling, RMS) hoog laag frequentie prioriteit 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(2 1/n -1) n … oneindig n(2 1/n -1) … ln 2 = 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?

23 10.2. Realtime-scheduling prioriteitinversie marsverkenner pathfinder probleem kan optreden bij preëmptie met prioriteiten probleem: na enkele dagen geen data meer doorgestuurd nr aarde 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 -T1 en T3 delen gegevensstructuur -T1 stelt timer met maximum waarde in  totale reset als timer afloopt … (duurt 1 dag)

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


Download ppt "Hoofdstuk 10: Scheduling bij multiprocessing en realtime."

Verwante presentaties


Ads door Google