OpenComRTOS
   HOME

TheInfoList



OR:

OpenComRTOS is a commercial network-centric, formally developed
real-time operating system A real-time operating system (RTOS) is an operating system (OS) for real-time computing applications that processes data and events that have critically defined time constraints. A RTOS is distinct from a time-sharing operating system, such as Unix ...
(RTOS), aimed mainly at the
embedded system An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
market.


Overview

OpenComRTOS was developed using
formal methods In computer science, formal methods are mathematics, mathematically rigorous techniques for the formal specification, specification, development, Program analysis, analysis, and formal verification, verification of software and computer hardware, ...
. It has features like the ability to support heterogeneous multi-processor systems transparently, independent of the processor
word A word is a basic element of language that carries semantics, meaning, can be used on its own, and is uninterruptible. Despite the fact that language speakers often have an intuitive grasp of what a word is, there is no consensus among linguist ...
size (
16-bit 16-bit microcomputers are microcomputers that use 16-bit microprocessors. A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two ...
,
24-bit Notable 24-bit machines include the CDC 924 – a 24-bit version of the CDC 1604, CDC lower 3000 series, SDS 930 and SDS 940, the ICT 1900 series, the Elliott 4100 series, and the Datacraft minicomputers/ Harris H series. The term SWORD ...
,
32-bit In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in a maximum of 32- bit units. Compared to smaller bit widths, 32-bit computers can perform la ...
,
64-bit In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits wide. Also, 64-bit central processing units (CPU) and arithmetic logic units (ALU) are those that are based on processor registers, a ...
), and the communication medium (shared memory, buses, point-to-point links or virtual links on extant communication mechanisms). Typical code size on a 32-bit target processor is about 5 KiBytes. OpenComRTOS is based on the meta-modelling paradigm of ''Interacting Entities''. In the RTOS, the unit of execution is a ''Task'' (a function with its local workspace or stack). Task entities synchronise and communicate using intermediate ''Hubs'' entities that are decoupled from the interacting Tasks. Hubs are formally modelled as ''Guarded Actions''. The current implementation provides the functions of traditional RTOS services like ''events, semaphores, ports, first in first out ( FIFO) stacks, resources, packet pools, and memory pools''. The user can also create custom Hub types. OpenComRTOS uses a uniform architecture with a
kernel Kernel may refer to: Computing * Kernel (operating system), the central component of most operating systems * Kernel (image processing), a matrix used for image convolution * Compute kernel, in GPGPU programming * Kernel method, in machine learnin ...
Task, driver Tasks, and application Tasks, each having a Task input Port. The same interface is used for the Interrupt Service Routines. The underlying architecture relies on the use of prioritised ''
packet switching In telecommunications, packet switching is a method of grouping Data (computing), data into short messages in fixed format, i.e. ''network packet, packets,'' that are transmitted over a digital Telecommunications network, network. Packets consi ...
'' with communication and routing being part of the underlying system services. One of the results is that the source code of the Tasks is independent of the mapping of Tasks and Hubs to the processing nodes in the target system.


History

The initial purpose for developing OpenComRTOS was to provide a software runtime environment supporting a coherent and unified systems engineering methodology based on ''Interacting Entities''. This was originally developed by the Open License Society since 2005, and since 2008 further developed and commercialised by Altreonic. A formerly developed RTOS named VirtuosoE. Verhulst. "Virtuoso: providing sub-microsecond context switching on dsps with a dedicated nanokernel". ''International conference on signal processing applications and technology'', Santa Clara, September 1993.E. Verhulst. "Beyond transputing: fully distributed semantics in Virtuoso’s Virtual Single Processor programming model and its implementation on of-the-shelf parallel DSPs". In ''Proceedings of WoTUG-20: Parallel Programming and Java'', 1997, pages 77–86.E. Verhulst. "Non-sequential processing: bridging the semantic gap left by the von Neumann architecture". In ''Signal Processing Systems SIPS’97'', pages 35–49.E. Verhulst. "The rationale for distributed semantics as a topology independent embedded systems design methodology and its implementation in the Virtuoso RTOS". ''Design Automation for Embedded Systems'', 2002, 6:277–294. . served as a guideline. Virtuoso is a distributed RTOS, developed by Eonic Systems until the technology was sold to Wind River Systems in 2001. Its overall functionality of transparent parallel processing (called the ''Virtual Single Processor'' runtime model) was a major driving force to redevelop it in a better way.E. Verhulst, G. de Jong. "OpenComRTOS: an ultra-small network centric embedded RTOS designed using formal modeling". In ''Proceedings of the 13th international SDL Forum conference on Design for dependable systems, SDL’07'', pages 258–271, Berlin, Heidelberg. Springer-Verlag.Eric Verhulst, Gjalt de Jong, Vitaliy Mezhuyev. "An industrial case: Pitfalls and benefits of applying formal methods to the development of a network-centric RTOS". In Cuellar, J., Maibaum, T., and Sere, K., editors, ''FM 2008: Formal Methods'', volume 5014 of Lecture Notes in Computer Science, pages 411–418. Springer: Berlin, Heidelberg. OpenComRTOS is conceptually a fourth generation of Virtuoso although it was a clean room development. The Virtuoso RTOS had its origin in the pioneering
Inmos Inmos International plc (trademark INMOS) and two operating subsidiaries, Inmos Limited (UK) and Inmos Corporation (US), was a British semiconductor company founded by Iann Barron, Richard Petritz, and Paul Schroeder in July 1978. Inmos Limited ...
Transputer The transputer is a series of pioneering microprocessors from the 1980s, intended for parallel computing. To support this, each transputer had its own integrated memory and serial communication links to exchange data with other transputers. ...
, a partial hardware implementation of C.A.R. Hoare's
communicating sequential processes In computer science, communicating sequential processes (CSP) is a formal language for describing patterns of interaction in concurrent systems. It is a member of the family of mathematical theories of concurrency known as process algebras, or p ...
(CSP) process algebra. Most challenging applications: # Oil exploration system with 12,000 processors featuring microcontrollers, fixed point and floating point DSPs and a Linux host in a single network. # Sonar system with 1,600 floating point DSPs. # Rosetta and Giotto ESA space missions. # Converting a 400,000 lines application running on a Portable Operating System Interface (
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
) style RTOS to OpenComRTOS.


