In this chapter, the following content will be discussed: Introduction, Characteristics and challenges of real-time systems, real-time component models, designing component-based real-time systems, composition of components, example: RT components in rubus OS.
Chapter 13 Components in Real-Time Systems Building Reliable Componentbased Overview Introduction Characteristics and challenges of real-time systems Real-time component models Designing component-based real-time systems Composition of components Example: RT components in Rubus OS Building Reliable Componentbased Introduction Embedded computers Medical control equipment, mobile phones, and vehicle control systems Most of such embedded systems can also be characterized as real-time systems They must usually meet stringent specifications for safety, reliability, limited hardware capacity etc Building Reliable Componentbased Characteristics and Challenges of RTS Real-time systems are computing systems in which the meeting of timing constraints is essential to correctness If the system delivers the correct answer, but after a certain deadline, it could be regarded as having failed Building Reliable Componentbased Tasks Real-time systems can be constructed of sequential programs, but typically they are built of concurrent programs, called tasks Tasks are usually divided into: Periodic tasks: consist of an infinite sequence of identical activities, called instances, which are invoked within regular time periods Non-periodic : are invoked by the occurrence of an event Building Reliable Componentbased Scheduling Offline scheduling: The scheduler has complete knowledge of the task set and its constraints Online scheduling: Make their scheduling decisions during run-time Deadline: Is the maximum time within which the task must complete its execution with respect to an event Real-time systems are divided into two classes, hard and soft real-time systems Building Reliable Componentbased Limited Resources Common CBSE technologies (JavaBeans, CORBA and COM) are seldom used as they: Require excessive processing requirements Require excessive memory requirements Provide unpredictable timing characteristics Building Reliable Componentbased System Level Analysis At system level we analyze to determine if the system composed fulfils the timing requirements Several different mature analysis methods exist, for example, analysis for priority-based systems and prerun-time scheduling techniques Building Reliable Componentbased Real-time Component Models Using a standard operating system in a real-time application, such as windows NT must be done carefully, as it was designed to be used so Building Reliable Componentbased Application-specific Component Models Maintain a component library which the application engineer can use when developing an application In addition to infrastructure components, domain specific component models, which in fact have been used for many years for certain domains must be considered Building Reliable Componentbased Architecture Analysis At this stage it is time to check that the system under development satisfies extra-functional requirements such as: Maintainability Reusability Modifiability Testability Building Reliable Componentbased Scheduling At this point we must check that the temporal requirements of the system can be satisfied, assuming time budgets assigned in the detailed design stage In other words, we need to make a schedulability analysis of the system based on the temporal requirements of each component Building Reliable Componentbased WCET Verification Performing a worst-case analysis can either be based on measurements or on a static analysis of the source code What is more interesting in the test cases is the execution time behavior shown as a function of input parameters as shown in the following slide Building Reliable Componentbased An Execution Time Graph The execution time shows different values for the different input sub-domains Execution time domain 1 domain 2 domain 3 Building Reliable Componentbased Input Maximum execution time per sub-domain Execution time domain 1 domain 2 domain 3 Building Reliable Componentbased Input Implementation of New Components New components; Those not already in the library must be implemented The designer of the component has two requirements: The functional requirements The assigned time budget Building Reliable Componentbased System Build and Test Finally, we build the system using old and new components We must now verify the functional and temporal properties of the system obtained If the verification test fails, we must return to the relevant stage of the development process and correct the error Building Reliable Componentbased Component Library Is the most central part of any CBSE system as it contains binaries of components and their descriptions A component library containing real-time components should provide the following: Memory requirements WCET test cases Dependencies Environment assumptions Building Reliable Componentbased Composition of Components New Component (Cnew) in1_Cnew in_C1 Component 1 (C1) out_C1 in2_Cnew in3_Cnew in4_Cnew in2_Cn in1_C2 in2_C2 Component n (C2) out1_Cn out1_Cnew out2_Cn out2_Cnew Component 2 (C3) out_C2 Building Reliable Componentbased out3_Cnew End-To-End Deadlines End-to-end deadlines Are set such that the system requirements are fulfilled in the same way as the time budgets are set Should be specified for the input to and output from the component since the WCET cannot be computed since its parts may be executing with different periods Building Reliable Componentbased Specification Of Timing Attributes We specify virtual timing attributes of the composed component, which are used to compute the timing attributes of sub-components, ie: IF virtual period is set to P, THEN the period of a sub-component A should be fA * P AND the period of B is fB * P, WHERE fA and fB are constants for the composed component, which are stored in the component library Building Reliable Componentbased RT Components in Rubus OS Rubus: Is one of a few real-time operating systems currently available which have some concept of components Is a hybrid operating system, in the sense that it supports both pre-emptive static scheduling and fixed priority scheduling Building Reliable Componentbased A Task and Its Interfaces The timing requirements are specified by release-time, deadline, WCET and period Task state information oil pressure speed …. Task: BrakeLeftRight Period: 50 ms Release time: 10 ms Deadline: 30 ms Precedes: outputBrakeValues WCET: 2 ms Building Reliable Componentbased brake left wheel brake right wheel A Composed System in the Red Model of Rubus The task depicted below is required to execute before the outputBrakeValues task, (i.E Task BrakeLeftRight precedes task outputBrakeValues) State information oil pressure speed State information brake left wheel Component: BrakeLeftRight brake right wheel input 1 input 2 Building Reliable Componentbased Component: OutputBrakeValues Composition of Components in Rubus Component: BrakeSystem Task state information pressure oil pressure speed speed Task state information brake left Task: BrakeLeftRight brake right Task: OutputBrakeValues Building Reliable Componentbased ... and challenges of real-time systems Real-time component models Designing component-based real-time systems Composition of components Example: RT components in Rubus OS Building Reliable Componentbased ... analysis for priority-based systems and prerun-time scheduling techniques Building Reliable Componentbased Real-time Component Models Using a standard operating system in a real-time application,... during run-time Deadline: Is the maximum time within which the task must complete its execution with respect to an event Real-time systems are divided into two classes, hard and soft real-time systems