Real-Time Programming Languages - Operating Systems
Real-Time Programming Languages - Operating Systems Real-Time Programming Languages - Operating Systems
Example: Operator/Subscriber 01 02 03 04 05 06 07 08 09 01 02 03 04 05 06 07 08 09 10 11 12 13 task body Subscriber is Stuarts_Number : Number; begin --.AD ... An_Op.Directory_Enquiry("STUART JONES", "10 MAIN STREET, YORK", Stuarts_Number); -- phone Stuart --.AD ... end Subscriber; task body Telephone_Operator is begin loop -- prepare to accept next call accept Directory_Enquiry(Person : in Name; Addr : in Address; Num : out Number) do -- look up telephone number and -- assign the value to Num null; --.RM end Directory_Enquiry; -- undertake housekeeping such as logging all calls end loop; end Telephone_Operator; Burns, Wellings Ch. 5.1 Page 80 f. WS 2013/14 Real-Time Systems, Real-Time Prog. Languages / Hermann Härtig 24
In detail task executing Server Client 1 Client 2 accept Request Burns, Wellings Ch. 5.1 Page 82 Server.Request task executing a rendezvous end task suspended accept Request Server.Request data exchange end Time WS 2013/14 Real-Time Systems, Real-Time Prog. Languages / Hermann Härtig 25
- Page 1 and 2: Real-Time Systems Hermann Härtig R
- Page 3 and 4: RT Language Classes Synchronous HLL
- Page 5 and 6: Synchronous Systems → Synchronous
- Page 7 and 8: Esterel at a glance Most statements
- Page 9 and 10: Esterel „Data“: Variables and S
- Page 11 and 12: Signals vs Variables 01 Emit Count(
- Page 13 and 14: Examples (all by Berry): ABRO Speci
- Page 15 and 16: Speed Specification SPEED: Count th
- Page 17 and 18: Few general points Ada has “Annex
- Page 19 and 20: Concurrency Tasks ● ● ● ● a
- Page 21 and 22: Termination of Tasks Every task has
- Page 23: The Rendezvous Based on client/serv
- Page 27 and 28: Select Statement ● ● Arbitrary
- Page 29 and 30: Example: Resource with Locking 01 0
- Page 31 and 32: Tasks ./. Protected Objects 01 02 0
- Page 33 and 34: Fixed Priorities ● task (type) T
- Page 35 and 36: Active Priority Base priority or
- Page 37 and 38: EDF Dispatching How to set deadline
- Page 39 and 40: Mixed Scheduling Policies, example
- Page 41 and 42: Explicit Request Ordering: Requeue
- Page 43 and 44: Timing events 01 02 03 04 05 06 07
- Page 45 and 46: Example: Watchdog 01 02 03 04 05 06
- Page 47 and 48: Time: Delay Statement 01 02 03 04 0
- Page 49 and 50: Delay and Select, client side(1) 01
- Page 51 and 52: Example 01 02 03 04 05 06 07 select
- Page 53 and 54: Example: Operator/Subscriber 01 02
- Page 55 and 56: Example: Operator/Subscriber 01 02
- Page 57 and 58: Recurrent Tasks (1) 01 02 03 04 05
- Page 59 and 60: Recurrent Tasks (3) Periodic tasks
- Page 61 and 62: Example 01 02 03 04 05 06 07 08 09
- Page 63 and 64: Example 01 02 03 04 05 06 07 08 09
- Page 65 and 66: Missing in this RT-HLL lecture ●
Example: Operator/Subscriber<br />
01<br />
02<br />
03<br />
04<br />
05<br />
06<br />
07<br />
08<br />
09<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 />
task body Subscriber is<br />
Stuarts_Number : Number;<br />
begin<br />
--.AD ...<br />
An_Op.Directory_Enquiry("STUART JONES",<br />
"10 MAIN STREET, YORK", Stuarts_Number);<br />
-- phone Stuart<br />
--.AD ...<br />
end Subscriber;<br />
task body Telephone_Operator is<br />
begin<br />
loop<br />
-- prepare to accept next call<br />
accept Directory_Enquiry(Person : in Name;<br />
Addr : in Address; Num : out Number) do<br />
-- look up telephone number and<br />
-- assign the value to Num<br />
null; --.RM<br />
end Directory_Enquiry;<br />
-- undertake housekeeping such as logging all calls<br />
end loop;<br />
end Telephone_Operator;<br />
Burns,<br />
Wellings<br />
Ch. 5.1<br />
Page 80 f.<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 24