Feasible Automatic Reconfigurations of Real-Time OS Tasks

Feasible Automatic Reconfigurations of Real-Time OS Tasks

Hamza Gharsellaoui, Atef Gharbi, Mohamed Khalgui, Samir Ben Ahmed
DOI: 10.4018/978-1-4666-0294-6.ch017
(Individual Chapters)
No Current Special Offers


This research deals with reconfigurable uniprocessor embedded real-time systems to be implemented by different OS tasks that should be independent, synchronous, and periodic, and that should meet functional and temporal properties described in user requirements. The authors define two forms of automatic reconfigurations assumed to be applied at run-time: addition-removal of tasks or just modifications of their temporal parameters; WCET and/or periods. The authors define a new semantic of reconfigurations where a crucial criterion to consider is the automatic improvement of the system’s feasibility at run-time.
Chapter Preview


We define an Intelligent Agent that automatically checks the system’s feasibility after any reconfiguration scenario to verify if all tasks meet the required deadlines. It provides otherwise, for users to remove some tasks, to change temporal parameters of tasks that violate corresponding constraints by new ones, or to take a hybrid real-time scheduling approach that combines the Rate Monotonic (RM) scheduling algorithm and the Earliest Deadline First (EDF) scheduling algorithm. To handle all possible reconfiguration solutions, the proposed agent-based architecture applies automatic reconfigurations, in order to re-obtain the system’s feasibility and to satisfy user requirements. We developed the tool RT-Reconfiguration to support these contributions that we apply to a running example system, and apply the Real-Time Simulator, Cheddar to check the whole system’s behavior. We present in the chapter some simulations of this architecture where we evaluate the agent that we have implemented.

Starting as an aid for industrial embedded applications, Real Time Operating Systems (RTOSs) are now common in a large variety of commercial products. Application areas are, for example telecommunications, automotives, defense industry, medical equipments, and consumer electronics. Common denominators for these embedded systems are real-time constraints. These systems are often safety critical and should immediately react after any environment’s evolution. Imagine, for example the airbag of a car not going off instantly as a crash occurs; reaction time delay would be disastrous. Several interesting academic and industrial research works have been made in recent years to develop reconfigurable systems (A.-L. Gehin and M. Staroswiecki, 2008). We distinguish, in these works, two reconfiguration policies: static and dynamic reconfigurations such that static reconfigurations are applied off-line to apply changes before the system cold starts (C. Angelov, K. Sierszecki, and N. Marian, 2005), whereas dynamic reconfigurations are dynamically applied at run-time. Two cases exist in the last policy: manual reconfigurations to be applied by user (M. N. Rooker, C. Sunder, T. Strasser, 2007), and automatic reconfigurations to be automatically applied by Intelligent Agents (M. Khalgui, 2010); (Al-Safi and V. Vyatkin, 2007).

Key Terms in this Chapter

Intelligent Agent: On the Internet, an intelligent agent (or simply an agent) is a program that gathers information or performs some other service without your immediate presence and on some regular schedule. Typically, an agent program, using parameters you have provided, searches all or some part of the Internet, gathers information you’re interested in, and presents it to you on a daily or other periodic basis. An agent is sometimes called a bot (short for robot).

Embedded Systems: An embedded system is a computer system designed to perform one or a few dedicated functions often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal computer (PC), is designed to be flexible and to meet a wide range of end-user needs. Embedded systems control many devices in common use today.

Run-time Environment: Stands for “Runtime Environment.” As soon as a software program is executed, it is in a runtime state. In this state, the program can send instructions to the computer’s processor and access the computer’s memory (RAM) and other system resources. When software developers write programs, they need to test them in the runtime environment.

Hybrid Algorithm: Any algorithm composed of simpler algorithms.

Processor Utilization Factor: Given a set of n periodic tasks, processor utilization factor U is the fraction of processor time spent in the execution of the task set.

Real-time Constraints: Execution of real-time tasks must satisfy three types of constraints. Timing constraints enforce each task instance to complete its execution before D after the date the task is released (D is a relative deadline); precedence constraints force partially task instance order and the read of current data values; resource constraints represent the exclusive access to shared resources.

Reconfiguration: The reconfiguration means qualitative changes in the structures, functionalities and algorithms of the “Control System” as a response to qualitative changes of control goals, of the controlled “physical system”, or of the environment the control system behaves within.

Real-time OS Tasks: Smallest identifiable and essential piece of a job that serves as a unit of work, and as a means of differentiating between the various components of a project. Often used as an alternative term for activity.

Complete Chapter List

Search this Book: