RTX (operating system)
|OS family||Real-time operating system|
|Latest release||RTX 2016 (32-bit) |
RTX64 3.5 (64-bit)
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. It was the first Windows real-time solution on the market.
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.
The RTX extensions have followed the Windows architecture since Windows NT 3.5. Generally, RTX supports 32-bit Windows; RTX64 supports 64-bit Windows. As of 2015, RTX2016 supports 32-bits, RTX64 3.0 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.
- 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. 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.
- Windows as a RTOS
- Real-Time for Windows Support
- Real-time with RTX on Microsoft Windows
- Software tools: IntervalZero releases two versions of multicore RTX Real-Time
- The RTX real-time subsystem for Windows NT
- IntervalZero Releases RTX64 2014 real-time software; adds monitoring infrastructure, additional debug capabilities
- RTX on multi-core-based Intel processors