Commercial real-time operating systems are complex and feature-laden. Size and complexity require extensive adaptation and long learning times. For the most common real-life requirements, one can write a real-time executive in one afiernoon in any language. Figures 1 and 2 contrast two views of the world of real time systems that of the operating system salesman and that of the author. Commercial products must have every known feature: pre-emptive scheduler, native OS file access, time slicing, message passing, dynamic task creation, priorities, memory allocation, event queues and flags, semaphores, mailboxes, time and calendar functions, etc. Adaptation to your system is required to prevent the kernel from occupying all available memory. This means sysgening and mastering yards of documentation in which ordinary words are used with extraordinary precision and there are significant penalties for misunderstanding. Contempcmq products may have over 50 “system calls” each requiring register setups and/or a communication block with manifold parameters and options. Horror stories abound of hundreds of man-hours spent in study of manuals, adaptation and cusPermisaion h. copy without fee ail or part of this material is granted, provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by p+mniasion of the Association for Computing Machine~. To copy otherwise, or to repubhsh, rquires a fee and/or spec~lc perndasion. @1991 ACM 0-89791-462-7/90/0200-0001 $1.50 tomizing without reaching a stable, useful foundation for development of the real system. The principal gain we seek from the employment of a real time executive is multi-tasking. I suspect that this term is poorly understood even among programmers. If you have a uniprocessor, its program location counter can be at only one location at any time. Consequently, for some people multi-tasking is a deep mystery. Stripped to its simplest terms, multi-tasking is the ability of a computer program to do more than one thing at a time whe,n observed from outside the computer using human time scale, Consider, for example, a simple multi-tasking system which polls a telemetry link, prints alarms on a logging printer and updates a wallboard display. When the telemetry link doesn’t have input ready, the CPU must be made available to the part of the program which sends characters to the logger. When the printer is busy printing a line, the CPU must be available to update the wallboard. Now, to a human watching the system, all three things seem to be progressing at once even though in a microsecond time scale only one task is occupying the CPU. If this is the only reason you need a real time executive, you can write your own in one afternoon in any language.
Unfortunately, ACM prohibits us from displaying non-influential references for this paper.
To see the full reference list, please visit http://dl.acm.org/citation.cfm?id=259978.