Something that is happening right now...as opposed to things that happen later.

Example:
You're listening to a CD, and fiddle with the equalizer.
That means you're modifying the output in real-time.

A real-time (the term without the dash, real time, is deprecated for this level of specificity) system is one where the response time is as much a factor in the correctness of its operation as the functional correctness is. Or, as it was once put to me, "a real time system responds in time to make a difference." Under this definition, an ATM can (usually) be considered real-time. Timeliness is key for a real-time system; no one wants to step on the brakes of their vehicle and have the car wait until it's ready to process that input. Batch data processing may be good for scientists, but it's a poor way to drive a car — or adjust a CD-player.

Real-time systems are usually divided into two categories, soft and hard. Hard real-time systems are systems where a late response is as much of a problem as a wrong response. Soft real-time is then (somewhat amusingly) declared to be everything real-time that is not hard real-time. Hard real-time systems need deterministic scheduling of tasks and bounded latency, since the system must have a known worst-case response time. When software is involved, this often requires a specialized operating system, usually referred to as a real-time operating system or RTOS.

Of course, such is not always the case. Most commercially-available RTOSs are designed to be fast. However, not all applications, even hard real-time ones, require high speed on the response times, merely that the response is guaranteed to occur within a given amount of time. A system requiring human input, for example, will rarely require microsecond response times to that input. Even in fast applications, sometimes it's easier to produce a simplistic RTOS, reinventing the wheel to do so, simply because existing ones are too large or otherwise unsuitable (given that most come without source code, this can be a problem).

Some available RTOSs

  • QNX — Generally x86 oriented; POSIX-compliant, and generally leans towards assuming the presence of a filesystem.
  • VxWorks — Available on many processors; POSIX-compliant, but leans away from the idea of having a filesystem available. Comes with a large number of libraries that provide support for various tasks, including grabbing files via ftp and providing a command shell.
  • PSOS — A real-time operating system with a POSIX feel that seems to walk a middle road between QNX and VxWorks, PSOS supports filesystems simplistically and provides its own set of task, queue, and other primitives. PSOS was recently purchased by Wind River, who owns VxWorks, so its future may be in doubt.
  • RTLinux — A real-time Linux solution that works by putting a preemptive layer under the kernel, meaning that real-time tasks do not have the full set of Linux functionality available.

Log in or register to write something here or to contact authors.