source: rtems-docs/user/overview/index.rst @ 489740f

Last change on this file since 489740f was 489740f, checked in by Chris Johns <chrisj@…>, on 05/20/16 at 02:47:09

Set SPDX License Identifier in each source file.

  • Property mode set to 100644
File size: 6.4 KB
[489740f]1.. comment SPDX-License-Identifier: CC-BY-SA-4.0
4.. _overview:
[c05e43b]9Welcome to the :ref:term:`RTEMS` User Manual.
[ea0777e]11This document covers all the topics required as a user of RTEMS to use the
12RTEMS operating system.
[c05e43b]14RTEMS, Real-Time Executive for Multiprocessor Systems, is a real-time executive
15(kernel) which provides a high performance environment for embedded
16applications including the following features:
18.. sidebar:: Developers
[ea0777e]20  Developers should look at the :r:url:`devel` for technical information. The
[5daabd2]21  design and development of RTEMS is located there.
[c05e43b]23- multitasking capabilities
25- homogeneous and heterogeneous multiprocessor systems
27- event-driven, priority-based, preemptive scheduling
29- optional rate monotonic scheduling
31- intertask communication and synchronization
33- priority inheritance
35- responsive interrupt management
37- dynamic memory allocation
39- high level of user configurability
[a34c157]41RTEMS provides features found in modern operating systems:
43- file systems
45- networking
47- USB
[a34c157]49- permanent media such as flash disks, cards and USB devices
51Real-time Application Systems
54Real-time application systems are a special class of computer applications.
55They have a complex set of characteristics that distinguish them from other
56software problems.  Generally, they must adhere to more rigorous requirements.
57The correctness of the system depends not only on the results of computations,
58but also on the time at which the results are produced.  The most important and
59complex characteristic of real-time application systems is that they must
60receive and respond to a set of external stimuli within rigid and critical time
61constraints referred to as deadlines.  Systems can be buried by an avalanche of
62interdependent, asynchronous or cyclical event streams.
64Deadlines can be further characterized as either hard or soft based upon the
65value of the results when produced after the deadline has passed.  A deadline
[ea0777e]66is hard if the results have no value after the deadline has passed, or a
67catastophic event results from their intended use if not completed on time.  In
68contrast, results produced after a soft deadline may still have some value.
70Another distinguishing requirement of real-time application systems is the
71ability to coordinate or manage a large number of concurrent activities. Since
72software is a synchronous entity, this presents special problems.  One
73instruction follows another in a repeating synchronous cycle.  Even though
74mechanisms have been developed to allow for the processing of external
75asynchronous events, the software design efforts required to process and manage
76these events and tasks are growing more complicated.
78The design process is complicated further by spreading this activity over a set
79of processors instead of a single processor. The challenges associated with
80designing and building real-time application systems become very complex when
81multiple processors are involved.  New requirements such as interprocessor
82communication channels and global resources that must be shared between
83competing processors are introduced.  The ramifications of multiple processors
84complicate each and every characteristic of a real-time system.
86Real-time Executive
[ea0777e]89Fortunately, real-time operating systems, or real-time executives, serve as a
[c05e43b]90cornerstone on which to build the application system.  A real-time multitasking
91executive allows an application to be cast into a set of logical, autonomous
92processes or tasks which become quite manageable.  Each task is internally
93synchronous, but different tasks execute independently, resulting in an
94asynchronous processing stream.  Tasks can be dynamically paused for many
95reasons resulting in a different task being allowed to execute for a period of
96time.  The executive also provides an interface to other system components such
97as interrupt handlers and device drivers.  System components may request the
98executive to allocate and coordinate resources, and to wait for and trigger
99synchronizing conditions.  The executive system calls effectively extend the
100CPU instruction set to support efficient multitasking.  By causing tasks to
101travel through well-defined state transitions, system calls permit an
102application to demand-switch between tasks in response to real-time events.
[ea0777e]104By properly grouping stimuli responses into separate tasks a system can now
105asynchronously switch between independent streams of execution. This allows the
106system to directly respond to external stimuli as they occur, as well as meet
107critical performance specifications that are typically measured by guaranteed
108response time and transaction throughput.  The multiprocessor extensions of
109RTEMS provide the features necessary to manage the extra requirements
110introduced by a system distributed across several processors.  It removes the
111physical barriers of processor boundaries from the world of the system
112designer, enabling more critical aspects of the system to receive the required
113attention. Such a system, based on an efficient real-time, multiprocessor
114executive, is a more realistic model of the outside world or environment for
115which it is designed.  As a result, the system will always be more logical,
116efficient, and reliable.
118By using the directives provided by RTEMS, the real-time applications developer
119is freed from the problem of controlling and synchronizing multiple tasks and
120processors.  In addition, one need not develop, test, debug, and document
121routines to manage memory, pass messages, or provide mutual exclusion.  The
122developer is then able to concentrate solely on the application.  By using
123standard software components, the time and cost required to develop
124sophisticated real-time applications is significantly reduced.
126Open Source
[ea0777e]129RTEMS is an open source operating system and an open source project. As a user,
130you have access to all the source code. We encourage you to work with the
131source code and integrate the provided processes used to build tools, the
132kernel and any 3rd party libraries into your project's configuration management
133processes. The RTEMS project is always improving the way it develivers the
134kernel to you and so your feedback is important.
[c05e43b]136What we used in the RTEMS project to develop and maintain RTEMS does not
[ea0777e]137dictate what you use to develop and maintain your project. You can, and should,
[c05e43b]138select the work-flow that best suites the demands of your project and what you
139are delivering.
Note: See TracBrowser for help on using the repository browser.