KATHOLIEKE UNIVERSITEIT LEUVEN DEPT OF COMPUTER SCIENCE ESC

  • Slides: 43
Download presentation
KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE ESC Europe 1999 report Report on ESC

KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE ESC Europe 1999 report Report on ESC Europe 1999 Kris Hermans

Conference programme KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Day 1: one day

Conference programme KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Day 1: one day tutorials w Guaranteeing real-time performance using RMA u Day 2: several presentations: ESC Europe 1999 report w System Design, HW/SW interface, Management, Software Design, UI, Hardware u Day 3: several presentations w Programming, Design for integration, Management, Real-time systems, HW/SW partioning, concurrency 1/7/2022 2

RT performance using RMA (1) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Speaker

RT performance using RMA (1) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Speaker w Ray Obenza from Carnegie Mellon University (SEI) w somebody from Aonix for tool demo ESC Europe 1999 report u purpose of tutorial: w introduce rate monotonic analysis w explain how to do the analysis w give examples (exercises) w convince that it is useful (case study) u my opinion: very interesting, something to look at ! 1/7/2022 3

RT performance using RMA (2) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

RT performance using RMA (2) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Real-time systems w timing requirements Smeeting deadlines w periodic and aperiodic tasks w shared resources SCPU, IO Devices, mutual exclusive memory w interrupts u Scheduling w assume preemptive, priority based scheduling of tasks (static) 1/7/2022 4

RT performance using RMA (3) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

RT performance using RMA (3) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Rate monotonic scheduling (RMS) w prio of periodic tasks based on their rates: highest rate gets highest priority w has a theoretical basis Soptimal fixed scheduling policy Sanalytic formulas to check schedulability w must distinguish between scheduling and analysis SRMA is possible for systems that do not use RMS u Rate Monotonic Analysis (RMA) w a method for analysing sets of real-time tasks w Basic theory applies only to independent, periodic tasks, but has been extended to address: Spriority inversion Stask interactions Saperiodic tasks 1/7/2022 5

RT performance using RMA (4) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

RT performance using RMA (4) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Why are deadlines missed ? w For a given task, consider: Spreemption: time waiting for higher prio task Sexecution: time to do its own work Sblocking: time delayed by lower priority tasks (prio inversion) T_H: { … P(S 1) … V(S 1) …} T_L: { … P(S 1) … V(S 1) …} T_H T_M T_Lw the task is schedulable if the sum of its preemption, execution and blocking is less than its deadline w Focus: identify the biggest hits among these three and reduce, as needed, to achieve schedulability. 1/7/2022 6

RT performance using RMA (5) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

RT performance using RMA (5) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Presenting basic theory w periodic tasks w CPU utilization: Ui = Ci / Ti w UB test: a set of n independent periodic tasks scheduled by the rate monotonic algorithm will always meet its deadlines, for all task phasings, if C 1/T 1 + … + Cn/Tn <= n(21/n - 1) w RT test: less conservative formula to calculate if a set of periodic tasks are schedulable u Extending basic theory w nonzero task switch times w preperiod deadlines w interrupt and non-rate-monotonic priorities w task interactions, priority inversion (protocols) w aperiodic servers 1/7/2022 7

RT performance using RMA (6) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

RT performance using RMA (6) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Conclusion (personal) w very complete theory (formal) w gives insight and rules of thumb w only static set of tasks w to be applied (too) late u References w Liu, C. L. & Layland, J. W. “Scheduling algorithms for multiprogramming in a hard real-time environment. ” Journal of the ACM 20, 1 (jan 1973), pp. 40 - 61. w A Practitioner's Handbook for Real-Time Analysis : Guide to Rate Monotonic Analysis for Real-Time Systems (The Kluwer International Series in Enginee) by Mark H. Klein, Thomas Ralya, Bill Pollak, Ray Obenza 1/7/2022 8

Developing embedded SW in Java (1) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT.

Developing embedded SW in Java (1) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Part 1: technology and architecture w why Java ? w Java Virtual Machine Technology w Alternative Technologies w Supporting Technologies u Part 2: Products and Solutions w Java Virtual Machines w Ahead-of-Time Compilers w Java Processors w Remote Debuggers 1/7/2022 9

Developing embedded SW in Java (2) KATHOLIEKE UNIVERSITEIT LEUVEN w technical editor of Embedded

Developing embedded SW in Java (2) KATHOLIEKE UNIVERSITEIT LEUVEN w technical editor of Embedded Systems Programming w book: Programming Embedded Systems in C and C++ w mbarr@netrino. com. ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u About the speaker: Michael Barr 1/7/2022 10

What is so great about Java (1) ? KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999

