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