Real-Time Programming Languages - Operating Systems

Real-Time Programming Languages - Operating Systems Real-Time Programming Languages - Operating Systems

os.inf.tu.dresden.de
from os.inf.tu.dresden.de More from this publisher
28.02.2014 Views

Example 01 02 03 04 05 06 07 08 09 10 11 12 13 14 protected body AirportGate is entry EnterGateBusiness(Ticket) begin if Ticket.Economy then requeue EnterGateEconomy; end if; HandleBusinessPassenger end EnterGateBusiness; entry EnterGateEconomy(Ticket) when AllBusinessPassengersHaveEntered begin HandleEcenomyPassenger end EnterGateEconomy end AirportGate; WS 2013/14 Real-Time Systems, Real-Time Prog. Languages / Hermann Härtig 42

Timing events 01 02 03 04 05 06 07 08 Package Ada.Real_time.Timing_events is --... Procedure Set_Handler(Event: in out Timing_Event; At-Time: Time; Handler: Timing_Event_Handler); --... Procedure Set_Handler(Event: in out Timing_Event; At-Time: Time_Span; Handler: Timing_Event_Handler); Burns, Wellings Ch. 15.2 Page 363 Causes Handler to be called at chosen times. Handlers are called by Clock_Interrupt Handler Must not block. Used for periodic action and watchdogs WS 2013/14 Real-Time Systems, Real-Time Prog. Languages / Hermann Härtig 43

Example<br />

01<br />

02<br />

03<br />

04<br />

05<br />

06<br />

07<br />

08<br />

09<br />

10<br />

11<br />

12<br />

13<br />

14<br />

protected body AirportGate is<br />

entry EnterGateBusiness(Ticket)<br />

begin<br />

if Ticket.Economy then<br />

requeue EnterGateEconomy;<br />

end if;<br />

HandleBusinessPassenger<br />

end EnterGateBusiness;<br />

entry EnterGateEconomy(Ticket)<br />

when AllBusinessPassengersHaveEntered<br />

begin HandleEcenomyPassenger end EnterGateEconomy<br />

end AirportGate;<br />

WS 2013/14 <strong>Real</strong>-<strong>Time</strong> <strong>Systems</strong>, <strong>Real</strong>-<strong>Time</strong> Prog. <strong>Languages</strong> / Hermann Härtig 42

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!