What is so great about Java (1) ? KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Programming language w Familiar C-like (but improved) syntax Sall test conditions must be Boolean Sprimitive data types have fixed sizes w Easier to produce bug-free software S array bounds checking S automatic garbage collection w built-in exception-handling w Truly object oriented w and simpler to learn than C++ 1/7/2022 11

What is so great about Java (2) ? KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999

What is so great about Java (2) ? KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Bytecodes w Java bytecode == portable binary format S platform portability, without source code SSource translation is done in advance w faster than a “fully interpreted” solution w Can be translated into native opcodes: S at each encounter (bytecode interpreter) S at first encounter (just-in-time compiler) S prior to loading (ahead-of-time compiler) 1/7/2022 12

What is so great about Java (3) ? KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999

What is so great about Java (3) ? KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Class libraries w High level of abstraction w Standard APIs: Sincrease application portability Sreduce programming effort w Support for multitasking SThread class and Runnable interface Ssynchronized keyword Smonitors via wait() and notify() w Support for networking 1/7/2022 13

Why use anything else ? KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

Why use anything else ? KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Problems with Java w No direct access to hardware SJava has no pointers Snor bytecodes to access a physical address w Inefficiencies Sbytecode interpretation is slower than C/C++ Sgarbage collection requires processor time Sthe interpreter or JIT may not be an “optimal” compiler w Unpredictability Sgarbage collector may preempt a running program SJust-in-Time compilation slows first access 1/7/2022 14

JVM technology: components KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE

JVM technology: components KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE Java Threads Class libs C/C++ Tasks Java Virtual Machine (+ garbage collector) Native methods Multitasking OS Processor and other hardware 1/7/2022 15

Inside a virtual machine (1) KATHOLIEKE UNIVERSITEIT LEUVEN Java application DEPT. OF COMPUTER SCIENCE

Inside a virtual machine (1) KATHOLIEKE UNIVERSITEIT LEUVEN Java application DEPT. OF COMPUTER SCIENCE ESC Europe 1999 report Class libs Dynamic class loader Bytecode verifier Native methods Execution engine Garbage collector Multitasking OS 1/7/2022 16

Inside a virtual machine (2) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

Inside a virtual machine (2) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Execution engine w bytecode interpreter w just-in-time compilation w hybrid SSun’s Hot. Spot compiler u Garbage collector (biggest myth for Java) w many algorithms, some even hard real-time suitable S Naive S Incremental S Real-time (double heap, HW assisted) • • 1/7/2022 bounded worst-case allocation time (faster than incremental GC) bounded worst-case object access time slower average-case allocation time slower object access time 17

Inside a virtual machine (3) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

Inside a virtual machine (3) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Dynamic Class Loader w Find and load referenced class w Read file <package>/<class>. class in the CLASSPATH w ZIP files are also traversable, can be placed in ROM, if necessary w Verify class file format w Link: place contents into a JVM data structure w Prepare and initialize the class u Bytecode Verifier w Detects and prevents “illegal” activity w Verification is optional! w Of little value in a closed system 1/7/2022 18

Inside a virtual machine (4) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

Inside a virtual machine (4) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Java Class Libraries w Write Once, Run Anywhere w Only if the same set of class libraries are available! w Multiple “standard platforms” (APIs): SStandard Java - the full set, for desktops and workstations SPersonal. Java - a subset of the above, for smaller devices SEmbedded. Java - like the previous, but more memoryconscious w Upward compatibility is desirable SEmbedded. Java apps also run on any Personal. Java platform SPersonal. Java apps also run on any Standard Java platform 1/7/2022 19

JVM requirements: memory KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u ROM: JVM +

JVM requirements: memory KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u ROM: JVM + libraries + application w JVM: ~500 K is typical maximum w Class libraries: ~500 K for Personal. Java w Plus the application itself ESC Europe 1999 report u RAM: JVM + heap + thread stacks w Affected by engine type SJIT compiler requires large storage area, interpreter does not w Heap size is application-dependent w Each thread requires its own stack 1/7/2022 20

JVM requirements: processor KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE

JVM requirements: processor KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Capabilities w Arithmetic S 32 -bit integers assumed cheap and fast, 64 -bit available S 32 -bit and 64 -bit floating point (IEEE 754) available w Processing power Sneed enough to negate interpretation slowdown u Address space w JVM + all class libraries requires a lot of memory! 1/7/2022 21

JVM requirements: OS KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u JVM is not

JVM requirements: OS KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u JVM is not (usually) an OS replacement w RTOS or kernel expected underneath ESC Europe 1999 report u Only minimal functionality required w Thread creation and deletion w Priority-based scheduling Sat least 10 priority levels w Synchronization primitives (e. g. , mutexes) w Private thread stacks 1/7/2022 22

