Originally Published on Computer Jagat Magazine
Shorif Uddin* and M. Sarowar*
Generally, a real time system is a real time program that is very like a non-sequential program. It has to manage peripherals, and follow some mechanism. But a real time program should include a supplementary issue: timing constraints imposed by the fact a real time program controls an external system.
Real time applications are characterized by the strict requirements they impose on the timing behavior of the system. System ensuring that those timing requirements are met called real time systems. We will exclude transactions system (seat reservation, banking) from real time systems. Though transaction systems are done in real time, but without any strict timing constraint. A computer guided air-missile is a real time system. Current fields of applications include scientific instrumentation, medicine, industry, cars and military. For example, a real time system may drive and monitor an astronomical telescope or an X-ray medical scanner, control an industrial production line or a car motor and air navigation systems, as well as drive a weapon delivery system or control an entire nuclear power plant.
Timing and controls are the master words in the real time systems world. In general, any system meeting external constraints and able to solve these constraints during its execution, without any specification on the architecture of the system, is a real time system.
Real time system may be divided in two groups. The hard real time system for which a failure to meeting the timing constraints is considered as a major failure or crash of the system. Others can tolerate that means will give an error or warning on such failure, without stopping are called soft real time system.
2. Implementation Issues:
To program a real time system, we need a programming language that gives the facilities to handle the timing constraint imposed by the system provides real time Input-Output access. For multi-machines real time applications, operating system is a real problem. The traditional approach to multitasking operating system design is to split the time in slices and to attribute those slices to the different computing resources demanding applications. This kind of management is called time sharing. Time sharing does not address correcting the problems art sing in real time system. So, the execution of the real time applications has to be supported by correct environment, which is obtained through a real time operating system. These real time operating systems have to manage timing and interactions problems. Different mechanisms allow them to handle timing constraints correctly. They also contain mechanisms to solve the process scheduling problems. Another aspect treats the communications between’ tasks, with semaphores (allow unrelated process to synchronize execution) and shared data zones.
3. About time:
Time handling is the most important issue in the real time systems. Time handling includes: Knowledge of the time, Time representation concepts, Time constraints representation.
Time is given by clocks. A clock is characterized by its correctness, which defines the quality of the knowledge of time, and by its accuracy, which defines the way the clock drifts.
A standard clock is one for which the relation is: C(t) = t, confirmed.
A clock is correct at the time t0, if C(t0) = to.
A clock is accurate at time to, if
____ =l,at t=t0
Time representation in real time systems should be sufficiently well-designed to take into account the properties of the system, and to allow a precise definition of the characteristics of the time constraints. Each characteristics operating system uses a system clock to manage the timing synchronization between processes. This clock gives interrupts to the system at a certain rate that can usually be modified and duration about some tens of milliseconds. This gives the granularity for scheduling process.
There is another. Clock used for time measurement, which can also be used to drive a programmable timer for scheduling events at certain time. This is called the real time clock and has a granularity of < about microseconds. A real time operating system will usually use this clock to synchronize the processes or manage timing constraints. A real time system has to deal with the arrival of time constraint requests, i.e. the invocation of processes to be executed in due time.
The system has to allocate the resources to meet specifications, in order that the process can begin at a specified time, and be completed at another specified time. The minimum definition of a timing constraint is the triple (three variable):
(Id, T begin (condition 1),
Tend (Condition 2)
Where, Id is the name or number of the process
Tbegin (condition 1) is the starting time of the process.
Tend (condition2) is the completion time of the process.
Time constraint synchronization mechanism is another important issue in real time systems. One of the popular synchronization mechanism is interrupt driven mechanism. An interrupt is a signal occurring synchronously and triggering a service routine. This service routine is called by the interrupt handler, which identifies the interrupt, and executes appropriate routine. The routine has to be carefully designed to meet the time constraints on its duration, deadline and frequency.
4. Design Issues:
The design of any system should begin by a requirement specification phase, followed by a design phase itself. These phases will be followed by implementation phase, testing, etc. The design phase can also be decomposed in a preliminary and detail phase. The different phases and sub-phases may overlap each other in time.
Real time systems can not be programmed with traditional operating system. ‘Ada’ and ‘Pearl’ are the high-level real time languages used in industrial control environments because these have been implemented on a wide range of computers. More over, real time systems can be programmed with classical C languages if there is a library of functions implementing the real time mechanisms.
‘Portos’ (Portable real time operating system) is the most fascinating real time operating system dedicated to real time applications for personal computers. ‘Portos’ controls the execution of application programs written in ‘Pearl’, ‘Ada’ and C. ‘Portos’ can be installed in all conventional microprocessor-based personal computers such as IBM PC-XT, IBM PC-AT. Memory requirements of ‘Protos’ depend on application programs. Normally, ‘Portos’ needs memory of 4-100 KB. Performance measurement of a real time operating system depends on the time requirement to react to external events. On an IBM-AT, ‘Portos’ ensures the processing of interrupts within less than 20 ms.
The importance of real time systems is rapidly growing. Such systems are highly promising for well being of people. In today’s competitive world, the prosperity of nations are now depending on the application and efficient utilization of computer integrated manufacturing systems, of which real time systems are an essential and decisive part.
We hope that our future system engineers will engage themselves in research, development and application real time systems and thus be able to effectively^ strengthen the industries of our country.
 Paul Bartholdi—Denis Megevand, “Software Design” in College on Microprocessor-Based Real Time Control, ICTP, Trieste, Italy, September 1994.
 Wolfgang A. Halang, “A curriculum for real time computer and control systems engineering”, IEEE Transactions on Education, Vol. 33, No. 2, May 1990.
* Asst. Prof. Department of Electronics and Computer Science
** Lecturer Department of Electronics and Computer Science