Formal development approach

For the development of OpenComRTOS a systematic but iterative engineering process was followed. Requirements and specifications being defined, models were developed in
Leslie Lamport Leslie B. Lamport (born February 7, 1941) is an American computer scientist and mathematician. Lamport is best known for his seminal work in distributed systems, and as the initial developer of the document preparation system LaTeX and the author ...
's
temporal logic of actions Temporal logic of actions (TLA) is a logic developed by Leslie Lamport, which combines temporal logic with a logic of actions. It is used to describe behaviours of concurrent and distributed systems. It is the logic underlying the specificati ...
(TLA+) and then model checked with the corresponding TLC model checker. Based on these models, the code was written and then a third person created new models in TLA+ to verify that the implementation was still isomorphic. The timer and associated time-out functionality for services were model checked using the
Uppaal Model Checker UPPAAL is an integrated tool environment for modeling, validation and verification of real-time systems modeled as networks of timed automata, extended with data types (bounded integers, arrays etc.). It has been used in at least 17 case studi ...
. In 2011 Springer published the book on the OpenComRTOS project.Formal Development of a Network-Centric RTOS: Software Engineering for Reliable Embedded Systems
by Eric Verhulst, Raymond T. Boute, José Miguel Sampaio Faria and Bernhard H.C. Sputh () 1st Edition., 2011, XVII, 219 p. 54 illus


OpenComRTOS Designer: development environment and tools

OpenComRTOS comes with many tools. ''Visual Designer'' is a visual modelling environment whereby the user specifies node topology and application topology graphically. From these diagrams, an application specific runtime model is generated. Application specific code is provided in ANSI C for each task. Runtime execution, and interprocessor interactions, are visualised using the ''Event Tracer''. A ''System Inspector'' allows reading out and modifying the data structures. Further modules are hostserver modules (these allow any task access to the host node services) and a ''Safe Virtual Machine for C''. The latter requires about 3 KiBytes (10 KiBytes for program and data) and allows dynamically downloading binary-compiled C code at runtime.


Portability

OpenComRTOS was developed for embedded systems and is written in portable
ANSI C ANSI C, ISO C, and Standard C are successive standards for the C programming language published by the American National Standards Institute (ANSI) and ISO/IEC JTC 1/SC 22/WG 14 of the International Organization for Standardization (ISO) and the ...
, except the context switch and ISR interfaces. OpenComRTOS has been ported to the following targets: ''Freescale PowerPC, Texas Instruments C66xx DSP, MLX16, ARM Cortex M3/4, Xilinx MicroBlaze, LEON3, NXP CoolFlux DSP and to MS-Windows and Linux.'' The latter versions allow transparent integration of host nodes and serve as well cross development and simulation systems. As the RTOS kernel is identical for single or multi-processor nodes, supporting a multi-processor system requires only to write a small task level driver that can send and receives Packets. OpenComRTOS is made available in binary, source code and Open Technology licenses. The latter provides formal models, design documents, source code and test suites.


See also

*
Comparison of real-time operating systems This is a list of real-time operating systems (RTOSs). This is an operating system in which the time taken to process an input stimulus is less than the time lapsed until the next input stimulus of the same type. References External links ...


References


External links

* , Altreonic {{Microkernel 2008 software Microkernels Real-time operating systems Embedded operating systems ARM operating systems