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

4.115
Last change on this file since ea0777e was ea0777e, checked in by Chris Johns <chrisj@…>, on 04/01/16 at 01:20:13

Review changes from Chris Mayfield.

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