11
1 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh Chris Greenhalgh School of Computer School of Computer Science Science

11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science

Embed Size (px)

Citation preview

Page 1: 11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science

11

G53SRP: Deadline misses and cost over-runs in RTSJ

Chris GreenhalghChris Greenhalgh

School of Computer ScienceSchool of Computer Science

Page 2: 11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science

22

Contents• Handling missed deadlinesHandling missed deadlines

– In Periodic RealtimeThreadsIn Periodic RealtimeThreads– In other casesIn other cases

• Handling cost over-runsHandling cost over-runs– In periodic RealtimeThredsIn periodic RealtimeThreds

• SummarySummary

• Book: Wellings 10.4.1, 11.3, 12.1.1, 12.4Book: Wellings 10.4.1, 11.3, 12.1.1, 12.4

Page 3: 11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science

3

Handling missed deadlinesHandling missed deadlines• Every Every SchedulableSchedulable has a deadline has a deadline

– Part of Part of ReleaseParametersReleaseParameters– Measured from its release timeMeasured from its release time

• Every Every SchedulableSchedulable may also have a deadline may also have a deadline miss handlermiss handler– An An AsyncEventHandlerAsyncEventHandler

• With With SchedulerParametersSchedulerParameters, etc., etc.

– Also specified in Also specified in ReleaseParametersReleaseParameters

• Deadline miss handler (if specified) is released as Deadline miss handler (if specified) is released as soon as the deadline is missedsoon as the deadline is missed

See HelloDeadlineMissHandler.java

Page 4: 11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science

4

In Periodic RealtimeThreadsIn Periodic RealtimeThreads• (With deadline miss handler)

• In waitForNextPeriod– No deadline miss:

• returns after next release

– After deadline miss: •RealtimeThread is de-scheduled unless schedulePeriodic() has been called since deadline miss

• Most likely by deadline miss handler!

See HelloSchedulePeriodic.java

Page 5: 11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science

5

De/schedulePeriodic• RealtimeThread:

– deschedulePeriodic() deschedules future releases •waitForNextPeriod() will block

– schedulePeriodic() schedules thread at next release

– Any releases occurring between deschedulePeriodic and schedulePeriodic are lost

• e.g. after deadline miss but before re-schedule

Page 6: 11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science

6

In other casesIn other cases• RTSJ 1.0.1/2 does not adequately specify

deadline miss (and cost overrun) behaviour for– Aperiodic and sporadic RealtimeThreads

• Not supported at all

– AsyncEventHandlers• No clean API, e.g. to deschedule/reschedule

AsyncEventHandlers

• May be added in 1.1 – but doesn’t seem to be at present

Page 7: 11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science

AsyncEventHandlers in 1.0.2• Deadline handler released as soon as deadline Deadline handler released as soon as deadline

missedmissed– independently for each firingindependently for each firing

• By default the handler continues to executeBy default the handler continues to execute– Pending executions can be manipulated via etc.Pending executions can be manipulated via etc. AsyncEventHandler getPendingFireCount AsyncEventHandler getPendingFireCount

• Note: they are protected, i.e. from within handler onlyNote: they are protected, i.e. from within handler only

– Future releases can be manipulated via Future releases can be manipulated via AsyncEvent AsyncEvent addadd//removeHandlerremoveHandler

7See DeadlineMissAsyncEventHandler.java

Page 8: 11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science

Aperiodic and Sporadic threads in RTSJ 1.1

• Adds new methods to Adds new methods to RealtimeThreadRealtimeThread comparable to comparable to those for periodic processes:those for periodic processes:– waitForNextRelease() waitForNextRelease() cf. cf. waitForNextPeriod()waitForNextPeriod()

• Block until next release of aperiodic threadBlock until next release of aperiodic thread

– waitForNextReleaseInterruptible()waitForNextReleaseInterruptible() cf. cf. waitForNextPeriodInterruptible()waitForNextPeriodInterruptible()

• Ditto, but open to interruptionDitto, but open to interruption

– schedule() schedule() cf. cf. schedulePeriodic()schedulePeriodic()• (re)Schedule, e.g. after deadline miss(re)Schedule, e.g. after deadline miss

– deschedule() deschedule() cf. cf. deschedulePeriodic()deschedulePeriodic()• Do not scheduleDo not schedule

– release() release() –release the thread, cf. –release the thread, cf. AsyncEvent fire()AsyncEvent fire()• start() start() is the first release!is the first release!

8

Page 9: 11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science

9

Handling cost overrunsHandling cost overruns• Every Every SchedulableSchedulable has a CPU cost (time) has a CPU cost (time)

– Part of Part of ReleaseParametersReleaseParameters– Actual time (units) on CPUActual time (units) on CPU

• Every Every SchedulableSchedulable may also have a cost may also have a cost overrun handleroverrun handler– An An AsyncEventHandlerAsyncEventHandler

• With With SchedulerParametersSchedulerParameters, etc., etc.

– Also specified in Also specified in ReleaseParametersReleaseParameters

• Note: not all implementations support cost Note: not all implementations support cost monitoring, in fact most don’t at presentmonitoring, in fact most don’t at present– depends on OS supportdepends on OS support

Page 10: 11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science

10

Cost overruns• On cost over-run:

– Over-running Schedulable is immediately descheduled

– Cost overrun handler (if any) is released

• Schedulable is re-scheduled if– Its cost is increased– Its CPU budget is increased

• i.e. next release of a periodic RealtimeThread• Presumably in RTSJ 1.1 release of other cases also

– under-specified in RTSJ1.0.1

See HelloCostOverrunHandler.java

Page 11: 11 G53SRP: Deadline misses and cost over-runs in RTSJ Chris Greenhalgh School of Computer Science

11

SummarySummary• Missed deadlines & cost over-runMissed deadlines & cost over-run

– Specified by ReleaseParameters deadlineSpecified by ReleaseParameters deadline– Results in call to deadline miss or cost overrun Results in call to deadline miss or cost overrun

handlerhandler– In Periodic RealtimeThreads In Periodic RealtimeThreads

• Deadline miss requires schedulePeriodic to resume Deadline miss requires schedulePeriodic to resume threadthread

• Cost overrun requires new release or increase of costCost overrun requires new release or increase of cost

– Under-defined in other cases in RTSJ 1.0.2Under-defined in other cases in RTSJ 1.0.2• Defined for aperiodic/sporadic threads in RTSJ 1.1Defined for aperiodic/sporadic threads in RTSJ 1.1