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

4.115
Last change on this file since c05e43b was c05e43b, checked in by Chris Johns <chrisj@…>, on 03/09/16 at 04:37:31

User manual, devel install and windows install.

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