Real-Time Programming Languages - Operating Systems
Real-Time Programming Languages - Operating Systems Real-Time Programming Languages - Operating Systems
BUT: Implementation For example, assume we want to trigger a reaction with two inputs A and B present. We execute the following [compiler generated] C code: M_I_A(); M_I_B(); M(); If X is emitted by the reaction, the function M() will call an output function M O X() we have to supply. The reaction is subject to an essential atomicity condition: during the execution of the main reaction function M(), it is forbidden to call any input function. This is the software counterpart to the hardware requirement that input voltages must be kept stable during a clock cycle. Gerard Berry WS 2013/14 Real-Time Systems, Real-Time Prog. Languages / Hermann Härtig 6
Esterel at a glance Most statements are instantaneous (starts and terminates at the same instant of time) Stepwise execution, everything completes in each step/cycle/tick Time consumption explicit (e.g., „Pause“) WS 2013/14 Real-Time Systems, Real-Time Prog. Languages / Hermann Härtig 7
- Page 1 and 2: Real-Time Systems Hermann Härtig R
- Page 3 and 4: RT Language Classes Synchronous HLL
- Page 5: Synchronous Systems → Synchronous
- 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 and 24: The Rendezvous Based on client/serv
- Page 25 and 26: In detail task executing Server Cli
- 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
BUT: Implementation<br />
For example, assume we want to trigger a reaction with two<br />
inputs A and B present.<br />
We execute the following [compiler generated] C code:<br />
M_I_A();<br />
M_I_B();<br />
M();<br />
If X is emitted by the reaction, the function M() will call an output<br />
function M O X() we have to supply. The reaction is subject to an<br />
essential atomicity condition: during the execution of the main<br />
reaction function M(), it is forbidden to call any input function. This is<br />
the software counterpart to the hardware requirement that input<br />
voltages must be kept stable during a clock cycle.<br />
Gerard<br />
Berry<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 6