JVM requirements: other software KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u JVMs are

JVM requirements: other software KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u JVMs are written in C, therefore: w Standard C library w Standard math library u Dynamic memory allocation ESC Europe 1999 report w malloc() is called internally u Java class libraries w java. net - assumes a TCP/IP stack w java. awt - requires a graphics API u Others? - implementation-specific 1/7/2022 23

Alternative technologies KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Traditional JVM: w too

Alternative technologies KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Traditional JVM: w too big w too slow w too unpredictable ESC Europe 1999 report u alternatives: w Ahead-of-time compilers w Java processors w Java. Card technology w Kjava Virtual Machine 1/7/2022 24

Supporting technologies KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u

Supporting technologies KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Java Native Interface (JNI) w call legacy code w work around Java’s limitations w implement higher-performance functionality w native methods == C functions (no good integration with C++) u JVM Debug Interface (JVMDI) w programming interface for debuggers S Client(JVM) - Server S monitor and control: • • memoy threads stack frames local variables S event notification for: • field access/modification • breakpoints 1/7/2022 25

Developing embedded SW in Java KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Part

Developing embedded SW in Java KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Part 1: technology and architecture u Part 2: Products and Solutions ESC Europe 1999 report w Java Virtual Machines S RTOS vendors with add-on JVMs S Commercial JVM suppliers • New. Monics - PERC • Sun - KVM • Transvirtual Technologies - Kaffe S Integrated JVM - RTOS products w Ahead-of-Time Compilers S Cygnus - GCJ w Java Processors w Remote Debuggers Http: //www. netrino. com/Papers/Embedded. Java 1/7/2022 26

Commercial JVM suppliers: PERC (1) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

Commercial JVM suppliers: PERC (1) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u New. Monics w Founded by a real-time garbage collection expert w Extended JVM platform for hard real-time systems w Target Support SProcessors: Power. PC, 68 k, Pentium SOperating systems: p. SOS, RTX (Ventur. Com) w http: //www. newmonics. com/Web. Root/perc. info. html u PERC == Portable Executive for Reliable Control u PERC Virtual Machine (PVM) 1. 0 w cleanroom JVM, with JIT, JDK 1. 0. 2 compatible w GC: real-time ready, incremental, defragmenting w deterministic real-time multitasking 1/7/2022 27

Commercial JVM suppliers: PERC (2) KATHOLIEKE UNIVERSITEIT LEUVEN u Real-time extensions: PERColator ESC Europe

Commercial JVM suppliers: PERC (2) KATHOLIEKE UNIVERSITEIT LEUVEN u Real-time extensions: PERColator ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE PERC source code Java source code 1/7/2022 Percolator Annotated byte code PVM javac Byte code JVM 28

Commercial JVM suppliers: PERC (3) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

Commercial JVM suppliers: PERC (3) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Real-time extensions w language S timed: a block of code with a deadline S atomic: a block of code that must executed as a whole w com. New. Monics. Real. Time package S Real. Time. Task S Periodic. Task S Sporadic. Task S Spontaneous. Task S On. Going. Task 1/7/2022 29

Commercial JVM suppliers: KVM KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Fills the

Commercial JVM suppliers: KVM KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Fills the gap between Java. Card and Embedded. Java w Java. Card: 8 -bit processor, minimal memory, not full Java w Embedded. Java: big JVM (~512 K) on 32 -bit processor ESC Europe 1999 report u KVM design goals w Reduce ROM usage (size of VM and libraries) w Reduce RAM usage (of interpreter and garbage collector) w Increase VM modularity and code portability u Results w Will run decently on a 16 -bit processor! w Reference platform: Palm. OS 3. 0 1/7/2022 30

Commercial JVM suppliers: Kaffe (1) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Transvirtual

Commercial JVM suppliers: Kaffe (1) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Transvirtual Technologies w Developer of open source and commercial JVMs u Description ESC Europe 1999 report w Modular, freeware JVM; not specifically for embedded u Target Support w Processors: x 86, SPARC, Alpha, Power. PC, 68 k, MIPS, . . . w Operating systems: QNX, Thread. X, numerous non-RTOS u Home Page w http: //www. kaffe. org 1/7/2022 31

Commercial JVM suppliers: Kaffe (2) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

Commercial JVM suppliers: Kaffe (2) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u A freeware JVM (for desktops) w Distributed as open source software w Interpreter and JIT included w Internal threading package w Written mostly in C Sassembly used only within the JIT compilers u Cleanroom Java class libraries u Not originally intended for embedded systems w Now available commercially from Transvirtual 1/7/2022 32

