RTX (operating system)

RTX is a line of real-time operating system (RTOS) extensions by the firm IntervalZero. They are a software extension or abstraction layer that converts Microsoft Windows operating system into a RTOS.[1] It was the first Windows real-time solution on the market.[2]

RTX, RTX64
DeveloperIntervalZero
OS familyReal-time operating system
Initial release1995 (1995)
Latest releaseRTX 2016 (32-bit)
RTX64 4.x (64-bit)
Platformsx86, x86-64
LicenseProprietary
Official websitewww.intervalzero.com

Overview

RTX real-time software extensions to Windows combines the familiar user experience of Microsoft Windows (rich GUI, extant drivers and software, ...) and the direct control of embedded hardware by providing hard real-time determinism and symmetric multiprocessing (SMP) abilities.[3][4]

The RTX extensions have followed the Windows architecture since Windows NT 3.5.[5] Generally, RTX supports 32-bit Windows; RTX64 supports 64-bit Windows.[6] As of 2015, RTX2016 supports 32-bits, RTX64 4.x supports 64-bits.

The systems are used in different markets such as industrial automation, testbed and simulation, digital audio, digital video, aerospace military, medical devices, electrical grid, electricity generation, and other uses.

Technical details

  • Hardware abstraction layer extension  RTX relies on a Windows hardware abstraction layer (HAL) extension to initialize the RTX-dedicated processors and to provide the real-time subsystem (RTSS) with high resolution timers (up to 1 microsecond). It also provides an interrupt isolation mechanism.
  • Symmetric multiprocessing  Like Windows, RTX is based on a symmetric multiprocessing (SMP) architecture.[7] Depending on the real-time needs, users can choose the number of processors to dedicate to RTX to run real-time processes. RTX can use up to 31 dedicated processors; RTX64 can use up to 63. Users can then scale real-time applications between the RTX dedicated processors.
  • Interrupt management  RTX supports both line based and Message Signaled Interrupts (MSI/MSI-X). Interrupt service thread (IST) latencies are under 10 microseconds.
  • Memory management  The deterministic memory pool allocated for RTX is taken from the system non-paged pool memory. For example, under Windows 7, the amount of non-paged pool is: for 32-bit, 1 GB to 2 GB of the random-access memory (RAM) depending on the configuration; for 64-bit, 75% up to a maximum of 128 GB.
  • Scheduling  One scheduler is used across all real-time processors (SMP architecture). It uses priority-driven (128 real-time priorities) and pre-emptive algorithms to ensure critical thread context switches. Priority promotion mechanisms are provided to avoid priority inversion. Yields to threads of higher priority occur with sub-microsecond timing.
  • Windows interaction  RTX provides separation from Windows. Windows processes cannot interfere with real-time applications. If Windows issues a STOP message or shutdown, real-time applications have the ability to continue running to shutdown safely. Communicating with Windows occurs via RTX providing common inter-process communication (IPC) mechanisms between real-time processes and Windows processes (user processes or kernel drivers). Synchronizing is done via events, mutexes and semaphores; data sharing via shared memory or socket communication.
  • Real time application development  RTX application development is done from Microsoft Visual Studio in C or C++ using a windows-like application programming interface (API). RTX executable are .rtss and DLLs are .rtdll.
  • Network communication  The RTX real-time TCP/IP stack (RT-TCP/IP) supports TCP, UDP, and IP for IPv4 and IPv6. RTX drivers for standard network interface controllers (NICs) are provided with the stack.

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.