Post on 25-Jul-2020
SCHEDULINGDELLACPUMultiprocessorMulticoreReal-Time
SISTEMIOPERATIVI
ClassificazionedeiSistemiMultiprocessoreAccoppiamentolasco- sistemidistribuitiocluster••Uninsiemedisistemiautonomiorelativamenteautonomi:adogniprocessoresonocollegatiunamemoriaprincipaleedeicanalidiI/O
Processoridedicatiperfunzionispecifiche••Unprocessoregeneralpurpose svolgelafunzionedimasterchecontrollaIprocessorispecializzati
Accoppiamentostrettodiuninsiemediprocessori••Uninsiemediprocessicondividel’accessoadunamedesimamemoriaprincipaleesonocontrollatidaununicosistemaoperativo
GiorgioGiacinto2014
2
Grain Size Description Synchronization Interval (Instructions)
Fine Parallelism inherent in a single instruction stream.
<20
Medium Parallel processing or multitasking within a single application
20-200
Coarse Multiprocessing of concurrent processes in a multiprogramming environment
200-2000
Very Coarse Distributed processing across network nodes to form a single computing environment
2000-1M
Independent Multiple unrelated processes not applicable
Granularitàdisincronizzazioneeprocessi
GiorgioGiacinto2014
3
Applicazionieseguiteindipendentementedaciascun
utente
Ilsistemamultiprocessoreèequivalenteaunsistemaconun
soloprocessoremutliprogrammato
Lapresenzadipiùprocessoririduceiltempomediodirisposta
Parallelismo indipendente» Nessunasincronizzazioneesplicitafraiprocessori˃ Ciascunprocessoreesegueunaapplicazioneindipendenti+ Sistemitime-sharing
GiorgioGiacinto2014
4
Parallelismoagranagrossaemoltogrossa» Sincronizzazionefraprocessimaadunlivellogrossolano
» Buonasoluzioneperprocessiconcorrentieseguitisuunsoloprocessoremultiprogrammato˃ Puòessereeseguitosuunsistemamultiprocessoresenzamodifichealsoftware
GiorgioGiacinto2014
5
Parallelismoagranamedia» Applicazionichepossonoessererealizzatecomeuninsiemedithread all’internodiunprocesso˃ Ilprogrammatoredevespecificareesplicitamenteilpotenzialeparallelismodell’applicazione+ Occorreunaltogradodicoordinamentoeinterazionefraithread diunaapplicazione
» Interazionefraithread moltofrequente˃ ledecisionisulloscheduling diunthread hannoconseguenzesulleprestazionidell’interaapplicazione
GiorgioGiacinto2014
6
Parallelismoagranafine» Richiedel’usoditecnichepiùcomplessedigestionedeithreadperrealizzareunmaggiorgradodiparallelismo
» E’unambitomoltospecialistico˃ Sonopossibilinumerosiapprocci
GiorgioGiacinto2014
7
Aspettiprogettuali» L’approcciousatodipenderà˃ dalgradodigranularitàdiparallelismodell’applicazione
˃ dalnumerodiprocessoridisponibili
GiorgioGiacinto2014
8
Loschedulingdeiprocessiinarchitetturemultiprocessoredevetenercontoditreaspetticorrelati
Assegnazionedeiprocessiaiprocessori
Usodellamultiprogrammazionesuisingoliprocessori
Istanteeffettivodi
esecuzonedelprocesso
AssociazionedeiProcessiaiProcessori
» L’assegnazionestaticahalosvantaggiodinonsfruttarecompletamentetuttelerisorsedisponibili˃ Perqualcheintervalloditempounoopiùprocessoripotrebbero
rimanereinattivimentrealtripotrebberoaverelacodapiena+ nonpossibileincasodiutilizzodiun’unicacodadeiprocessipronti+ nonpossibileseperiodicamentesibilanciailcaricofraiprocessori
GiorgioGiacinto2014
9
Sepossiamoconsiderareiprocessoricomeequivalentiallorapossiamousarlicomeuninsiemedirisorsedaassegnareaiprocessisu
richiesta
richiestedeterminateinmodostaticoo
dinamico
Incasodiassociazionepermanentefraprocessoe
processore,aciascunprocessoresaràassociatalapropriacodadeiprocessi
pronti
Lafunzionedischeduling creapoco
sovraccaricoTecnichedischedulingpergruppio“gang”
ArchitetturaMaster/Slave» Lefunzioniprincipalidelkernel sonoeseguitesuun
soloprocessoremaster˃ gestisceloscheduling deiprocessi
» Glialtriprocessorislave invianorichiestediservizialmaster
» E’unoschemasemplice˃ richiedepochemodifichealrispettoaunsistemaoperativoperarchitetturemonoprocessore
» LasoluzionedeiconflittièsemplificataperchéunsoloprocessocontrollalamemoriaeI/O
GiorgioGiacinto2014
10
SVANTAGGI
••seilmasterfallisce,l’interaarchitetturafallisce••ilmasterpuòdiventareuncollodibottigliaperleprestazionidelsistema
Architetturapeer» Ilkernel puòessereeseguitosuunoqualunquedeiprocessori
» Ciascunprocessoreeseguel’algoritmodischeduling edesegueunprocessoprendendolodaun’unicacodadeiprocessipronti
GiorgioGiacinto2014
11
Sistemaoperativopiùcomplesso
••Ilsistemaoperativodevegarantire••cheunprocessononvengaselezionatodapiùprocessori••chenessunprocessovengaperso dallacoda
Singleprocessor
Dualprocessor
SRT
to F
CFS
thro
ughp
ut r
atio
01.00
1.05
1.10
1.15
1.20
1.25
1 2 3 4 5
Coefficient of variation
(a) Comparison of RR and FCFS
Coefficient of variation
(b) Comparison of SRT and FCFS
Figure 10.1 Comparison of Scheduling Performance for One and Two Processors
0 1 2
Singleprocessor
Dualprocessor
0.98
RR
to F
CFS
thro
ughp
ut r
atio
3 4 5
1.00
1.05
1.10
1.15
PrestazioniAlgoritmidiSchedulinginArchitettureMultiprocessore
GiorgioGiacinto2014
12
PrestazioniAlgoritmidiSchedulinginArchitettureMultiprocessore
GiorgioGiacinto2014
13
Singleprocessor
Dualprocessor
SRT
to F
CFS
thro
ughp
ut r
atio
01.00
1.05
1.10
1.15
1.20
1.25
1 2 3 4 5
Coefficient of variation
(a) Comparison of RR and FCFS
Coefficient of variation
(b) Comparison of SRT and FCFS
Figure 10.1 Comparison of Scheduling Performance for One and Two Processors
0 1 2
Singleprocessor
Dualprocessor
0.98
RR
to F
CFS
thro
ughp
ut r
atio
3 4 5
1.00
1.05
1.10
1.15
GiorgioGiacinto2014
14
Thread Scheduling» Finalitàdeithread Inunsistemamonoprocessore˃ aiutaastrutturareunprogramma˃ consentedisovrapporreoperazionidiI/Oconaltreelaborazioni
» Inunsistemamultiprocessoreithreadconsentonodisfruttareilparallelismofradiversefunzionalitàdiunastessaapplicazione˃ Accelerazionedelcalcolorispettoasistemimonoprocessore
GiorgioGiacinto2014
15
LoadSharing GangScheduling
DedicatedProcessorAssignment
DynamicScheduling
Quattroappocciperloschedulingdeithreadel’assegnazionedei
processori
ApproccialloSchedulingdeiThread
GiorgioGiacinto2014
16
Uninsiemediprocessicorrelatisonoaccodatiperl’esecuzionecontemporaneasuuninsiemediprocessoriconrapportouno-a-uno
IProcessinonsonoassegnatiaunprocessoreinparticolare
Schedulingimplicitodefinitodall’assegnazionepermanentediprocessiaiprocessori
Ilnumerodithreadinunaapplicazionepuòesseremodificatoinfasediesecuzione
Bilanciamentodelcarico» Approcciopiùsemplice˃ Basatoprevalentementesugliapproccipersistemimonoprocessore
» Diversiapproccialbilanciamento˃ First-Come-First-Served˃ Smallest Number ofThreads First˃ Preemptive Smallest Number ofThreads FirstGi
orgioGiacinto2014
17
VANTAGGI
••CaricodistributioequalementefraIprocessori••Nessuno schedulingcentralizzato••Gestionedellacodaunicaonunodeglialgoritmidischedulingperambientimonorpocessore
SvantaggiCondivisionedelCarico» L’accessoinmemoriaallacodaunicadeiprocessiè
mutuamenteesclusivo˃ puòcreareuncollodibottiglia
» Ithread prelazionati difficilmenteriprenderannol’esecuzionesulmedesimoprocessore˃ ilcaching puòdiventarepocoefficiente
» Ithread didiversiprocessisonotrattaticomeununicoinsiemedithread˃ èpocoprobabilechetuttiithread diunprogrammapossanoaccedereaiprocessoricontemporaneamente+ icambidiprocessopossonoridurreinmodosignificativoleprestazioniGi
orgioGiacinto2014
18
GangScheduling» Scheduling simultaneodeithread diunostesso
processo
» Utileperapplicazioniconparallelismoagranamediaoagranafine˃ Leprestazionidegradanosealcunithread nonsonoinesecuzione,mentealtresì.
» BeneficiancheperaltretipologiediapplicazioniparalleleGi
orgioGiacinto2014
19
BENEFICI
••Riduzionedeglistatidibloccodovutiasincronizzazione••Numeroinferioredicambidiprocesso,conriduzionedelsovraccaricodelloscheduling
Assegnazionepermanentediprocessoriaithread» Quandol’applicazionevieneeseguita,ciascun
thread èassegnatoaunprocessorededicato˃ l’associazioneèvalidafinoalterminedell’applicazione
» Seunthread èbloccatoinattesadiI/Oodisincronizzazione,ilprocessorerimaneinattivo˃ nonc’èmultiprogrammazionedeiprocessori
» Questastrategiaèefficacequando˃ ilnumerodeiprocessoriècosìelevatochelamassimizzazionedell’utilizzodeiprocessorièdisecondariaimportanza
˃ L’assenzadicambiodiprocessodovrebbetradursiinunaaccelerazionedellasuaesecuzione
GiorgioGiacinto2014
20
SchedulingDinamico» Peralcuneapplicazionièpossibileusarelinguaggiestrumentidiprogrammazionecheconsentonodivariaredinamicamenteilnumerodithread˃ Ilsistemaoperativopuòmodificareilcaricopermigliorareleprestazioni
» Inquesticasiledecisionisulloschedulingdipendonosiadalsistemaoperativo,siadallaapplicazione˃ Ilsistemaoperativosioccupadiallocareilprocessore
GiorgioGiacinto2014
21
GiorgioGiacinto2014
22
Scheduling dithread insistemimulticore» Tecnichedischeduling analoghealletecnichedi
scheduling usateinsistemimultiprocessore˃ Ades.,WindowseLinux
» Obiettivoalgoritmidischeduling multiprocessoremantenereiprocessorisempreoccupati
» Inarchitetturemulticore l’obiettivoèminimizzareaccessoallamemoriaesternaalchip˃ L’approcciobasatosulbilanciamentodelcarico nonconsentedimigliorareleprestazioniinarchitetturemulticore
GiorgioGiacinto2014
23
Figure 10.3 AMD Bulldozer Architecture
Core 0
16 kB L1DCache
16 kB L1DCache
16 kB L1DCache
16 kB L1DCache
2 MBL2 Cache
2 MBL2 Cache
Core 1
2 8B @ 1.86 GT/s
Core 6 Core 7
8 MBL3 Cache
DDR3 MemoryControllers Hypertransport 3.1
8 2B @ 6.4 GT/s
ArchitetturaAMDBulldozer
GiorgioGiacinto2014
24
ArchitetturaIntelCorei7-990X
GiorgioGiacinto2014
25
Figure 1.20 Intel Core i7-990X Block Diagram
Core 0
32 kBL1-I
32 kBL1-D
32 kBL1-I
32 kBL1-D
32 kBL1-I
32 kBL1-D
32 kBL1-I
32 kBL1-D
32 kBL1-I
32 kBL1-D
32 kBL1-I
32 kBL1-D
256 kBL2 Cache
Core 1
256 kBL2 Cache
Core 2
3 8B @ 1.33 GT/s
256 kBL2 Cache
Core 3
256 kBL2 Cache
Core 4
256 kBL2 Cache
Core 5
256 kBL2 Cache
12 MBL3 Cache
DDR3 MemoryControllers
QuickPathInterconnect
4 20b @ 6.4 GT/s
Scheduling insistemimulticoreCacheSharing» Cooperazione - condivisionedirisorse
˃ Piùthread accedonoallestessecelledimemoriacache
» Competizione perlerisorse˃ Seithread sonoinesecuzionesuprocessoriadiacentipossonocompetereperutilizzarecelledimemoriacache+ unthread puòutilizzareunaquantitàmaggioredicacherispettoadaltrithread,eleprestazionideithread chehannomenocacheadisposizionepossonodegradare
˃ Tecnichedischeduling ditipocontention-aware+ ithread sonoassegnatiaicorepermassimizzarel’efficaciadellacachecondivisaeminimizzaregliaccessiallamemoriafuoridalchip
GiorgioGiacinto2014
26
GiorgioGiacinto2014
27
Caratteristicheprincipali» Ilsistemaoperativogiocaunruolofondamentale
˃ Inparticolareloscheduler
» Iprocessidiunsistemareal-timecontrollano orispondono aeventidelmondoesterno˃ glieventiaccadonoinreal-time eiprocessidevonotenereilpassodeglieventicuisonodedicati
» Lacorrettezza diunsistemareal-timeèdefinitacome˃ correttezzadelrisultato delcalcolo˃ istante temporaleincuiilrisultatoèstatoprodotto
GiorgioGiacinto2014
28
••controllodiesperimentidilaboratorio••controllodiprocessoinimpiantiindustriali••robotica••controllodeltrafficoaereo••telecomunicazioni••sistemimilitaridicomandoecontrollo
Esempi
TaskReal-Time
Hard Real-Timetask Soft Real-Timetask
GiorgioGiacinto2014
29
» Taskchedevonorispettareunascadenzanonmodificabile˃ ilmancatorispettodellascadenzacausadannioerroriirreparabili(fatali)
» ITaskhannounascadenzadesideratamanonobbligatoria˃ iltaskpuòesseremandatoinesecuzioneancheselascadenzaètrascorsa
TaskPeriodicieAperiodici» TaskPeriodici˃ irequisitipossonoessereformulaticome
+ eseguitounavoltaogniperiodoT+ eseguitoesattamenteogniTunitàditempo
» TaskAperiodici˃ scadenzaassociataoall’istanteentrocuideveessereavviatooall’istanteentrocuideveterminare+ possonoavereancheunvincolosull’istantediavvioeditermine
GiorgioGiacinto2014
30
CaratteristichedeisistemiReal-Time
Irequisitidiunsistemaoperativoreal-timesonorelativiacinqueaspetti
Determinismo
ProntezzadiRisposta
Controlloutente
Affidabilità
Funzionamentoditipofail-soft
GiorgioGiacinto2014
31
Determinismo» Legatoalritardoconcuiilsistemaoperativorispondeauninterruzione
» Leattivitàsonoeseguiteadistantifissatioentrodeterminatiintervalliditempo
+ nessunsistemapuòesserecompletamentedeterministicoseuncertonumerodiprocessicompeteperl’acquisizionedirisorseedelprocessore
GiorgioGiacinto2014
32
Ilgradodideterminismo di
unsistemaoperativodipendeda
Lavelocitàdirisposta
alleinterruzioni
Ladisponibilità dirisorsecheconsente
disoddisfarelerichiesteentroil
tempoadisposizione
Prontezzadirisposta» Rispostaaeventiesternialsistema˃ aspettocriticopersistemireal-timechedevonorispettareirequisitiesterniditemporizzazionediinterazioneconpersone,periferiche,oflussididati
» Legatoaltempocheintercorrefra˃ ricezionediuninterruzione˃ esecuzionedell’azionerichiestaconl’interruzione
+ tenendocontodieventualiannidamenti
GiorgioGiacinto2014
33
Controllodapartedell’utente
» Moltopiùampioneisistemireal-timecheneisistemioperativitradizionali
» Isistemireal-timedevonoconsentireall’utenteuncontrolloagranafinesulleprioritàdeidiversitask˃ L’utentedeveessereingradodidistinguerefrataskditipohard esoft especificareleprioritàinciascunaclasse
» L’utentepotrebbeessereautorizzatoaspecificare:
GiorgioGiacinto2014
34
paginazioneeswap
iprocessidamanteneresempreinmemoria
glialgoritmiditrasferimentodatidadisco
iprivilegideiprocessinellefascedipriorità
Affidabilità» Moltopiùimportantepersistemireal-timechepersisteminonreal-time
» Isistemireal-timedevonorisponderee/ocontrollareeventiinreal time.Incasodifallimentoleconseguenzepotrebberoesserecatastrofiche
+ perditefinanziarie+ danniimportantiadimpiantiemacchinari+ decessi
GiorgioGiacinto2014
35
MododifunzionamentoFail-Soft» L’abilitàdiunsistemadiguastarsi inmodotaledapreservarelamaggiorpartepossibiledicapacitàdicalcoloedidati
» L’aspettopiùimportanteèlastabilità˃ unsistemareal-timeèstabile
+ seriescearispettaretutte lescadenzedeitaskpiùcriticieapiùaltapriorità
+ anchesenonsempreriescearispettarealcunescadenzerelativeataskmenocritici
GiorgioGiacinto2014
36
GiorgioGiacinto2014
37
Scheduling ditaskreal-time» Moltisistemioperativigestisconotaskreal-timesenzagestiredirettamentelescadenzemausandotecnichepermassimizzarelaprontezzadirisposta˃ nondeveminimizzareitempimedidirisposta˃ nondeveessereequo conivariprocessi
» Esistonodiversiapprocciperlagestioneditaskreal-timeinsistemiincuisieseguonoancheprocessinonreal-time˃ ades.,Windows,Linux,ecc.
GiorgioGiacinto2014
38
Process 1
Request from areal-time process
(a) Round-robin Preemptive Scheduler
Clocktick
Process 2 Process nReal-timeprocess
Scheduling time
Real-time process added torun queue to await its next slice
Current process
Current processblocked or completed
Request from areal-time process
(b) Priority-Driven Nonpreemptive Scheduler
Real-timeprocess
Scheduling time
Preemptionpoint
Real-time process addedto head of run queue
Current process
Request from areal-time process
(c) Priority-Driven Preemptive Scheduler on Preemption Points
Real-timeprocess
Scheduling time
Wait for nextpreemption point
Current process
Request from areal-time process
(d) Immediate Preemptive Scheduler
Figure 10.4 Scheduling of Real-Time Process
Real-timeprocess
Scheduling time
Real-time process preempts currentprocess and executes immediately
Schedulingdiprocessireal-time
GiorgioGiacinto2014
39
Schedulingdiprocessireal-time
GiorgioGiacinto2014
40
Process 1
Request from areal-time process
(a) Round-robin Preemptive Scheduler
Clocktick
Process 2 Process nReal-timeprocess
Scheduling time
Real-time process added torun queue to await its next slice
Current process
Current processblocked or completed
Request from areal-time process
(b) Priority-Driven Nonpreemptive Scheduler
Real-timeprocess
Scheduling time
Preemptionpoint
Real-time process addedto head of run queue
Current process
Request from areal-time process
(c) Priority-Driven Preemptive Scheduler on Preemption Points
Real-timeprocess
Scheduling time
Wait for nextpreemption point
Current process
Request from areal-time process
(d) Immediate Preemptive Scheduler
Figure 10.4 Scheduling of Real-Time Process
Real-timeprocess
Scheduling time
Real-time process preempts currentprocess and executes immediately
Real-TimeScheduling
Gliapproccialloschedulingdifferiscono
secalcolanoonounasequenzadiesecuzione
primadell’effettivoavviodeitask
sel’analisièeffettuata
staticamenteodinamicamente
seilrisultatodell’analisiproduceunpianodischeduling cheviene
effettivamenteeseguito
GiorgioGiacinto2014
41
ClassidiAlgoritmidiSchedulingReal-TimeApproccistaticibasatisutabelle••analisistaticadisequenzediesecuzioneeffettivamenterealizzabili••atempodiesecuzionesideterminaquandountaskdeveiniziarel’esecuzione
Approccistaticiconprelazionebasatisupriorità••siesegueunaanalisistaticamasenzaindividuaredellesequenzediesecuzione••Ilrisultatodell’analisiserveadassegnareprioritàaitask.Siesegueunalgoritmotradizionaledischeduling perprioritàconprelazione
Approccidinamicibasatisullapianificazione••lafattibilitàèdeterminataatempodiesecuzioneenonprimadell’esecuzione••Ilrisultatodell’analisièunasequenzadiesecuzione(piano)cheèusatoperdeciderequandoavviareuntask
Approccidinamicibesteffort••nonvieneeseguitaalcunaanalisidifattibilità••ilsistemacercadirispettaretuttelescadenzeeterminaforzatamente(abort)unprocessoselascadenzanonèrispettataGi
orgioGiacinto2014
42
Tecnicausatadadiversisistemioperativireal-timeincommercio
Deadline Scheduling» Obiettivodiunsistemaoperativoreal-tme˃ Avviareitaskreal-timepiùrapidamentepossibile˃ Enfasisu
+ Gestionerapidadelleinterruzioni+ Avviorapidodell’esecuzionedeitask
» Nelleapplicazionireal-timeoccorreavviare(ocompletare)itasknelmigliore tempopossibile
» L’usodellaprioritàperlagestionediprocessireal-timeèunmodoragionevoledisoddisfareirequisititemporali
GiorgioGiacinto2014
43
InformazioniusateperilDeadline Scheduling
GiorgioGiacinto2014
44
••lerisorserichiestedaltaskdurantel’esecuzione
Resourcerequirements
••parametrorelativoall’importanzadeltaskPriority
••Untaskpotrebbeesseresuddivisoinunsotto-taskobbligatorio(harddeadline)einunsottotask opzionali
Subtaskscheduler
••l’istanteditempoincuiiltaskèprontoperl’esecuzioneReadytime
••l’istanteditempoincuiiltaskdeveiniziare
Startingdeadline
••l’istanteditempoincuiiltaskdeveesserecompletato
Completiondeadline
••l’intervalloditempoentrocuiiltaskdeveessereeseguito
Processingtime
Sipossonorispettarelescadenzeconalgoritmiearliest deadline
Process Arrival Time Execution Time Ending Deadline A(1) 0 10 20 A(2) 20 10 40 A(3) 40 10 60 A(4) 60 10 80 A(5) 80 10 100
• • •
• • •
• • •
• • •
B(1) 0 25 50 B(2) 50 25 100
• • •
• • •
• • •
• • •
ProfilodiesecuzionedidueTaskPeriodici
Esempio:TaskPeriodiciGiorgioGiacinto2014
45
9070402010 30 50 60 80 1000 Time(ms)B1 B2
A1 A2 A3 A4 A5Arrival times, executiontimes, and deadlines
A1deadline
A2deadline
A3deadline
A4deadline
A5deadline
B1deadline
B2deadline
A3 A4 A5A1 B1 A2 B1 B2 B2 B2
A1 A2 A3 A4 A5, B2B1(missed)
A1(missed)
A2 A3 A4(missed)
A5, B2
B1 B2A2 A3 A5
A1 A2 A3 A4 A5, B2B1
A1 B1 A2 B1 A3 B2 A4 B2 A5
Fixed-priority scheduling;A has priority
Fixed-priority scheduling;B has priority
Earliest deadline schedulingusing completion deadlines
Figure 10.5 Scheduling of Periodic Real-time Tasks with Completion Deadlines (based on Table 10.2)
B1
Risultatoscheduling
GiorgioGiacinto2014
46
Process Arrival Time Execution Time Starting Deadline A 10 20 110 B 20 20 20 C 40 20 50 D 50 20 90 E 60 20 70
ProfilodiesecuzionedicinquetaskAperiodici
Esempio:TaskAperiodiciGiorgioGiacinto2014
47
9070402010 30 50 60 80 100 1100 120
B C E D A
B (missed) C E D A
B C E D A
C D A
A B C D E
A B C D E
A B C D E
A B C D E
A C E D
B C E D A
A C D
B (missed) E (missed)
Requirements
Arrival times
Starting deadline
Earliestdeadline
Arrival times
Starting deadline
Service
Earliestdeadline
with unforcedidle times
Arrival times
Starting deadline
Service
First-comefirst-served
(FCFS)
Arrival times
Starting deadline
Service
Figure 10.6 Scheduling of Aperiodic Real-time Tasks with Starting Deadlines
Risultatoscheduling
GiorgioGiacinto2014
48
Prio
rity
High
LowRate (Hz)
Highest rate andhighest priority task
Lowest rate andlowest priority task
Figure 10.7 A Task Set with RMS
RateMonotonic SchedulingGiorgioGiacinto2014
49Processing ProcessingIdleP
task P execution time C
task P period T
Cycle 1 Cycle 2
Figure 10.8 Periodic Task Timing Diagram
Time
InversionediPriorità» Sipuòverificareconalgoritmiconprelazione˃ untaskadaltaprioritàattendeilcompletamentodiuntaskapiùbassaprioritàchepossiederisorse
» E’unaspettocriticonelcontestodeglialgoritmidischeduling real-time
» L’esempiopiùfamosoèrelativoallamissionespazialeMarsPathfinder
GiorgioGiacinto2014
50
Inversionediprioritàillimitata
••Laduratadell’inversionediprioritànondipendesolodaltemporichiestopergestirelarisorsacondivisamaanchedaattivitàdialtritaskscorrelati nonprevedibili
Inversione diPrioritàGiorgioGiacinto2014
51
Figure 10.9 Priority Inversion
T1
T2
T3
s locked
(a) Unbounded priority inversion
preemptedby T1
preemptedby T2
s unlocked
time
normal execution execution in critical section
s lockedblocked by T3
(attempt to lock s)
t1 t2 t3 t4 t5 t6 t7 t8
T1
T2
T3
s lockedby T3
(b) Use of priority inheritance
preemptedby T1
s unlocked
s unlocked
s lockedby T1
blocked by T3(attempt to lock s)
t1 t2 t3 t4 t5 t6 t7
Ereditarietà della Priorità
GiorgioGiacinto2014
52
Figure 10.9 Priority Inversion
T1
T2
T3
s locked
(a) Unbounded priority inversion
preemptedby T1
preemptedby T2
s unlocked
time
normal execution execution in critical section
s lockedblocked by T3
(attempt to lock s)
t1 t2 t3 t4 t5 t6 t7 t8
T1
T2
T3
s lockedby T3
(b) Use of priority inheritance
preemptedby T1
s unlocked
s unlocked
s lockedby T1
blocked by T3(attempt to lock s)
t1 t2 t3 t4 t5 t6 t7