Commercial JVM suppliers: Kaffe (3) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Modifications

Commercial JVM suppliers: Kaffe (3) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Modifications for embedded systems: w dynamic class loader: look for zip-filesystems w native methods in DLL w startup: from startup task ESC Europe 1999 report u Author has ported Kaffe on his own embedded system w http: //www. netrino. com/Papers/Embedded. Java/ 1/7/2022 33

Ahead-of-Time compilers: GCJ (1) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Cygnus w

Ahead-of-Time compilers: GCJ (1) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Cygnus w Provider of support for open source software u Description ESC Europe 1999 report w Java front-end for the GNU compiler u Platform Support w Targets: any popular 32 -bit processor w Hosts: Linux and Solaris (4/99), more coming. . . u Home Page w http: //sourceware. cygnus. com/java/ 1/7/2022 34

Ahead-of-Time compilers: GCJ (2) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER

Ahead-of-Time compilers: GCJ (2) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u GCJ == GNU Compiler - Java Edition u Java front-end for the GNU compiler w Input: Java S source code or bytecodes w Output: native object code Soptimized like any C/C++ program u Leverages the power/popularity of GCC w Will run on all GCC-supported hosts w To produce code for all GCC-supported targets 1/7/2022 35

Ahead-of-Time compilers: GCJ (3) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Advantages w

Ahead-of-Time compilers: GCJ (3) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Advantages w Free, and widely available w Produces good code, for many 32 -bit processors w With libgcj, you have a ROMable solution ESC Europe 1999 report u Disadvantages w A REALLY BIG ONE: The project is not done! w first public release on 4/7/99 w source code compilation needs more work w the libgcj runtime library is not available for many targets w Licensing issues 1/7/2022 36

Changing requirements … (1) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Steve Mellor,

Changing requirements … (1) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Steve Mellor, www. projtech. com u general message, not real-time / embedded specific ESC Europe 1999 report u not very cool, new, inventive, but nonetheless useful In order to manage changing requirements: find the variant, model the invariant, express the variants in data 1/7/2022 37

Changing requirements … (2) 4 KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF

Changing requirements … (2) 4 KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE Storage Tank 1 Storage Tank 2 17 1 5 12 6 13 2 7 8 Storage Tank 3 1/7/2022 11 10 18 Cooking Tank 2 19 Cooking Tank 3 14 15 3 9 Cooking Tank 1 16 38

Changing requirements … (3) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER

Changing requirements … (3) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE Function Open. Reserved. Path( Storage. Tank, St. Which w add a valve Cooking. Tank, Ck. Which ); w change target of product Open. Valve( Storage. Tank. Outlet); Open. Valve( Storage. Tank. St. Which); w add a new tank If (Storage. Tank = 1 and w delete a pump Cooking. Tank = 3 ) then Open. Valve( Middle ); w… Open. Valve( Storage. Tank. Outlet); Open. Valve( Cooking. Tank. Ck. Which); Open. Valve( Cooking. Tank. Inlet); End. Function; u The changes are: Open. Reserved. Path(Storage 1, Cooking 3); 1/7/2022 39

Changing requirements … (4) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER

Changing requirements … (4) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u What does not change ? w The facts of valve, pumps, tanks etc. w A closed pipe will contain the same fluid w A pump can move fluid from one pipe to another. w If a valve is open between two pipes, they behave like a single pipe, a “pipe-in-path” w Closure (connection of components in 1 plant) u That is, the physics of fluids. 1/7/2022 40

Changing requirements … (5) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER

Changing requirements … (5) KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE Pi. P Valve A B 5 B C 10 C D 16 A 4 11 5 12 17 1 6 2 7 B 10 9 1/7/2022 18 14 15 8 3 13 C 19 1 6 D 41

Changing requirements … (6) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Logic =

Changing requirements … (6) KATHOLIEKE UNIVERSITEIT LEUVEN DEPT. OF COMPUTER SCIENCE u Logic = general, instantiation = data u not necessarily slow, translation into specific programs is ok ! ESC Europe 1999 report u Concepts more general applicable (all graph problems) 1/7/2022 42

Others KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Implementing

Others KATHOLIEKE UNIVERSITEIT LEUVEN ESC Europe 1999 report DEPT. OF COMPUTER SCIENCE u Implementing web-based management of networked devices w managing via SNMP w How to implement an embedded web-server u RTOS evaluation & selection criteria for embedded automotive powertrain apps w if your app does not need an OS, the best OS is no OS u using dynamic libraries in embedded systems w how to write DLL’s in OS 9 u Designing user interface software for embedded systems w cookbook of elementary constructs (queues, events, callbacks, Model-View-Controller, …) 1/7/2022 43