Predictable multithreading of embedded applications using PRET-C
|
|
- Gertrude Manning
- 6 years ago
- Views:
Transcription
1 Predictable multithreading of embedded applications using PRET-C Sidharta Andalam University of Auckland New Zealand Interactive Presentation March 2010 Andalam (UoA) PRET DATE'10 1 / 20
2 Layout 1 Introduction Problems and motivations 2 The Auckland Approach PRET-C based predictable programming Mapping Logical time to Physical Time Results 3 Conclusions and Roadmap Andalam (UoA) PRET DATE'10 2 / 20
3 Real-Time System Design Current design approaches of Time Critical Systems Rely on the well known theory of real-time scheduling. A set of tasks with timing parameters, which execute on RTOS. WCET derived through static analysis. Major issue with WCET analysis: modern processors render WCET virtually unknowable; even simple problems demand heroic eorts [Edwards and Lee, DAC 2007]. Andalam (UoA) PRET DATE'10 3 / 20
4 Why not the theory of real-time systems? Do we have to really rethink timing from scratch? [E. A. Lee, Computing needs time, CACM, May 2009]. Designers try to guarantee worst case timing using the well-known scheduling theory. Implemented on top of speculative architectures and imprecise preemption mechanism called interrupts. A real-time operating system or RTOS is a patched solution that provides RT scheduling on top of a speculative processor. This solution is both non-deterministic and not fail-safe: priority inversion problem has been a nagging issue, for example. Andalam (UoA) PRET DATE'10 4 / 20
5 Our Philosophy Notion of concurrency: concurrency is logical but execution is sequential very similar to synchronous languages [Benveniste'03]. Notion of time: time is logical and the mapping of logical to physical time is done using static analysis of code. Design approach: Auckland Reactive PRET (ARPRET) architectures are designed by simple customisation of soft-core processors. Andalam (UoA) PRET DATE'10 5 / 20
6 Overview of the solution Stages 1 PRET-C: simple synchronous extension to C (using macros). Code void main() { while(1) { abort PAR(sampler,display); when pre (reset); Andalam (UoA) PRET DATE'10 6 / 20
7 Overview of the solution Stages 1 PRET-C: simple synchronous extension to C (using macros). 2 TCCFG : intermediate format. Code void main() { while(1) { abort i=0 out=0.0 sample=0.0 (6) (6) i=0 PAR(sampler,display); sample= (6) readsensor() when pre (reset); TCCFG (16) (0) (15) (2) cnt==0 (16+5) (5) Jump out= buffer[i] (6) Andalam (UoA) PRET DATE'10 6 / 20
8 Overview of the solution Stages 1 PRET-C: simple synchronous extension to C (using macros). 2 TCCFG : intermediate format. 3 TFSM : FSM denoted with execution costs. Code void main() { while(1) { abort TCCFG TFSM (0) (15) i=0 out=0.0 sample=0.0 (6) (6) i=0 PAR(sampler,display); 7 EOT0 (2) EOT1 19 sample= (6) cnt==0 readsensor() when pre (reset); 14 EOT2 (16) (16+5) (5) Jump EOT3 out= 13 buffer[i] (6) EOT4 Andalam (UoA) PRET DATE'10 6 / 20
9 Overview of the solution Stages 1 PRET-C: simple synchronous extension to C (using macros). 2 TCCFG : intermediate format. 3 TFSM : FSM denoted with execution costs. 4 Model Checking : calculates the WCRT based on a set of TFSMs and Code a safety property. void main() { while(1) { abort TCCFG TFSM Model Checker (UPPAAL) (0) (15) EOT0 i=0 out=0.0 EOT1 sample=0.0 (6) (6) i=0 PAR(sampler,display); 7! gtick x=x 31 (2) EOT1 19 lt1=true sample=! gtick (6) cnt==0! gtick readsensor() b12 x=x 32 when pre (reset); x=x lt1=true lt1=true EOT2 gtick gtick (16) (16+5) 15 lt1= false lt1= false 32 b22 20 EOT2 b31 b13 (5) Jump EOT3! gtick! gtick x=x 37 x=x 36 gtick lt1=true lt1=true out= 13 buffer[i] lt1= false (6) b23 gtick EOT4 gtick lt1= false lt1= false Andalam (UoA) PRET DATE'10 6 / 20
10 Overview of the solution Stages 1 PRET-C: simple synchronous extension to C (using macros). 2 TCCFG : intermediate format. 3 TFSM : FSM denoted with execution costs. 4 Model Checking : calculates the WCRT based on a set of TFSMs and Code a safety property. void main() { while(1) { abort TCCFG TFSM Model Checker (UPPAAL) (0) (15) EOT0 i=0 out=0.0 EOT1 sample=0.0 (6) (6) i=0 PAR(sampler,display); 7! gtick x=x 31 (2) EOT1 19 lt1=true sample=! gtick (6) cnt==0! gtick readsensor() b12 x=x 32 when pre (reset); x=x lt1=true lt1=true EOT2 (16) (16+5) 15 Final Output gtick gtick lt1= false lt1= false 32 b22 20 EOT2 b31 b13 (5) Jump EOT3 WCRT analysis! gtick of the! gtick x=x 37 x=x 36 gtick lt1=true lt1=true out= 13 buffer[i] lt1= false (6) b23 gtick Reactive function. EOT4 gtick lt1= false lt1= false Andalam (UoA) PRET DATE'10 6 / 20
11 Motivation for PRET-C Precision Timed C (PRET-C) Simple set of synchronous extensions to C for: light-weight multithreading in C. all extensions implemented as C macros. provides thread-safe shared memory access. supports predictable programming by mapping logical time to physical time through static analysis. Andalam (UoA) PRET DATE'10 7 / 20
12 Synchronous extensions to C Statement ReactiveInput I ReactiveOutput O Meaning declares I as a reactive input coming from the environment declares O as a reactive output emitted to the environment PAR(T1,...,Tn) synchronously executes in parallel the n threads Ti, with higher priority of Ti over EOT [weak] abort P when pre C Ti+1 marks the end of a tick (local or global depending on its position) immediately kills P when C is true in the previous instant Table: PRET-C extensions to C. Andalam (UoA) PRET DATE'10 8 / 20
13 Example: Producer Consumer Initialization #include <pretc.h> #define N 1000 ReactiveInput (int, reset, 0); ReactiveInput (float, sensor, 0.0); ReactiveOutput(float, out, 0.0); int cnt=0; float buffer[n]; Andalam (UoA) PRET DATE'10 9 / 20
14 Example: Producer Consumer main void main() { while(1) { abort flush(buffer); PAR(sampler,display); when pre (reset); cnt=0; Monitors reset signal for preemption. Andalam (UoA) PRET DATE'10 10 / 20
15 Example: Producer Consumer main void main() { while(1) { abort flush(buffer); PAR(sampler,display); when pre (reset); cnt=0; Clears the buer and then spawns the sampler and the display threads. Andalam (UoA) PRET DATE'10 10 / 20
16 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick0: i=0 i=0 cnt =0 sample=0.0 out=0.0 buer={0.0, 0.0, 0.0 Andalam (UoA) PRET DATE'10 11 / 20
17 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick0: i=0 i=0 cnt =0 sample=1.0 out=0.0 buer={0.0, 0.0, 0.0 Andalam (UoA) PRET DATE'10 11 / 20
18 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick0: i=0 i=0 cnt =0 sample=1.0 out=0.0 buer={0.0, 0.0, 0.0 Andalam (UoA) PRET DATE'10 11 / 20
19 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick 1: i=0 i=0 cnt =0 sample=1.0 out=0.0 buer={1.0, 0.0, 0.0 Andalam (UoA) PRET DATE'10 11 / 20
20 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick 1: i=0 i=0 cnt =0 sample=1.0 out=0.0 buer={1.0, 0.0, 0.0 Andalam (UoA) PRET DATE'10 11 / 20
21 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick 2: i=1 i=0 cnt =1 sample=2.0 out=0.0 buer={1.0, 0.0, 0.0 Andalam (UoA) PRET DATE'10 11 / 20
22 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick 2: i=1 i=0 cnt =1 sample=2.0 out=1.0 buer={1.0, 0.0, 0.0 Andalam (UoA) PRET DATE'10 11 / 20
23 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick 3: i=1 i=0 cnt =1 sample=2.0 out=1.0 buer={1.0, 2.0, 0.0 Andalam (UoA) PRET DATE'10 11 / 20
24 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick 3: i=1 i=1 cnt =0 sample=2.0 out=1.0 buer={1.0, 2.0, 0.0 Andalam (UoA) PRET DATE'10 11 / 20
25 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick 4: i=2 i=1 cnt =1 sample=3.0 out=1.0 buer={1.0, 2.0, 0.0 Andalam (UoA) PRET DATE'10 11 / 20
26 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick 4: i=2 i=1 cnt =1 sample=3.0 out=1.0 buer={1.0, 2.0, 0.0 Andalam (UoA) PRET DATE'10 11 / 20
27 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick 5: i=2 i=1 cnt =1 sample=3.0 out=1.0 buer={1.0, 2.0, 3.0 Andalam (UoA) PRET DATE'10 11 / 20
28 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick 5: i=2 i=1 cnt =1 sample=3.0 out=2.0 buer={1.0, 2.0, 3.0 Andalam (UoA) PRET DATE'10 11 / 20
29 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick 6: i=3 i=1 cnt =2 sample=4.0 out=2.0 buer={1.0, 2.0, 3.0 Andalam (UoA) PRET DATE'10 11 / 20
30 Example: Producer Consumer void sampler() { int i = 0; float sample; sample = read(sensor); while (cnt==n) buffer[i] = sample; i = (i + 1)% N cnt = cnt + 1; void display(){ int i = 0; float out; while (cnt==0) out = buffer[i] i = (i + 1)% N; cnt = cnt - 1; WriteLCD(out); Tick 6: i=3 i=2 cnt =1 sample=4.0 out=2.0 buer={1.0, 2.0, 3.0 Andalam (UoA) PRET DATE'10 11 / 20
31 Design Flow: PRET-C to WCRT Stages Overview 1 PRET-C to Assembly: standard gcc based compilers can be used. 2 Assembly to TCCFG : our code analyser. 3 TCCFG to Model Checker : our FSM generator (XML). 4 CTL temporal logic property checking: bounded integer checking. mb-gcc TCCFG gen FSM gen PRET-C Assembly (Microblaze) TCCFG Execution (Microblaze) Architecture Specifications Model for Model Checker (UPPAAL) Verifying CTL properties WCRT value Andalam (UoA) PRET DATE'10 12 / 20
32 Hardware support ARPRET FSL connecion Microblaze Predictable Functional Unit (PFU) (Hardware Support) FSL connecion ARPRET platform Hardware extension (PFU) to the Microblaze (GPP) in order to achieve better throughput while simplifying WCRT analysis. Fast Simplex Link (FSL) provides a predictable communication. Andalam (UoA) PRET DATE'10 13 / 20
33 Hardware support Predictable Functional Unit (PFU) PC (32bits) TDA (1bits) TSP (1bits) TLT(1bit) N PID (log 2 (N)bits) ALC (log 2 (M)bits) SC (32bits) Thread Table Scheduler WCRT Timer Valid (1bit) TID (log 2 (N)bits) PVI (log 2 (X)bits) M WS(1bit) PA (32bits) AL (log 2 (M)bits) PV (X bits) Abort Table Control and data Control and data from MB to MB Controller Logic Thread Table stores: priority, local tick. alive, suspension. spawn count. parent ID. Abort Table stores: type of preemption (Weak/Strong) nesting of preemptions. monitoring signal. preemption address. Andalam (UoA) PRET DATE'10 14 / 20
34 Benchmarking PRET-C execution: Hardware support (ARPRET). We have also developed a software model ( CEC-like linked-list based scheduler). Andalam (UoA) PRET DATE'10 15 / 20
35 Benchmarking PRET-C execution: Hardware support (ARPRET). We have also developed a software model ( CEC-like linked-list based scheduler). We have compared with other light-weight C extensions such as: SyncCharts in C. Protothreads. Esterel. Andalam (UoA) PRET DATE'10 15 / 20
36 Benchmarking Hardware vs Software Average Case Execution Time Worst Case Execution Time Hardware Software Hardware Software Clock cycles Clock cycles ABRO Channel Protocol Reactor Control Producer Consumer Smokers Robot Sonar 0 ABRO Channel Protocol Reactor Control Producer Consumer Smokers Robot Sonar On average, the throughput on the hardware is greater than the software implementation. About 28% better for ACET. About 26% better for WCET. Andalam (UoA) PRET DATE'10 16 / 20
37 Quantitative Comparison Throughput 800 Average Case Execution Time 1200 Worst Case Execution Time Software ProtoThreads Esterel SyncCharts Software ProtoThreads Esterel SyncCharts Clock cycles Clock cycles ABRO Channel Protocol Reactor Control Producer Consumer Smokers Robot Sonar 0 ABRO Channel Protocol Reactor Control Producer Consumer Smokers Robot Sonar PRET-C yields signicantly more (20% to 75%) ecient code compared to all others in both the average and worst case. Andalam (UoA) PRET DATE'10 17 / 20
38 Quantitative Comparison Memory Memory usage Software ProtoThreads Esterel SyncCharts Bytes ABRO Channel Protocol Reactor Control Producer Consumer Smokers Robot Sonar Memory usage of PRET-C is better than (2.5%)Prothreads and (26%) Esterel, while slightly worse (3.7%) than SC. Andalam (UoA) PRET DATE'10 18 / 20
39 Benchmarking Execution Time Example WCRT WCRT Over approximation (Model Checker) (Actual Execution) (%) ABRO Channel Protocol Reactor Control Producer-Consumer Smokers Robot Sonar Average 4.08 On an average, value obtained from UPPAAL over approximates the actual value by about 4%. Andalam (UoA) PRET DATE'10 19 / 20
40 Conclusions and Roadmap Contributions New synchronous language for predictable programming. Thread-safe shared memory access via simple semantics. Predictable preemption support. Hardware accelerator to improve the worst case behaviour. Mapping of logical time to physical time through static analysis. PRET-C excels both in the worst case and average case execution over other light-weight threading libraries. Future work To explore the trade-os of scratchpads versus caches. Support for parallel execution of PRET-C via new semantics. Andalam (UoA) PRET DATE'10 20 / 20
Precision Timed Computing in the Synchronous Setting
Precision Timed Computing in the Synchronous Setting Partha S Roop Synchron 2010 29 November - 4 December 2010 Roop (University of Auckland) PRET 1 / 61 Acknowledgements The following people actively contributed
More informationPRET-C: A New Language for Programming Precision Timed Architectures (extended abstract)
PRET-C: A New Language for Programming Precision Timed Architectures (extended abstract) Sidharta Andalam 1, Partha S Roop 1, Alain Girault 2, and Claus Traulsen 3 1 University of Auckland, New Zealand
More informationPredictable multithreading of embedded applications using PRET-C
Author manuscript, published in "International Conference on Formal Methods and Models for Codesign, MEMOCODE'1 (21) 159-168" DOI : 1.119/MEMCOD.21.5558636 Predictable multithreading of embedded applications
More informationWorst Case Reaction Time (WCRT) analysis techniques for synchronous program
Worst Case Reaction Time (WCRT) analysis techniques for synchronous program Matthias Kremer University of Kaiserslautern, Embedded Systems Group m kremer3@cs.uni-kl.de Abstract In order to synchronize
More informationPruning Infeasible Paths for Tight WCRT Analysis of Synchronous Programs
Pruning Infeasible Paths for Tight WCRT Analysis of Synchronous Programs Sidharta Andalam, Partha Roop, Alain Girault To cite this version: Sidharta Andalam, Partha Roop, Alain Girault. Pruning Infeasible
More informationSynchronous Dataflow Processong
Synchronous Dataflow Processong Claus Traulsen and Reinhard von Hanxleden Christian-Albrechts Universität zu Kiel Echtzeitsysteme / Eingebettete Systeme March 00 CAU Claus Traulsen / 8 Outline Motivation
More informationPRET-C: A new language for programming precision timed architectures
PRET-C: A new language for programming precision timed architectures Sidharta Andalam, Partha Roop, Alain Girault, Claus Traulsen To cite this version: Sidharta Andalam, Partha Roop, Alain Girault, Claus
More informationProgramming Languages for Real-Time Systems. LS 12, TU Dortmund
Programming Languages for Real-Time Systems Prof. Dr. Jian-Jia Chen LS 12, TU Dortmund 20 June 2016 Prof. Dr. Jian-Jia Chen (LS 12, TU Dortmund) 1 / 41 References Slides are based on Prof. Wang Yi, Prof.
More informationSynchronous Statecharts. Christian Motika
Execution (KlePto) Esterel to transformation (KIES) Synchronous Statecharts for executing Esterel with Ptolemy Christian Motika Real-Time Systems and Embedded Systems Group Department of Computer Science
More informationReinhard v. Hanxleden 1, Michael Mendler 2, J. Aguado 2, Björn Duderstadt 1, Insa Fuhrmann 1, Christian Motika 1, Stephen Mercer 3 and Owen Brian 3
Sequentially Constructive Concurrency * A conservative extension of the Synchronous Model of Computation Reinhard v. Hanxleden, Michael Mendler 2, J. Aguado 2, Björn Duderstadt, Insa Fuhrmann, Christian
More informationZZ Building Timing Predictable Embedded Systems
ZZ Building Timing Predictable Embedded Systems HEIKO FALK, ALAIN GIRAULT, DANIEL GRUND, NAN GUAN, BENGT JONSSON, PETER MARWEDEL, JAN REINEKE, CHRISTINE ROCHANGE, REINHARD VON HANXLEDEN, REINHARD WILHELM,
More informationReal Time & Embedded Systems. Final Exam - Review
Real Time & Embedded Systems Final Exam - Review Final Exam Review Topics Finite State Machines RTOS Context switching Process states Mutex - purpose and application Blocking versus non-blocking Synchronous
More informationCEC 450 Real-Time Systems
CEC 450 Real-Time Systems Lecture 6 Accounting for I/O Latency September 28, 2015 Sam Siewert A Service Release and Response C i WCET Input/Output Latency Interference Time Response Time = Time Actuation
More informationIntroduction to Embedded Systems
Introduction to Embedded Systems Edward A. Lee & Sanjit A. Seshia UC Berkeley EECS 124 Spring 2008 Copyright 2008, Edward A. Lee & Sanjit A. Seshia, All rights reserved Lecture 19: Execution Time Analysis
More informationProgramming and Timing Analysis of Parallel Programs on Multicores
Programming and Timing Analysis of Parallel Programs on Multicores Eugene Yip, Partha Roop, Morteza Biglari-Abhari, Alain Girault To cite this version: Eugene Yip, Partha Roop, Morteza Biglari-Abhari,
More informationCEC 450 Real-Time Systems
CEC 450 Real-Time Systems Lecture 7 Review October 9, 2017 Sam Siewert Coming Next Finish Up with Recount of Mars Pathfinder and Unbounded Priority Inversion Mike Jone s Page (Microsoft) Glenn Reeves on
More informationIn examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured
System Performance Analysis Introduction Performance Means many things to many people Important in any design Critical in real time systems 1 ns can mean the difference between system Doing job expected
More informationDesign and Analysis of Time-Critical Systems Introduction
Design and Analysis of Time-Critical Systems Introduction Jan Reineke @ saarland university ACACES Summer School 2017 Fiuggi, Italy computer science Structure of this Course 2. How are they implemented?
More information6.1 Motivation. Fixed Priorities. 6.2 Context Switch. Real-time is about predictability, i.e. guarantees. Real-Time Systems
Real-Time Systems Summer term 2017 6.1 Motivation 6.1 Motivation Real-Time Systems 6 th Chapter Practical Considerations Jafar Akhundov, M.Sc. Professur Betriebssysteme Real-time is about predictability,
More informationA Multi-Threaded Reactive Processor
A Multi-Threaded Reactive Processor Xin Li Marian Boldt Reinhard v. Hanxleden Real-Time Systems and Embedded Systems Group Department of Computer Science Christian-Albrechts-Universität zu Kiel, Germany
More informationSynchronous C + WCRT Algebra 101
Synchronous C + 101 Reinhard von Hanxleden Joint work with Michael Mendler, Claus Traulsen,... Real-Time and Embedded Systems Group (RTSYS) Department of Computer Science Christian-Albrechts-Universität
More informationOverview. Synchronous Languages Lecture 12. Code Generation for Sequential Constructiveness. Compilation Overview. The 5-Minute Review Session
Synchronous Languages Lecture 12 Overview Prof. Dr. Reinhard von Hanxleden Steven Smyth Christian-Albrechts Universität Kiel Department of Computer Science Real-Time Systems and Embedded Systems Group
More informationPredictable Execution with IEC 61499
Predictable Execution with IEC 61499 Li Hsien Yoong The University of Auckland Sequence of presentation What has been achieved: Deterministic behaviour of centralized IEC 61499 systems Current goal: Deterministic
More informationLecture 3: Concurrency & Tasking
Lecture 3: Concurrency & Tasking 1 Real time systems interact asynchronously with external entities and must cope with multiple threads of control and react to events - the executing programs need to share
More informationIN4343 Real-Time Systems
IN4343 Real-Time Systems Koen Langendoen, TA (TBD) 2017-2018 Delft University of Technology Challenge the future Course outline Real-time systems Lectures theory instruction Exam Reinder Bril TU/e Practicum
More informationEmbedded Software Engineering
Embedded Software Engineering 3 Unit Course, Spring 2002 EECS Department, UC Berkeley Christoph Kirsch www.eecs.berkeley.edu/~fresco/giotto/course-2002 It s significant $4 billion development effort >
More informationLesson 5: Software for embedding in System- Part 2
Lesson 5: Software for embedding in System- Part 2 Device drivers, Device manager, OS, RTOS and Software tools 1 Outline Device drivers Device manager Multitasking using an operating system (OS) and Real
More informationUpdates on SCCharts Christian Motika Steven Smyth
Updates on SCCharts Updates on SCCharts Christian Motika Steven Smyth SYNCHRON 2015 04. DEC 2015, Kiel 1 Reactive System Updates on SCCharts Safety-critical systems State based reactions Concurrency Synchronous
More informationOperating Systems 2010/2011
Operating Systems 2010/2011 Introduction Johan Lukkien 1 Agenda OS: place in the system Some common notions Motivation & OS tasks Extra-functional requirements Course overview Read chapters 1 + 2 2 A computer
More informationUsing and Compiling Esterel
Using and Compiling Esterel Stephen A. Edwards Columbia University Department of Computer Science sedwards@cs.columbia.edu http://www.cs.columbia.edu/ sedwards/ Memocode Tutorial, July 11, 2005 The Esterel
More informationA Multi-Threaded Reactive Processor
Introduction The Kiel Esterel Processor Experimental Results and Outlook A Multi-Threaded Reactive Processor Reinhard v. Hanxleden Joint work with Xin Li* and Marian Boldt Real-Time Systems and Embedded
More informationCyber Physical System Verification with SAL
Cyber Physical System Verification with July 22, 2013 Cyber Physical System Verification with Outline 1 2 3 4 5 Cyber Physical System Verification with Table of Contents 1 2 3 4 5 Cyber Physical System
More informationSequential Constructiveness, SCL and SCCharts
Sequential Constructiveness, SCL and SCCharts Incorporating synchrony in conventional languages Reinhard von Hanxleden (U Kiel) 14 March 2018, Collège de France Reactive Systems pause input I output O
More informationIntroduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger
C-SPY plugin Introduction to the ThreadX Debugger Plugin for the IAR Embedded Workbench C-SPYDebugger This document describes the IAR C-SPY Debugger plugin for the ThreadX RTOS. The ThreadX RTOS awareness
More information2. Introduction to Software for Embedded Systems
2. Introduction to Software for Embedded Systems Lothar Thiele ETH Zurich, Switzerland 2-1 Contents of Lectures (Lothar Thiele) 1. Introduction to Embedded System Design 2. Software for Embedded Systems
More informationJOP: A Java Optimized Processor for Embedded Real-Time Systems. Martin Schoeberl
JOP: A Java Optimized Processor for Embedded Real-Time Systems Martin Schoeberl JOP Research Targets Java processor Time-predictable architecture Small design Working solution (FPGA) JOP Overview 2 Overview
More informationEmbedded Software Programming
Embedded Software Programming Computer Science & Engineering Department Arizona State University Tempe, AZ 85287 Dr. Yann-Hang Lee yhlee@asu.edu (480) 727-7507 Event and Time-Driven Threads taskspawn (name,
More informationait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS
ait: WORST-CASE EXECUTION TIME PREDICTION BY STATIC PROGRAM ANALYSIS Christian Ferdinand and Reinhold Heckmann AbsInt Angewandte Informatik GmbH, Stuhlsatzenhausweg 69, D-66123 Saarbrucken, Germany info@absint.com
More informationReactive Parallel Processing for Synchronous Dataflow
Reactive Parallel Processing for Synchronous Dataflow Claus Traulsen and Reinhard von Hanxleden Real-Time and Embedded Systems Group Department of Computer Science Christian-Albrechts-Universität zu Kiel
More informationEmbedded Systems Lecture 11: Worst-Case Execution Time. Björn Franke University of Edinburgh
Embedded Systems Lecture 11: Worst-Case Execution Time Björn Franke University of Edinburgh Overview Motivation Worst-Case Execution Time Analysis Types of Execution Times Measuring vs. Analysing Flow
More informationTemporal Semantics in Concurrent and Distributed Software
Temporal Semantics in Concurrent and Distributed Software Edward A. Lee Robert S. Pepper Distinguished Professor UC Berkeley Workshop on Strategic Directions in Software at Scale (S@S) Berkeley, CA, August
More informationCS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017
CS 471 Operating Systems Yue Cheng George Mason University Fall 2017 Outline o Process concept o Process creation o Process states and scheduling o Preemption and context switch o Inter-process communication
More informationIntroduction 2 The first synchronous language (early 80 s) Gérard Berry and his team (École des Mines de Paris / INRIA Sophia-Antipolis) Imperative, s
Pascal Raymond, Verimag-CNRS Introduction 2 The first synchronous language (early 80 s) Gérard Berry and his team (École des Mines de Paris / INRIA Sophia-Antipolis) Imperative, sequential style (i.e.
More informationDeterministic Concurrency
Candidacy Exam p. 1/35 Deterministic Concurrency Candidacy Exam Nalini Vasudevan Columbia University Motivation Candidacy Exam p. 2/35 Candidacy Exam p. 3/35 Why Parallelism? Past Vs. Future Power wall:
More informationThe Real-time Specification for Java
The Real-time Specification for Java Roadmap Overview of the RTSJ Memory Management Clocks and Time Scheduling and Schedulable Objects Asynchronous Events and Handlers Real-Time Threads Asynchronous Transfer
More informationProcesses. CS 475, Spring 2018 Concurrent & Distributed Systems
Processes CS 475, Spring 2018 Concurrent & Distributed Systems Review: Abstractions 2 Review: Concurrency & Parallelism 4 different things: T1 T2 T3 T4 Concurrency: (1 processor) Time T1 T2 T3 T4 T1 T1
More informationWCET-Aware C Compiler: WCC
12 WCET-Aware C Compiler: WCC Jian-Jia Chen (slides are based on Prof. Heiko Falk) TU Dortmund, Informatik 12 2015 年 05 月 05 日 These slides use Microsoft clip arts. Microsoft copyright restrictions apply.
More informationThe Esterel language
Pascal Raymond, Verimag-CNRS Introduction 2 The first synchronous language (early 80 s) Gérard Berry and his team (École des Mines de Paris / INRIA Sophia-Antipolis) Imperative, sequential style (i.e.
More informationA Deterministic Concurrent Language for Embedded Systems
A Deterministic Concurrent Language for Embedded Systems Stephen A. Edwards Columbia University Joint work with Olivier Tardieu SHIM:A Deterministic Concurrent Language for Embedded Systems p. 1/30 Definition
More informationEmbedded Tutorial CPS Foundations
Embedded Tutorial CPS Foundations Edward A. Lee Robert S. Pepper Distinguished Professor UC Berkeley Special Session: Cyber-Physical Systems Demystified Design Automation Conference (DAC 2010) Annaheim,
More informationResource-bound process algebras for Schedulability and Performance Analysis of Real-Time and Embedded Systems
Resource-bound process algebras for Schedulability and Performance Analysis of Real-Time and Embedded Systems Insup Lee 1, Oleg Sokolsky 1, Anna Philippou 2 1 RTG (Real-Time Systems Group) Department of
More informationA Deterministic Concurrent Language for Embedded Systems
SHIM:A A Deterministic Concurrent Language for Embedded Systems p. 1/28 A Deterministic Concurrent Language for Embedded Systems Stephen A. Edwards Columbia University Joint work with Olivier Tardieu SHIM:A
More informationProcesses. Sanzheng Qiao. December, Department of Computing and Software
Processes Sanzheng Qiao Department of Computing and Software December, 2012 What is a process? The notion of process is an abstraction. It has been given many definitions. Program in execution is the most
More informationFaculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology
Faculty of Electrical Engineering, Mathematics, and Computer Science Delft University of Technology exam Embedded Software TI2726-B January 28, 2019 13.30-15.00 This exam (6 pages) consists of 60 True/False
More informationPredictable Programming on a Precision Timed Architecture
Predictable Programming on a Precision Timed Architecture Ben Lickly, Isaac Liu, Hiren Patel, Edward Lee, University of California, Berkeley Sungjun Kim, Stephen Edwards, Columbia University, New York
More informationFiji VM Safety Critical Java
Fiji VM Safety Critical Java Filip Pizlo, President Fiji Systems Inc. Introduction Java is a modern, portable programming language with wide-spread adoption. Goal: streamlining debugging and certification.
More informationReal Time Operating Systems and Middleware
Real Time Operating Systems and Middleware Introduction to Real-Time Systems Luca Abeni abeni@disi.unitn.it Credits: Luigi Palopoli, Giuseppe Lipari, Marco Di Natale, and Giorgio Buttazzo Scuola Superiore
More informationC6000 Compiler Roadmap
C6000 Compiler Roadmap CGT v7.4 CGT v7.3 CGT v7. CGT v8.0 CGT C6x v8. CGT Longer Term In Development Production Early Adopter Future CGT v7.2 reactive Current 3H2 4H 4H2 H H2 Future CGT C6x v7.3 Control
More informationToday s topic: Real Time Programming with Ada
Today s topic: Real Time Programming with Ada 1 Programming the car controller (3) 76 800 Soft RT tasks speed 4 ABS 14 64 FUEL-4 FUEL-1 20 speed A feasible Schedule! speed 24 60 FUEL-3 54 ABS 44 speed
More informationAutomatic Qualification of Abstract Interpretation-based Static Analysis Tools. Christian Ferdinand, Daniel Kästner AbsInt GmbH 2013
Automatic Qualification of Abstract Interpretation-based Static Analysis Tools Christian Ferdinand, Daniel Kästner AbsInt GmbH 2013 2 Functional Safety Demonstration of functional correctness Well-defined
More informationTraditional Approaches to Modeling
Traditional Approaches to Modeling Timeliness, Performance and How They Relate to Modeling, Architecture and Design Mark S. Gerhardt Chief Architect Pittsburgh, PA 15213 Levels of Real Time Performance
More informationCSCE Introduction to Computer Systems Spring 2019
CSCE 313-200 Introduction to Computer Systems Spring 2019 Operating Systems Dmitri Loguinov Texas A&M University January 22, 2019 1 Chapter 2: Book Overview Lectures skip chapter 1 Mostly 312 background
More informationSCCharts. Sequentially Constructive Charts
SCCharts Sequentially Constructive Charts Reinhard von Hanxleden, Björn Duderstadt, Christian Motika, Steven Smyth, Michael Mendler, Joaquin Aguado, Stephen Mercer, and Owen O Brien Real-Time Systems and
More informationCOMP 7860 Embedded Real- Time Systems: Threads
COMP 7860 Embedded Real- Time Systems: Threads Jacky Baltes Autonomous Agents Lab University of Manitoba Winnipeg, Canada R3T 2N2 Email: jacky@cs.umanitoba.ca WWW: http://www.cs.umanitoba.ca/~jacky http://aalab.cs.umanitoba.ca
More informationMotivation was to facilitate development of systems software, especially OS development.
A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.
More informationFMCAD 2011 (Austin, Texas) Jonathan Kotker, Dorsa Sadigh, Sanjit Seshia University of California, Berkeley
FMCAD 2011 (Austin, Texas) Jonathan Kotker, Dorsa Sadigh, Sanjit Seshia University of California, Berkeley 1 Cyber-Physical = Computation + Physical Processes Quantitative analysis of programs is crucial:
More informationHardware Implementation of an RTOS Scheduler on Xilinx MicroBlaze Processor
Hardware Implementation of an RTOS Scheduler on Xilinx MicroBlaze Processor MS Computer Engineering Project Presentation Project Advisor: Dr. Shahid Masud Shakeel Sultan 2007-06 06-00170017 1 Outline Introduction
More informationThe Esterel Language. The Esterel Version. Basic Ideas of Esterel
The Synchronous Language Esterel OMS W4995-02 Prof. Stephen. Edwards Fall 2002 olumbia University epartment of omputer Science The Esterel Language eveloped by Gérard erry starting 1983 Originally for
More informationReal-Time Programming Languages (ADA and Esterel as Examples)
Real-Time Programming Languages (ADA and Esterel as Examples) Real-Time Systems, 2008 RT Languages, 1 RT Language Classes HLL suitable for RT-Analysis (e.g., rms or time-driven) Synchronous HLL (clock
More informationStackAnalyzer Proving the Absence of Stack Overflows
StackAnalyzer Proving the Absence of Stack Overflows AbsInt GmbH 2012 2 Functional Safety Demonstration of functional correctness Well-defined criteria Automated and/or model-based testing Formal techniques:
More informationConstructing and Verifying Cyber Physical Systems
Constructing and Verifying Cyber Physical Systems Mixed Criticality Scheduling and Real-Time Operating Systems Marcus Völp Overview Introduction Mathematical Foundations (Differential Equations and Laplace
More informationCPU Scheduling. Operating Systems (Fall/Winter 2018) Yajin Zhou ( Zhejiang University
Operating Systems (Fall/Winter 2018) CPU Scheduling Yajin Zhou (http://yajin.org) Zhejiang University Acknowledgement: some pages are based on the slides from Zhi Wang(fsu). Review Motivation to use threads
More informationA High Integrity Distributed Deterministic Java Environment. WORDS 2002 January 7, San Diego CA
A High Integrity Distributed Deterministic Java Environment WORDS 2002 January 7, San Diego CA João Ventura Skysoft Portugal SA Fridtjof Siebert & Andy Walter aicas GmbH James Hunt Forschungszentrum Informatik
More informationCS 5523 Operating Systems: Midterm II - reivew Instructor: Dr. Tongping Liu Department Computer Science The University of Texas at San Antonio
CS 5523 Operating Systems: Midterm II - reivew Instructor: Dr. Tongping Liu Department Computer Science The University of Texas at San Antonio Fall 2017 1 Outline Inter-Process Communication (20) Threads
More informationConcurrent Models of Computation
Concurrent Models of Computation Edward A. Lee Robert S. Pepper Distinguished Professor, UC Berkeley EECS 219D Concurrent Models of Computation Fall 2011 Copyright 2009-2011, Edward A. Lee, All rights
More informationOperating Systems (2INC0) 2018/19. Introduction (01) Dr. Tanir Ozcelebi. Courtesy of Prof. Dr. Johan Lukkien. System Architecture and Networking Group
Operating Systems (2INC0) 20/19 Introduction (01) Dr. Courtesy of Prof. Dr. Johan Lukkien System Architecture and Networking Group Course Overview Introduction to operating systems Processes, threads and
More informationTyped Assembly Language for Implementing OS Kernels in SMP/Multi-Core Environments with Interrupts
Typed Assembly Language for Implementing OS Kernels in SMP/Multi-Core Environments with Interrupts Toshiyuki Maeda and Akinori Yonezawa University of Tokyo Quiz [Environment] CPU: Intel Xeon X5570 (2.93GHz)
More informationCS370 Operating Systems Midterm Review
CS370 Operating Systems Midterm Review Yashwant K Malaiya Fall 2015 Slides based on Text by Silberschatz, Galvin, Gagne 1 1 What is an Operating System? An OS is a program that acts an intermediary between
More informationStates Transitions Connectors Esterel Studio
Time in Differences SyncCharts differ from other implementations of : Synchronous framework Determinism Compilation into backend language Esterel No interpretation for simulations No hidden behaviour Multiple
More informationTowards Automation of Timing-Model Derivation. AbsInt Angewandte Informatik GmbH
Towards Automation of Timing-Model Derivation Markus Pister Marc Schlickling AbsInt Angewandte Informatik GmbH Motivation Growing support of human life by complex embedded systems Safety-critical systems
More informationFlexPRET: A Processor Platform for Mixed-Criticality Systems
FlexPRET: A Processor Platform for Mixed-Criticality Systems Michael Zimmer David Broman Christopher Shaver Edward A. Lee Electrical Engineering and Computer Sciences University of California at Berkeley
More informationAsynchronous Events on Linux
Asynchronous Events on Linux Frederic.Rossi@Ericsson.CA Open System Lab Systems Research June 25, 2002 Ericsson Research Canada Introduction Linux performs well as a general purpose OS but doesn t satisfy
More informationEfficient Event-Triggered Tasks in an RTOS
Efficient Event-Triggered Tasks in an RTOS Kaj Hänninen 1,2, John Lundbäck 2, Kurt-Lennart Lundbäck 2, Jukka Mäki-Turja 1, Mikael Nolin 1 1 Mälardalen Real-Time Research Centre, Västerås Sweden 2 Arcticus-Systems,
More informationThread-Level Speculation on Off-the-Shelf Hardware Transactional Memory
Thread-Level Speculation on Off-the-Shelf Hardware Transactional Memory Rei Odaira Takuya Nakaike IBM Research Tokyo Thread-Level Speculation (TLS) [Franklin et al., 92] or Speculative Multithreading (SpMT)
More informationReal-time Support in Operating Systems
Real-time Support in Operating Systems Colin Perkins teaching/2003-2004/rtes4/lecture11.pdf Lecture Outline Overview of the rest of the module Real-time support in operating systems Overview of concepts
More informationSireesha R Basavaraju Embedded Systems Group, Technical University of Kaiserslautern
Sireesha R Basavaraju Embedded Systems Group, Technical University of Kaiserslautern Introduction WCET of program ILP Formulation Requirement SPM allocation for code SPM allocation for data Conclusion
More informationReal-Time Programming
Real-Time Programming Programming the car controller Process Speed: Loop next := get-time + 0.02 read sensor,compute,display sleep until next End loop Process Fuel Loop next:=get-time + 0.08 read data,
More informationEE382N.23: Embedded System Design and Modeling
EE382N.23: Embedded System Design and Modeling Lecture 3 Language Semantics Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin gerstl@ece.utexas.edu Lecture 3: Outline
More informationReal Time: Understanding the Trade-offs Between Determinism and Throughput
Real Time: Understanding the Trade-offs Between Determinism and Throughput Roland Westrelin, Java Real-Time Engineering, Brian Doherty, Java Performance Engineering, Sun Microsystems, Inc TS-5609 Learn
More informationCompiling Esterel. Dumitru Potop-Butucaru. Stephen A. Edwards Gérard Berry
Compiling Esterel Compiling Esterel Dumitru Potop-Butucaru Stephen A. Edwards Gérard Berry A C.I.P. Catalogue record for this book is available from the Library of Congress. ISBN 978-0-387-70626-9 (HB)
More informationA Deterministic Concurrent Language for Embedded Systems
A Deterministic Concurrent Language for Embedded Systems Stephen A. Edwards Columbia University Joint work with Olivier Tardieu SHIM:A Deterministic Concurrent Language for Embedded Systems p. 1/38 Definition
More informationPredictable Timing of Cyber-Physical Systems Future Research Challenges
Predictable Timing of Cyber- Systems Future Research Challenges DREAMS Seminar, EECS, UC Berkeley January 17, 2012 David Broman EECS Department UC Berkeley, USA Department of Computer and Information Science
More informationImplementation Alternatives. Lecture 2: Implementation Alternatives & Concurrent Programming. Current Implementation Alternatives
Lecture 2: Implementation Alternatives & Concurrent ming Implementation Alternatives Controllers can be implemented using a number of techniques [RTCS Ch 3] Implementation Alternatives Processes and threads
More informationMotivation was to facilitate development of systems software, especially OS development.
A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.
More informationScheduling Algorithm and Analysis
Scheduling Algorithm and Analysis Model and Cyclic Scheduling (Module 27) Yann-Hang Lee Arizona State University yhlee@asu.edu (480) 727-7507 Summer 2014 Task Scheduling Schedule: to determine which task
More informationEmbedded Software TI2726 B. 7. Embedded software design. Koen Langendoen. Embedded Software Group
Embedded Software 7. Embedded software design TI2726 B Koen Langendoen Embedded Software Group Overview Timing services RTOS and ISRs Design of embedded systems General principles Timing Functionality
More informationSIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road QUESTION BANK (DESCRIPTIVE) UNIT I OPERATING SYSTEMS
UNIT I OPERATING SYSTEMS 1. Write a short note about [6+6M] a) Time services b) Scheduling Mechanisms 2. a) Explain the overview of Threads and Tasks. [6M] b) Draw the structure of Micro kernel and explain
More informationLecture 4: Memory Management & The Programming Interface
CS 422/522 Design & Implementation of Operating Systems Lecture 4: Memory Management & The Programming Interface Zhong Shao Dept. of Computer Science Yale University Acknowledgement: some slides are taken
More informationMultithreading Programming II
Multithreading Programming II Content Review Multithreading programming Race conditions Semaphores Thread safety Deadlock Review: Resource Sharing Access to shared resources need to be controlled to ensure
More informationIntroduction. CS3026 Operating Systems Lecture 01
Introduction CS3026 Operating Systems Lecture 01 One or more CPUs Device controllers (I/O modules) Memory Bus Operating system? Computer System What is an Operating System An Operating System is a program
More information