source: rtems/doc/user/overview.t @ a26834d2

4.115
Last change on this file since a26834d2 was a26834d2, checked in by Joel Sherrill <joel.sherrill@…>, on 02/25/13 at 23:34:04

user/overview.t: Add missing chapters to overview

  • Property mode set to 100644
File size: 19.7 KB
Line 
1@c
2@c  COPYRIGHT (c) 1988-2008.
3@c  On-Line Applications Research Corporation (OAR).
4@c  All rights reserved.
5
6@c
7@c  This chapter is missing the following figures:
8@c
9@c     Figure 1-1  RTEMS Application Architecture
10@c     Figure 1-2  RTEMS Internal Architecture
11@c
12
13@chapter Overview
14
15@section Introduction
16
17RTEMS, Real-Time Executive for Multiprocessor Systems, is a
18real-time executive (kernel) which provides a high performance
19environment for embedded military applications including the
20following features:
21
22@itemize @bullet
23@item multitasking capabilities
24@item homogeneous and heterogeneous multiprocessor systems
25@item event-driven, priority-based, preemptive scheduling
26@item optional rate monotonic scheduling
27@item intertask communication and synchronization
28@item priority inheritance
29@item responsive interrupt management
30@item dynamic memory allocation
31@item high level of user configurability
32@end itemize
33
34This manual describes the usage of RTEMS for
35applications written in the @value{LANGUAGE} programming language.  Those
36implementation details that are processor dependent are provided
37in the Applications Supplement documents.  A supplement
38document which addresses specific architectural issues that
39affect RTEMS is provided for each processor type that is
40supported.
41
42@section Real-time Application Systems
43
44Real-time application systems are a special class of
45computer applications.  They have a complex set of
46characteristics that distinguish them from other software
47problems.  Generally, they must adhere to more rigorous
48requirements.  The correctness of the system depends not only on
49the results of computations, but also on the time at which the
50results are produced.  The most important and complex
51characteristic of real-time application systems is that they
52must receive and respond to a set of external stimuli within
53rigid and critical time constraints referred to as deadlines.
54Systems can be buried by an avalanche of interdependent,
55asynchronous or cyclical event streams.
56
57Deadlines can be further characterized as either hard
58or soft based upon the value of the results when produced after
59the deadline has passed.  A deadline is hard if the results have
60no value or if their use will result in a catastrophic event.
61In contrast, results which are produced after a soft deadline
62may have some value.
63
64Another distinguishing requirement of real-time
65application systems is the ability to coordinate or manage a
66large number of concurrent activities. Since software is a
67synchronous entity, this presents special problems.  One
68instruction follows another in a repeating synchronous cycle.
69Even though mechanisms have been developed to allow for the
70processing of external asynchronous events, the software design
71efforts required to process and manage these events and tasks
72are growing more complicated.
73
74The design process is complicated further by
75spreading this activity over a set of processors instead of a
76single processor. The challenges associated with designing and
77building real-time application systems become very complex when
78multiple processors are involved.  New requirements such as
79interprocessor communication channels and global resources that
80must be shared between competing processors are introduced.  The
81ramifications of multiple processors complicate each and every
82characteristic of a real-time system.
83
84@section Real-time Executive
85
86Fortunately, real-time operating systems or real-time
87executives serve as a cornerstone on which to build the
88application system.  A real-time multitasking executive allows
89an application to be cast into a set of logical, autonomous
90processes or tasks which become quite manageable.  Each task is
91internally synchronous, but different tasks execute
92independently, resulting in an asynchronous processing stream.
93Tasks can be dynamically paused for many reasons resulting in a
94different task being allowed to execute for a period of time.
95The executive also provides an interface to other system
96components such as interrupt handlers and device drivers.
97System components may request the executive to allocate and
98coordinate resources, and to wait for and trigger synchronizing
99conditions.  The executive system calls effectively extend the
100CPU instruction set to support efficient multitasking.  By
101causing tasks to travel through well-defined state transitions,
102system calls permit an application to demand-switch between
103tasks in response to real-time events.
104
105By proper grouping of responses to stimuli into
106separate tasks, a system can now asynchronously switch between
107independent streams of execution, directly responding to
108external stimuli as they occur.  This allows the system design
109to meet critical performance specifications which are typically
110measured by guaranteed response time and transaction throughput.
111The multiprocessor extensions of RTEMS provide the features
112necessary to manage the extra requirements introduced by a
113system distributed across several processors.  It removes the
114physical barriers of processor boundaries from the world of the
115system designer, enabling more critical aspects of the system to
116receive the required attention. Such a system, based on an
117efficient real-time, multiprocessor executive, is a more
118realistic model of the outside world or environment for which it
119is designed.  As a result, the system will always be more
120logical, efficient, and reliable.
121
122By using the directives provided by RTEMS, the
123real-time applications developer is freed from the problem of
124controlling and synchronizing multiple tasks and processors.  In
125addition, one need not develop, test, debug, and document
126routines to manage memory, pass messages, or provide mutual
127exclusion.  The developer is then able to concentrate solely on
128the application.  By using standard software components, the
129time and cost required to develop sophisticated real-time
130applications is significantly reduced.
131
132@section RTEMS Application Architecture
133
134One important design goal of RTEMS was to provide a
135bridge between two critical layers of typical real-time systems.
136As shown in the following figure, RTEMS serves as a buffer between the
137project dependent application code and the target hardware.
138Most hardware dependencies for real-time applications can be
139localized to the low level device drivers.
140
141@float Figure,fig:RTEMS-App-Arch
142@caption{RTEMS Application Architecture}
143
144@ifset use-ascii
145@example
146@group
147      +-----------------------------------------------------------+
148      |             Application Dependent Software                |
149      |        +----------------------------------------+         |
150      |        |    Standard Application Components     |         |
151      |        |                          +-------------+---+     |
152      |    +---+-----------+              |                 |     |
153      |    | Board Support |              |      RTEMS      |     |
154      |    |    Package    |              |                 |     |
155      +----+---------------+--------------+-----------------+-----|
156      |                      Target Hardware                      |
157      +-----------------------------------------------------------+
158@end group
159@end example
160@end ifset
161
162@ifset use-tex
163@sp 1
164@tex
165\centerline{\vbox{\offinterlineskip\halign{
166\vrule#&
167\hbox to 0.50in{\enskip\hfil#\hfil}&
168\vrule#&
169\hbox to 0.50in{\enskip\hfil#\hfil}&
170\vrule#&
171\hbox to 0.75in{\enskip\hfil#\hfil}&
172\vrule#&
173\hbox to 0.75in{\enskip\hfil#\hfil}&
174\vrule#&
175\hbox to 0.75in{\enskip\hfil#\hfil}&
176\vrule#&
177\hbox to 0.75in{\enskip\hfil#\hfil}&
178\vrule#&
179\hbox to 0.50in{\enskip\hfil#\hfil}&
180\vrule#&
181\hbox to 0.50in{\enskip\hfil#\hfil}&
182\vrule#\cr
183\multispan{17}\hrulefill\cr
184% to force all columns to desired width
185& \enskip && \enskip && \enskip && \enskip &&
186    \enskip && \enskip &&\enskip &&\enskip &\cr
187% For debugging columns
188%& \enskip 0&& \enskip 1&& \enskip 2&& \enskip 3&&
189%    \enskip 4&& \enskip 5&&\enskip 6&&\enskip 7&\cr
190\strut&\multispan{15}&\cr
191&\multispan{15}\hfil Application Dependent Software\hfil&\cr
192\strut&\multispan{15}&\cr
193&\multispan{2}&&\multispan{8}\hrulefill &\multispan{2}&\cr
194\strut&\multispan{2}&&&\multispan{7}&&\multispan{2}&&\cr
195&\multispan{2}&&&\multispan{7}\hfil Standard Application Components\hfil&
196    &\multispan{2}&&\cr
197\strut&\multispan{2}&&&\multispan{7}&&\multispan{2}&&\cr
198&&\multispan{5}\hrulefill&&\multispan{7}\hrulefill&&\cr
199\strut&&&\multispan{3}                  &&&&\multispan{5}&&&\cr
200&&&\multispan{3}\hfil Device\hfil&&&&\multispan{5}\hfil RTEMS\hfil&&&\cr
201&&&\multispan{3}\hfil Drivers\hfil&&&&\multispan{5}&&&\cr
202\strut&&&\multispan{3}                  &&&&\multispan{5}&&&\cr
203\multispan{17}\hrulefill\cr
204\strut&\multispan{15}&\cr
205&\multispan{15}\hfil Target Hardware\hfil&\cr
206\strut&\multispan{15}&\cr
207\multispan{17}\hrulefill\cr
208}}\hfil}
209@end tex
210@end ifset
211
212@ifset use-html
213@html
214<IMG SRC="rtemsarc.png" WIDTH=500 HEIGHT=300 ALT="RTEMS Application Architecture">
215@end html
216@end ifset
217@end float
218
219The RTEMS I/O interface manager provides an efficient tool for incorporating
220these hardware dependencies into the system while simultaneously
221providing a general mechanism to the application code that
222accesses them.  A well designed real-time system can benefit
223from this architecture by building a rich library of standard
224application components which can be used repeatedly in other
225real-time projects.
226
227@section RTEMS Internal Architecture
228
229RTEMS can be viewed as a set of layered components that work in
230harmony to provide a set of services to a real-time application
231system.  The executive interface presented to the application is
232formed by grouping directives into logical sets called resource managers.
233Functions utilized by multiple managers such as scheduling,
234dispatching, and object management are provided in the executive
235core.  The executive core depends on a small set of CPU dependent routines.
236Together these components provide a powerful run time
237environment that promotes the development of efficient real-time
238application systems.  The following figure illustrates this organization:
239
240@float Figure,fig:rtems-layers
241@caption{RTEMS Layered Architecture}
242
243@ifset use-ascii
244@example
245@group
246           +-----------------------------------------------+
247           |          RTEMS Executive Interface            |
248           +-----------------------------------------------+
249           |                 RTEMS Core                    |
250           +-----------------------------------------------+
251           |              CPU Dependent Code               |
252           +-----------------------------------------------+
253@end group
254@end example
255@end ifset
256
257@ifset use-tex
258@center{@image{rtemspie,4in,3in, RTEMS Layered Architecture}}
259@tex
260@end tex
261@end ifset
262
263@ifset use-html
264@html
265<IMG SRC="rtemspie.png" WIDTH=500 HEIGHT=300 ALT="RTEMS Layered Architecture">
266@end html
267@end ifset
268@end float
269
270Subsequent chapters present a detailed description of the capabilities
271provided by each of the following RTEMS managers:
272
273@itemize @bullet
274@item initialization
275@item task
276@item interrupt
277@item clock
278@item timer
279@item semaphore
280@item message
281@item event
282@item signal
283@item partition
284@item region
285@item dual ported memory
286@item I/O
287@item fatal error
288@item rate monotonic
289@item user extensions
290@item multiprocessing
291@end itemize
292
293@section User Customization and Extensibility
294
295As thirty-two bit microprocessors have decreased in
296cost, they have become increasingly common in a variety of
297embedded systems.  A wide range of custom and general-purpose
298processor boards are based on various thirty-two bit processors.
299RTEMS was designed to make no assumptions concerning the
300characteristics of individual microprocessor families or of
301specific support hardware.  In addition, RTEMS allows the system
302developer a high degree of freedom in customizing and extending
303its features.
304
305RTEMS assumes the existence of a supported
306microprocessor and sufficient memory for both RTEMS and the
307real-time application.  Board dependent components such as
308clocks, interrupt controllers, or I/O devices can be easily
309integrated with RTEMS.  The customization and extensibility
310features allow RTEMS to efficiently support as many environments
311as possible.
312
313@section Portability
314
315The issue of portability was the major factor in the
316creation of RTEMS.  Since RTEMS is designed to isolate the
317hardware dependencies in the specific board support packages,
318the real-time application should be easily ported to any other
319processor.  The use of RTEMS allows the development of real-time
320applications which can be completely independent of a particular
321microprocessor architecture.
322
323@section Memory Requirements
324
325Since memory is a critical resource in many real-time
326embedded systems, RTEMS was specifically designed to automatically
327leave out all services that are not required from the run-time
328environment.  Features such as networking, various fileystems,
329and many other features are completely optional.  This allows
330the application designer the flexibility to tailor RTEMS to most
331efficiently meet system requirements while still satisfying even
332the most stringent memory constraints.  As a result, the size
333of the RTEMS executive is application dependent.
334
335RTEMS requires RAM to manage each instance of an RTEMS object
336that is created.  Thus the more RTEMS objects an application
337needs, the more memory that must be reserved.  See
338@ref{Configuring a System Determining Memory Requirements} for
339more details.
340
341RTEMS utilizes memory for both code and data space.
342Although RTEMS' data space must be in RAM, its code space can be
343located in either ROM or RAM.
344
345@section Audience
346
347This manual was written for experienced real-time
348software developers.  Although some background is provided, it
349is assumed that the reader is familiar with the concepts of task
350management as well as intertask communication and
351synchronization.  Since directives, user related data
352structures, and examples are presented in @value{LANGUAGE}, a basic
353understanding of the @value{LANGUAGE} programming language
354is required to fully
355understand the material presented.  However, because of the
356similarity of the Ada and C RTEMS implementations, users will
357find that the use and behavior of the two implementations is
358very similar.  A working knowledge of the target processor is
359helpful in understanding some of RTEMS' features.  A thorough
360understanding of the executive cannot be obtained without
361studying the entire manual because many of RTEMS' concepts and
362features are interrelated.  Experienced RTEMS users will find
363that the manual organization facilitates its use as a reference
364document.
365
366@section Conventions
367
368The following conventions are used in this manual:
369
370@itemize @bullet
371@item Significant words or phrases as well as all directive
372names are printed in bold type.
373
374@item Items in bold capital letters are constants defined by
375RTEMS.  Each language interface provided by RTEMS includes a
376file containing the standard set of constants, data types, and
377@value{STRUCTURE} definitions which can be incorporated into the user
378application.
379
380@item A number of type definitions are provided by RTEMS and
381can be found in rtems.h.
382
383@item The characters "0x" preceding a number indicates that
384the number is in hexadecimal format.  Any other numbers are
385assumed to be in decimal format.
386@end itemize
387
388@section Manual Organization
389
390This first chapter has presented the introductory and
391background material for the RTEMS executive.  The remaining
392chapters of this manual present a detailed description of RTEMS
393and the environment, including run time behavior, it creates for
394the user.
395
396A chapter is dedicated to each manager and provides a
397detailed discussion of each RTEMS manager and the directives
398which it provides.  The presentation format for each directive
399includes the following sections:
400
401@itemize @bullet
402@item Calling sequence
403@item Directive status codes
404@item Description
405@item Notes
406@end itemize
407
408The following provides an overview of the remainder
409of this manual:
410
411@table @asis
412@item Chapter 2:
413Key Concepts: presents an introduction to the ideas which are common
414across multiple RTEMS managers.
415
416@item Chapter 3:
417RTEMS Data Types: describes the fundamental data types shared
418by the services in the RTEMS Classic API.
419
420@item Chapter 4:
421Scheduling Concepts: details the various RTEMS scheduling algorithms
422and task state transitions.
423
424@item Chapter 5:
425Initialization Manager: describes the functionality and directives
426provided by the Initialization Manager.
427
428@item Chapter 6:
429Task Manager: describes the functionality and directives provided
430by the Task Manager.
431
432@item Chapter 7:
433Interrupt Manager: describes the functionality and directives
434provided by the Interrupt Manager.
435
436@item Chapter 8:
437Clock Manager: describes the functionality and directives
438provided by the Clock Manager.
439
440@item Chapter 9:
441Timer Manager: describes the functionality and directives provided
442by the Timer Manager.
443
444@item Chapter 10:
445Rate Monotonic Manager: describes the functionality and directives
446provided by the Rate Monotonic Manager.
447
448@item Chapter 11:
449Semaphore Manager: describes the functionality and directives
450provided by the Semaphore Manager.
451
452@item Chapter 12:
453Barrier Manager: describes the functionality and directives
454provided by the Barrier Manager.
455
456@item Chapter 13:
457Message Manager: describes the functionality and directives
458provided by the Message Manager.
459
460@item Chapter 14:
461Event Manager: describes the
462functionality and directives provided by the Event Manager.
463
464@item Chapter 15:
465Signal Manager: describes the
466functionality and directives provided by the Signal Manager.
467
468@item Chapter 16:
469Partition Manager: describes the
470functionality and directives provided by the Partition Manager.
471
472@item Chapter 17:
473Region Manager: describes the
474functionality and directives provided by the Region Manager.
475
476@item Chapter 18:
477Dual-Ported Memory Manager: describes
478the functionality and directives provided by the Dual-Ported
479Memory Manager.
480
481@item Chapter 19:
482I/O Manager: describes the
483functionality and directives provided by the I/O Manager.
484
485@item Chapter 20:
486Fatal Error Manager: describes the functionality and directives
487provided by the Fatal Error Manager.
488
489@item Chapter 21:
490Board Support Packages: defines the
491functionality required of user-supplied board support packages.
492
493@item Chapter 22:
494User Extensions: shows the user how to
495extend RTEMS to incorporate custom features.
496
497@item Chapter 23:
498Configuring a System: details the process by which one tailors RTEMS
499for a particular single-processor or multiprocessor application.
500
501@item Chapter 24:
502Multiprocessing Manager: presents a
503conceptual overview of the multiprocessing capabilities provided
504by RTEMS as well as describing the Multiprocessing
505Communications Interface Layer and Multiprocessing Manager
506directives.
507
508@item Chapter 25:
509Stack Bounds Checker: presents the capabilities of the RTEMS
510task stack checker which can report stack usage as well as detect
511bounds violations.
512
513@item Chapter 26:
514CPU Usage Statistics: presents the capabilities of the CPU Usage
515statistics gathered on a per task basis along with the mechanisms
516for reporting and resetting the statistics.
517
518@item Chapter 27:
519Object Services: presents a collection of helper services useful
520when manipulating RTEMS objects. These include methods to assist
521in obtaining an object's name in printable form. Additional services
522are provided to decompose an object Id and determine which API
523and object class it belongs to.
524
525@item Chapter 28:
526Chains: presents the methods provided to build, iterate and
527manipulate doubly-linked chains. This manager makes the
528chain implementation used internally by RTEMS to user space
529applications.
530
531@item Chapter 29:
532Timespec Helpers: presents a set of helper services useful
533when manipulating POSIX @code{struct timespec} instances.
534
535@item Chapter 30:
536Constant Bandwidth Server Scheduler API::
537
538@item Chapter 31:
539Directive Status Codes: provides a definition of each of the
540directive status codes referenced in this manual.
541
542@item Chapter 32:
543Example Application: provides a template for simple RTEMS applications.
544
545@item Chapter 33:
546Glossary: defines terms used throughout this manual.
547
548@end table
549
550
Note: See TracBrowser for help on using the repository browser.