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