home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / realtime-computing / faq next >
Encoding:
Internet Message Format  |  2004-05-09  |  43.8 KB

  1. Path: senator-bedfellow.mit.edu!dreaderd!not-for-mail
  2. Message-ID: <realtime-computing/faq_1084010824@rtfm.mit.edu>
  3. Supersedes: <realtime-computing/faq_1081511793@rtfm.mit.edu>
  4. Expires: 19 Jun 2004 10:07:04 GMT
  5. X-Last-Updated: 2002/05/16
  6. From: <b.van.beneden@dedicated-systems.com>
  7. Organization: none
  8. Newsgroups: comp.realtime,news.answers,comp.answers
  9. Subject: Comp.realtime: Frequently Asked Questions (FAQs) (version 3.6)
  10. Followup-To: poster
  11. Reply-To: b.van.beneden@dedicated-systems.com
  12. Summary: Answers to real-time frequently asked questions (periodic posting)
  13. X-Posting-Frequency: every 4 weeks
  14. Organisation: RTUSI (http://www.rtusi.com)
  15. Approved: news-answers-request@MIT.EDU
  16. Originator: faqserv@penguin-lust.MIT.EDU
  17. Date: 08 May 2004 10:08:19 GMT
  18. Lines: 953
  19. NNTP-Posting-Host: penguin-lust.mit.edu
  20. X-Trace: 1084010899 senator-bedfellow.mit.edu 574 18.181.0.29
  21. Xref: senator-bedfellow.mit.edu comp.realtime:46118 news.answers:271025 comp.answers:57104
  22.  
  23. Archive-name: realtime-computing/faq
  24. Version: 3.5 (July 1998)
  25.  
  26. This posting provides an overview of newsgroup comp.realtime by summarizing
  27. the history, common past topics, and frequently asked questions.
  28. A companion posting to this one, "Comp.realtime: Welcome to comp.realtime"
  29. <realtime_welcome_1084010824@rtfm.mit.edu>, complements this one by providing a concise
  30. introduction to the group.  Another posting, "Comp.realtime: A list of
  31. real-time operating systems and tools", <realtime_list_1084010824@rtfm.mit.edu>, provides
  32. references to available operating systems and software tools.
  33.  
  34. These articles are repeated periodically for the benefit of new readers.
  35.  
  36.  
  37.  
  38. Comp.realtime FAQ
  39. -----------------
  40.  
  41. This posting provides an overview of newsgroup comp.realtime by summarizing
  42. the history, common past topics, and frequently asked questions.
  43. HTML versions (much easier to read) are available at:
  44. http://www.realtime-info.be/encyc/techno/publi/faq/rtfaq.htm
  45. http://www.groupipc.com/rtfaq.htm
  46. http://www.faqs.org/faqs/realtime-computing/faq/
  47. http://www.cis.ohio-state.edu/hypertext/faq/usenet/realtime-computing/top.ht
  48. ml
  49.  
  50. What's new in the FAQ?
  51. ----------------------
  52.      This What's new section!
  53.      Updated the HTML version locations (note that the two first one are
  54. real html whereas the others are text converted to html).
  55.      Updated the real-time definition.
  56.      Updated the Windows NT as a RTOS section.
  57.      Added the problem of year 2000 in real-time or embedded systems.
  58.      Added RTOS Market Polling results (Mainly Japan Market Study)
  59.      Added RMA Definition
  60.      Book section updated
  61.  
  62. Table of contents
  63.  
  64. I- INTRODUCTION
  65.      What is the purpose of this FAQ?
  66.      What is the charter of comp.realtime?
  67.      Where should I ask questions about real-time systems?
  68.      What is considered good net.etiquette on comp.realtime?
  69.  
  70. II- DEFINITIONS
  71.      What exactly is meant by real-time?
  72.      What is POSIX 1003.1b (formerly 1003.4)? Where is it available?
  73.      What makes an OS a RTOS?
  74.      What is a good RTOS?
  75.      What is RMA?
  76.  
  77. III- PUBLICATIONS COVERING REAL-TIME TOPICS
  78.      Books
  79.      Magazines
  80.      Other newsgroup and mailing lists dealing with real-time topics.
  81.      Web Site covering real-time topics.
  82.  
  83. IV- POLEMIC TOPICS
  84.      Is Windows NT (or windows 95) a Real-Time Operating System?
  85.      Which methodology should I use to design a Real-Time System?
  86.      Which programming language should I use to develop a Real-Time System?
  87.      What kind of processor should I use for my Real-Time System?
  88.      What kind of bus should I use for my Real-Time System?
  89.      What Mezzanine technology should I use?
  90.      Dedicated Systems and year 2000: what are the risks?
  91.  
  92. V- MARKET
  93.      Where can I find informations related to real-time products?
  94.      Where can I find informations about real-time Conferences, Workshops
  95. and Tradeshows?
  96.      International organisation for standards?
  97.      International User and Manufacturer Groups?
  98.      RTOS Market Study (Mainly Japan Market)
  99.  
  100. VI- RESEARCH AND FREE PRODUCTS
  101.      Which Research Institute and Universities are involved in the Real-Time
  102. field?
  103.      Free Real-Time Product lists
  104.  
  105. VII- CONTRIBUTIONS AND FAQ LOCATION
  106.      Where can I get the current copy of the FAQs?
  107.      Contributions to comp.realtime FAQs.
  108.  
  109. ======================================================
  110. I- INTRODUCTION
  111. ------------------------------
  112.    What is the purpose of this FAQ ?
  113.  
  114. The purpose of this FAQ is to give sufficient knowledge to a new user in the
  115. Real-Time field and to serve as a reference to the engineer working in this
  116. field. This FAQ gives an overview about each topic and refers to other
  117. ressources (Internet, Publications, Company) for a more complete
  118. information.
  119. A companion posting to this one, "Comp.realtime: Welcome to comp.realtime"
  120. <realtime_welcome_1084010824@rtfm.mit.edu>, complements this one by providing a concise
  121. introduction to the group. Another posting, "Comp.realtime: A list of
  122. real-time operating systems", <realtime_list_1084010824@rtfm.mit.edu>, provides
  123. references to available operating systems.
  124.  
  125. ------------------------------
  126.    What is the charter of comp.realtime?
  127.  
  128. The charter of comp.realtime is to provide a forum for discussion of both
  129. the theory and practice of real-time computer systems. The group is
  130. unmoderated; participation is open to all.
  131. [If there was a formal charter for the newsgroup at the time of its
  132. creation, we don't have access to it at the moment. Readers?]
  133.  
  134. Note that the listing in the canonical "newsgroups" file is:
  135. comp.realtime Issues related to real-time computing.
  136.  
  137. ------------------------------
  138.    Where should I ask questions about real-time systems?
  139.  
  140. Comp.realtime is certainly the place. However, if you are asking about a
  141. particular real-time system, see below for a (possibly) better place to
  142. start.
  143.  
  144. For topics that are only somewhat related to real-time systems, also
  145. consider comp.arch and/or comp.os.misc. For instance, topics about bus-based
  146. computer systems are best asked in comp.arch, or, if they're about the
  147. VMEbus, comp.arch.bus.vmebus.
  148.  
  149. ------------------------------
  150.    What is considered good net.etiquette on comp.realtime?
  151.  
  152. Here are some etiquette reminders that will help us all to make the group an
  153. ever-friendlier place:
  154.  
  155. -- Please, before posting, ensure that you've read the basic Usenet
  156. etiquette guide in news.announce.newusers.
  157.  
  158. -- Please set the Followup-To: line in your post. This is especially true if
  159. you are cross-posting. If you are requesting information, consider setting:
  160. Followup-To: poster, and then summarizing the replies to the net.
  161.  
  162. -- When following up, please change the Subject: line if the subject has
  163. really changed.
  164.  
  165. -- Some sites that receive comp.realtime are on branches of the net that
  166. frown on overtly commercial announcements. These postings are welcomed on
  167. comp.newprod and anywhere in the biz.* hierarchy. However, short offers by
  168. vendors to provide further information by email are usually seen as
  169. acceptable.
  170.  
  171. ======================================================
  172. II- DEFINITIONS
  173. ------------------------------
  174.    What exactly is meant by real-time?
  175.  
  176. There are _several_ definitions of real-time, most of them contradictory.
  177. Unfortunately the topic is controversial, and there doesn't seem to be 100%
  178. agreement over the terminology.
  179.  
  180. 1. The canonical definition of a real-time system (from Donald Gillies
  181. mailto:gillies@ee.ubc.ca ), is the following:
  182.  
  183. "A real-time system is one in which the correctness of the computations not
  184. only depends upon the logical correctness of the computation but also upon
  185. the time at which the result is produced. If the timing constraints of the
  186. system are not met, system failure is said to have occurred."
  187.  
  188. Others have added:
  189.  
  190. "Hence, it is essential that the timing constraints of the system are
  191. guaranteed to be met. Guaranteeing timing behavior requires that the system
  192. be predictable. It is also desirable that the system attain a high degree of
  193. utilization while satisfying the timing constraints of the system."
  194.  
  195. A good example is a robot that has to pick up something from a conveyor
  196. belt. The piece is moving, and the robot has a small window to pick up the
  197. object. If the robot is late, the piece won't be there anymore, and thus the
  198. job will have been done incorrectly, even though the robot went to the right
  199. place. If the robot is _early_, the piece won't be there yet, and the robot
  200. may block it.
  201.  
  202. Another example is the servo loops in an airplane when on auto-pilot.
  203. The sensors of the plane must continuously supply the control computer with
  204. proper measurements. If a measurement is missed, the performance of the
  205. airplane can degrade, sometimes to unacceptable levels.
  206.  
  207. David Sonnier  ( mailto:dps@devnull.mpd.tandem.com ) adds the distinction:
  208.  
  209. In the robot example, it would be hard real time if the robot arriving late
  210. causes completely incorrect operation. It would be soft real time if the
  211. robot arriving late meant a loss of throughput. Much of what is done in real
  212. time programming is actually soft real time system. Good system design often
  213. implies a level of safe/correct behavior even if the computer system never
  214. completes the computation. So if the computer is only a little late, the
  215. system effects may be somewhat mitigated.
  216.  
  217. 2. POSIX Standard 1003.1 defines "real-time" for operating systems as:
  218. "Realtime in operating systems: the ability of the operating system to
  219. provide a required level of service in a bounded response time"
  220.  
  221. 3. One will occasionally see references to "real-time" systems when what is
  222. meant is "on-line", or "an interactive system with better response time than
  223. we used to have". Often, this is just marketing hype. For instance, although
  224. some have queried whether running "rn" is real-time, it is not, as it is
  225. interacting with a human who can tolerate hundreds of milliseconds of delays
  226. without a problem. Similarly, on-line stock quotation systems interact with
  227. humans.
  228.  
  229. 4. One will also see references to "real-time" systems when what is meant is
  230. just "fast". It might be worth pointing out that "real-time" is not
  231. necessarily synonymous with "fast"; that is, it is not the latency of the
  232. response per se that is at issue (it could be of the order of seconds), but
  233. the fact that a bounded latency sufficient to solve the problem at hand is
  234. guaranteed by the system. In particular, frequently, algorithms that
  235. guarantee bounded latency responses are less efficient overall than
  236. algorithms that don't.
  237.  
  238. 5. One will also occasionally see discussions of "soft" vs. "hard" real-time
  239. systems. In many of these discussions, "hard" real-time means the type of
  240. real-time system discussed above, and "soft" real-time means systems which
  241. have reduced constraints on "lateness" but still must operate very quickly
  242. and repeatably. However, the definition is controversial, as some mean by
  243. "hard" and "soft" the degree of time constraints. For instance, a real-time
  244. process attempting to recognize images may have only a few hundred
  245. microseconds in which to resolve each image, but a process that attempts to
  246. position a servo-motor may have tens of milli-seconds in which to process
  247. its data.
  248.  
  249. 6. Robert Bristow-Johnson adds the following distinction (in the case of
  250. DSP):
  251. In a real-time DSP process, the analyzed (input) and/or generated (output)
  252. samples (whether they are grouped together in large segments or processed
  253. individually) can be processed (or generated) continuously in the time it
  254. takes to input and/or output the same set of samples independent of the
  255. processing delay.
  256.  
  257. Consider an audio DSP example: if a process requires 2.01 seconds to analyze
  258. or process 2.00 seconds of sound, it is not real-time. If it takes 1.99
  259. seconds, it is (or can be made into) a real-time DSP process.
  260.  
  261. A common life example I like to make is standing in a line (or queue)
  262. waiting for the checkout in a grocery store. If the line asymtotically grows
  263. longer and longer without bound, the checkout process is not real-time. If
  264. the length of the line is bounded, customers are being "processed" and
  265. outputted as rapidly, on average, as they are being inputted and that
  266. process _is_ real-time. The grocer might go out of business or must at least
  267. lose business if he/she cannot make his/her checkout process real-time (so
  268. it's fundamentally important that this process be real-time).
  269. The last definition (5) is the one used for real-time audio and video, for
  270. phone call over Internet, and so on. It means that the processing time is
  271. less than the time to get a sample. Note that in the case of Internet it is
  272. easy to get starvation because the sample arrivals depend on the bandwidth.
  273.  
  274. ------------------------------
  275.    What is POSIX 1003.1b (formerly 1003.4)? Where is it available?
  276.  
  277. POSIX 1003.4 was the working name for what is now the 1003.1b standard..
  278.  
  279. The ratified POSIX standards that generally pertain to real-time OS's
  280. consist of: 1003.1 (OS, process, filesystem and device API), 1003.2
  281. (utilities), 1003.1b (real-time), and 1003.1c (threads). POSIX 1003.1d
  282. (which defines some additional real-time extensions like standardized
  283. interrupt handler support) is not yet ratified, although some OS's already
  284. support portions of it.
  285.  
  286. The best way to get the most current status is to refer to some of these
  287. texts and contacts:
  288. The POSIX 1003.1 standard is ISBN 1-55937-061-0. A good O'Reilly text is
  289. "POSIX Programmer's Guide: Writing Portable UNIX Programs". Donald Lewine.
  290. ISBN: 0-937175-73-0
  291.  
  292. For other standards, the IEEE's address is:
  293. Secretary, IEEE Standards Board
  294. 445 Hoes Lane
  295. P.O. Box 1331
  296. Piscataway, NJ 08855-1331
  297. USA
  298. http://cs-www.bu.edu/pub/ieee-rts/Home.html
  299. Many of the POSIX draft standards can also be obtained by calling the IEEE
  300. Draft Standards Office. Credit card in-hand, phone +1 202 371 0101 to place
  301. an order.
  302.  
  303. Another contact is the IEEE-USA Customer Service Center at 800 678 4333
  304. (+1 908 981 1393 for outside of 800 zone); fax: +1 908 981 9667.
  305.  
  306. ------------------------------
  307.    What makes an OS a RTOS?
  308.  
  309. 1. A RTOS (Real-Time Operating System) has to be multi-threaded and
  310. preemptible.
  311. 2. The notion of thread priority has to exist as there is for the moment no
  312. deadline driven OS.
  313. 3. The OS has to support predictable thread synchronisation mechanisms
  314. 4. A system of priority inheritance has to exist
  315. 5. OS Behaviour should be known
  316. So the following figures should be clearly given by the RTOS manufacturer:
  317. 1. the interrupt latency (i.e. time from interrupt to task run) : this has
  318. to be compatible with application requirements and has to be predictable.
  319. This value depends on the number of simultaneous pending interrupts.
  320. 2. for every system call, the maximum time it takes. It should be
  321. predictable and independent from the number of objects in the system;
  322. 3. the maximum time the OS and drivers mask the interrupts.
  323. The following points should also be known by the developer:
  324. 1. System Interrupt Levels.
  325. 2. Device driver IRQ Levels, maximum time they take, etc.
  326.  
  327. ------------------------------
  328.    What is a good RTOS?
  329.  
  330. A good RTOS is not only a good Kernel ! A good RTOS should have a good
  331. documentation, should be delivered with good tools to develop and tune your
  332. application. So even if some figures like the Interrupt latency, Context
  333. switch time are important, there are a lot of other parameters that will
  334. make a good RTOS. For example a RTOS supporting many devices will have more
  335. advantages than a simple very good nano-kernel.
  336.  
  337. ------------------------------
  338. What is RMA?
  339.    "Rate-Monotonic Analysis" is a term coined by researchers at CMU. It
  340. refers to the real-time performance analysis of a system design that uses
  341. static-priority driven scheduling, in particular, the "rate-monotonic"
  342. static priority assignment, where tasks with shorter periods get the higher
  343. priorities, in a typical static-priority driven real-time operating system
  344. like pSOS VxWorks VRTX etc.
  345. Research (mostly) from CMU and U-York and Illinois gives you the
  346. mathematical tools to answer "what if I designed it this way???" analysis on
  347. your system workload. You need to break your software into "tasks" with
  348. "periods" and "deadlines" (relative to the period) and you must be able to
  349. guess or prototype a rough "execution time" for each task. Also, for more
  350. precise analysis, it helps to know all the critical sections and their
  351. runtimes and who shares them, or at the least, the length of the longest
  352. critical section in all of your software.
  353. You can plug all this data into a "schedulability analyzer" tool (PERTS,
  354. MIMOSA, Scheduler 1-2-3 (CMU), Software Engineer(?s) Notebook (CMU, newer)),
  355. or even the back of an envelope "Utilization Test" or "Formula Test" and
  356. find out if your workload will meet all its different deadlines.
  357. If you workload does not meet deadlines, the better tools can help you to
  358. explore changes to your workload, in order to meet all the deadlines.
  359.  
  360. ======================================================
  361. III- PUBLICATIONS COVERING REAL-TIME TOPICS
  362. -------------------------
  363.    Here are some references to the theory and practice
  364.  
  365. Several people recommended as a starting place the article "Tutorial on Hard
  366. Real-Time Systems", edited by John A. Stankovic and Krithi Ramamritham, IEEE
  367. Computer Society reprint series, Computer Society order number 819.
  368. Kopetz, H.: Real-Time Systems, Design Principles for Distributed Embedded
  369. Applications. Kluwer Academic Publishers, Massachusetts, 1997.
  370. A good book indeed. It covers:
  371. Real-Time Environment, Distributed Solutions, Global Time, Modeling
  372. Real-Time Systems, Real-Time Entities and Images, Fault Tolerance, Real-Time
  373. Communication, The Time-Triggered Approach, Input/Output, Real-Time
  374. Operating Systems, Real-Time Scheduling, Validation, System Design, Time
  375. Triggered Architecture
  376.  
  377. PRACTITIONER'S HANDBOOK FOR REAL-TIME ANALYSIS:    Guide to Rate Monotonic
  378. Analysis for Real-Time Systems. Klein,Mark; et al, Year 1993, Definitive
  379. developer's guide. Ten chapters in 4 parts: Introduction;Concepts &
  380. Techniques; Analyzing Real-Time Systems; & Using the Handbook on Realistic
  381. Systems. KLUWER ACADEMIC, Pages 712, ISBN: 0-7923-9361-9
  382. STRATEGIES FOR REAL-TIME SYSTEM SPECIFICATION, Hatley,D.J. & Pirbhai, I.A,
  383. Year 1988, Casebook & practical reference for modeling requirements &
  384. architecture. Topeics include: Process; Control; Finite State Machines,
  385. Timing; Dictionary; & Examples, DORSET HOUSE, Pages 408, ISBN: 0-932633-11-0
  386.  
  387. STRUCTURED DEVELOPMENT FOR REAL-TIME SYSTEMS, Combined Version, Vols 1,2 &
  388. 3., Ward, P.T. & Mellor, S. J., Year 1987, PRENTICE HALL, Pages 468, ISBN:
  389. 0-13-854654-1
  390.  
  391. Caxton Foster's "Real-Time Programming: Neglected Topics," despite the
  392. title, is a very good introduction to the basic topics of real-time control,
  393. starting with simple things like interrupts and debouncing switches, all the
  394. way through digital filters. It's a thin paperback (Addison Wesley
  395. MicroBooks), and a (somewhat) experienced programmer can get through it in a
  396. couple of days.
  397.  
  398. iRUG. Proceedings of the Intel Real-Time User's Group. Annual, back copies
  399. available from iRUG, P.O. Box 91130, Portland, OR 97291, (800) 255-4784.
  400. Annual conference proceedings dealing primarily with Intel's family of
  401. real-time OSs, iRMX.
  402.  
  403. Books references in The Online Real-Time Encyclopaedia(there is always a
  404. comment there) http://www.realtime-info.be/encyc/techno/publi/books.htm
  405. J.E. Cooling, Software Design for Real-time Systems, SBN 0-412-34180-8,
  406. published by Chapman and Hall.
  407. Yann Hang Lee and C.M. Krishna, Readings in real-time systems, ISBN
  408. 0-8186-2997-5, 1993, published by IEEE Computer Society Press.
  409. Mathai Joseph, Real-Time Systems, University of Warwick, ISBN 0-13-455297-0,
  410. 1996, published by Prentice Hall Professional Technical Reference.
  411. Krishna M. Kavi , Real-time systems, abstractions, languages and design
  412. methodologies, ISBN 0-8186-3152-X, 1992, published by IEEE Computer Society
  413. Press.
  414. Phillip Laplante, Real-time systems design and analysis, an engineer's
  415. handbook, ISBN 0-8186-3107, 1993, published by IEEE Computer Society Press
  416. David L. Ripps, An implementation guide to real-time programming, ISBN
  417. 0-13-451873-X, 1989, published by Yourdon Press, Prentice-Hall Building, now
  418. out of print!
  419. Ken Shumate and Marilyn Keller, Software specification and design, a
  420. disciplined approach for real-time systems, ISBN 0-417-53296-7, 1992,
  421. published by John Wiley and Sons, Inc.
  422. Another list of books with comments http://www.realtime-os.com/rtresour.html
  423. A publisher: http://www.powells.com
  424.  
  425. ---------------------------------
  426. Peter Desnoyers <mailto:peterd@merlin.dev.cdx.mot.com> sends along:
  427. The classic reference in the area of timers is:
  428.  
  429. George Varhese and Tony Lauck, "Hashed and Hierarchical Timing Wheels: Data
  430. Structures for the Efficient Implementation of a Timer Facility", Operating
  431. Systems Review 21, no. 5 (Proceedings of 11th ACM Symposium on Operating
  432. Systems), 1987.
  433. Their results show O(1) times for insert and delete of 13 and 7 instructions
  434. for one of the schemes, and decent performance with large numbers of
  435. outstanding timers.
  436.  
  437. ---------------------------------
  438. Christian Ebner mailto:ebner@vmars.tuwien.ac.at sends along a classic
  439. reference in priority inheritance algorithm:
  440. Sha, L., Rajkumar, R. and Sathaye, S.: Priority Inheritance Protocols: An
  441. Approach to Real-Time Synchronization. IEEE Transactions on Computers, Vol.
  442. 39(9). pp.1175-1185.
  443. Analysis shows that the priority inheritance protocol can lead to chained
  444. blocking and deadlocks. To solve this problem, the priority ceiling protocol
  445. was developed by L. Sha, R. Rajkumar and S. Sathaye.
  446.  
  447. ---------------------------------
  448. Here are some other suggestions from various net.sources, in publishing date
  449. order:
  450. Mellichamp, D. A. Real-Time Computing. New York: Van Nostrand Reinhold,
  451. 1983. 552 pp.
  452. Twenty chapters by 11 authors on topics ranging from signal processing to
  453. managing real-time computing facilities.
  454.  
  455. A. K. Mok, The Design of Real-time Programming Systems Based on Process
  456. Models, in Proc. 1984 Real-Time Systems Symposium, Dec.1984, pp5-17.
  457.  
  458. E. Kligerman and A. Stoyenko, Real-Time Euclid: A Language for Reliable
  459. Real-Time Systems, in TOSE, Sep. 1986, pp 941-949, vol SE-12.
  460.  
  461. D. W. Leinbaugh and M.-R. Yamini, Guaranteed Response Times in a Distributed
  462. Hard-Real-Time Environment, in TOSE, Dec.1986, vol SE-12.
  463.  
  464. A. Stoyenko, A Real-Time Language With A Schedulability Analyzer, Computer
  465. Systems Research Institute, University of Toronto, Dissertation, Dec. 1987.
  466.  
  467. Lawrence, P. D. and Mauch, K. Real-Time Microcomputer System Design. New
  468. York, McGraw-Hill, 1987. 568 pp.
  469. The emphasis is on the design of I/O circuits and assembly language
  470. interfaces for small microprocessors used for embedded systems.
  471.  
  472. H. Kopetz and A. Damm and Ch. Koza and M. Mulazzani and W. Schwabl and Ch.
  473. Senft and R. Zainlinger, Distributed Fault-Tolerant Real-Time Systems: The
  474. MARS Approach, in IEEE Micro, vol.9, Feb.1989, pp25-40.
  475.  
  476. Burns, A. and Wellings, A. Real-Time Systems and Their Programming
  477. Languages. Wokingham: Addison-Wesley, 1990. 575 pp.
  478. Ada, Modula-2, and occam 2 are used throughout the book, which covers topics
  479. ranging from basic programming techniques, fault tolerance, exception
  480. handling, concurrency, resource management, and distributed designs.
  481.  
  482. Vickery, C. Real-Time and Systems Programming for PCs. New York:
  483. McGraw-Hill, 1993. 604 pp. The thesis is that the development environment
  484. for real-time systems is ideal for studying systems programming, too. After
  485. some introductory material, the book deals exclusively with Intel's iRMX
  486. operating systems, with particular emphasis on iRMX for Windows.
  487.  
  488. -------------------------
  489.    Real-Time and Embedded Systems related magazines
  490.  
  491. List from The Real-Time Encyclopaedia
  492. http://www.realtime-info.be/encyc/techno/publi/magazine.htm
  493. * Embedded Systems Engineering: Embedded Systems Engineering is a UK based
  494. magazine dedicated to embedded systems and development tools. Although
  495. highly focused on embedded systems this publication also covers real-time
  496. products. For more info email to Jeremy Kenyon.
  497. (mailto:100142.1323@compuserve.com)
  498. * Details: 10 issues/year, 60 pages, English.
  499. * Embedded Systems Programming: Embedded Systems Programming is the leading
  500. magazine on embedded systems design in the US. Although covering mostly
  501. embedded systems, a lot of the editorial is dedicated to real-time systems.
  502. * Details: 12 issues/year, 106 pages, English.
  503. * Mezzanines: Mezzanines is the official publication from GRoupIPC, the
  504. international user & manufacturer group promoting IP & PMC mezzanine
  505. solutions. This fancy publication contains technical articles, application
  506. notes and offers a new products section besides a currently updated product
  507. directory.
  508. * Real-Time Magazine: Real-Time Magazine is THE European reference magazine
  509. for the real-time systems developer. Each magazine is dedicated to a special
  510. theme, such as Buses (VME, PMC, CompactPCI,...), RTOS, Tools (debugging,
  511. monitoring, simulation, design, bus hardware analyzers), Real-Time Networks,
  512. etc. A must for real-time engineers who don't have the time (and money) to
  513. spend on courses and workshops. The magazine also contains Real-Time
  514. Gazette, the supplement which contains new products information.
  515. * Details: 4 issues/year, 124 pages (+16 page supplement), English.
  516. * Real-Time Systems: Real-Time Systems is a journal on time-critical
  517. computing systems. Although very real-time focused, this publication is very
  518. theoretical and more targeted toward researchers.
  519. * Details: 6 issues/year, 320 pages A5, English.
  520. * RTC Magazine: The RTC Magazine (before "The Real-Times"), not to confuse
  521. with Real-Time Magazine, is a more commercial publication which supports the
  522. RTC shows in the US and Europe. The magazine helps the exhibiting companies
  523. to better promote their products.
  524. * Details: 6 issues/year, 92 pages, English.
  525. * VITA Journal: The VITA Journal is a VMEbus related publication and the
  526. official publication from VITA, the VMEbus International Trade Association.
  527. As VME is an important standard in real-time, we shouldn't omit this
  528. publication in our list.
  529. * Details: 4 issues/year, 46 pages, English.
  530.  
  531. ------------------------------
  532.    What other net.resources are available on real-time systems?
  533.  
  534. There are at least two other newsgroups devoted exclusively to a particular
  535. vendor's real-time operating system:
  536.  
  537. news:comp.os.lynx The LynxOX real-time operating system.
  538. news:comp.os.os9 Discussions about the os9 operating system.
  539. news:comp.os.qnx The QNX real-time operating system.
  540. news:comp.os.vxworks The VxWorks real-time operating system.
  541. news:comp.sys.harris The Harris NightHawk & CX/UX & CX/RT operating systems.
  542.  
  543. Here are some other related newsgroups:
  544. news:alt.industrial.computing
  545. news:comp.arch Computer architecture.
  546. news:comp.arch.bus.vmebus Hardware and software for VMEbus Systems.
  547. news:comp.os.misc General OS-oriented discussion not carried elsewhere.
  548. news:comp.robotics All aspects of robots and their applications.
  549. news:comp.sys.m68k Discussion about 68k's.
  550. news:sci.engr.control The engineering of control systems.
  551. news:sci.engr.manufacturing
  552.  
  553. There are too many other newsgroups devoted to computer operating systems
  554. that support some form of real-time scheduling to list here. The interested
  555. reader is advised to check the "newsgroups" file on her or his local
  556. machine.
  557.  
  558. There is a realtime-related mailing list for embedded computer systems
  559. developers. It is not strictly real-time, but there is some overlap. To
  560. subscribe, send your email address to mailto:embed-request@synchro.com.
  561.  
  562. A mailing list for discussions concerning the use of Futurebus+ now exists.
  563. Appropriate topics include the design, implementation, integration and
  564. operation of the hardware and software that are related to Futurebus+. To
  565. subscribe, send the one-line email message (in the body of the message, not
  566. the header; the Subject line is ignored) as shown below to
  567. mailto:majordomo@theus.rain.com.
  568.  
  569. subscribe fbus_users <your_email_address>
  570.  
  571. To get more information about the mailing list, send the one-line command
  572. shown next to mailto:majordomo@theus.rain.com:
  573.  
  574. info fbus_users
  575.  
  576. The info page is automatically sent when you subscribe.
  577.  
  578. A mailing list intended for the discussion of topics relating to the
  579. pSOSystem and other products of Integrated Systems Inc., Software Components
  580. Group, has been started. Send articles to mailto:psosuser@isi.com and
  581. administrative (subscription) requests to mailto:listserver@isi.com. The
  582. list administrator is Radek Aster who can be reached at
  583. mailto:raster@isi.com.
  584.  
  585. Russ Hersch <mailto:sibit@datasrv.co.il> is now maintaining two _extensive_
  586. FAQs about specific microcontroller families, and one about microcontrollers
  587. in general. Here's the pointers:
  588.  
  589. Subject: 68hc11 microcontroller FAQ
  590. Summary: This article is a collection of information sources on the Motorola
  591. 68hc11 line of microcontrollers.
  592. Archive-name: 68hc11-microcontroller-faq
  593. Posting-Frequency: monthly
  594.  
  595. Subject: 8051 microcontroller FAQ
  596. Summary: This article is a collection of information sources on the Intel
  597. 8051 line of microcontrollers (and variants).
  598. [He's working on the archiving of this one.]
  599. Posting-Frequency: monthly
  600.  
  601. Subject: Microcontroller Primer FAQ
  602. Summary: This article is a primer and general FAQ about microcontrollers.
  603. [He's working on the archiving of this one.]
  604. [Posting-Frequency: monthly, I think]
  605.  
  606. He also states that Tom Kellett is working on a FAQ on the PIC
  607. micro-controller line, and adds that "hopefully, this will lead towards a
  608. much needed collection of microcontroller FAQs."
  609.  
  610. ------------------------------
  611.    Which Web Sites give information about real-time?
  612.  
  613. The Real-Time Encyclopaedia about everything you want to know about
  614. Real-Time (http://www.realtime-info.be)
  615. E. Douglas Jensen Web Site (http://www.realtime-os.com/rtresour.html)
  616. Frank Miller Resource list http://www.cs.umd.edu/~fwmiller/etc/realtime.html
  617. EEToolbox Resource link list http://www.cera2.com/realtime.htm
  618. The RTC Group (http://www.rtcgroup.com)
  619. Embedded Systems (http://www.embedded.com/net.htm)
  620. VITA (http://www.vita.com)
  621. GRoupIPC (http://www.groupipc.com)
  622. A good collection of links
  623. (http://www.ifi.unizh.ch/groups/ailab/embedded.html)
  624.  
  625. ======================================================
  626. IV- POLEMIC TOPICS
  627. ------------------------------
  628.     Is Windows NT (or windows 95, or even Windows CE now) a Real-Time
  629. Operating System?
  630.  
  631. This question appears repeatedly in this news group. Here are the key
  632. points:
  633. - Despite a real-time class process, the Win32 API is not suitable to be
  634. used for a Real-Time System:
  635. 1. Too few priorities for processes and threads
  636. 2. No priority inheritance mechanism
  637. 3. Some calls are synchronous with process from the Dynamic Class
  638. - Despite a good interface to hardware for CLASSICAL applications, this
  639. interface is not suitable to develop a Real-Time System:
  640. 1. Most of the job in a device driver is done at the DPC level. And most
  641. COTS DD take too much time in the DPC.
  642. 2. The DPC problem could have been avoided by increasing the number of DPC
  643. levels, but this is not the case.
  644. 3. Pentium Power Management interrupt can preempt your system for an
  645. unpredictible amount of time (depending of the BIOS)
  646. - Real-Time clock
  647. There is a lack of programmable timer.
  648.  
  649. For a more complete view, look at article:
  650. http://www.realtime-info.be/encyc/magazine/97q2/winntasrtos.htm
  651. Some companies are now providing Real-Time Extensions to fill up the hole
  652. let opened by Microsoft. (cf the RTOS list)
  653. To do so three main approaches exists: include NT as the lowest level
  654. process in an existing RTOS, put a WIN32 API on top of an existing RTOS,
  655. make NT coexists with a RTOS by modifying the HAL. For complete view, look
  656. at article:
  657. http://www.realtime-info.be/encyc/magazine/97q2/winntext.htm
  658. One might also be interested in the vendors proposing such products
  659. http://www.qnx.com/whitepaper/qnxwin32.html
  660. http://www.vci.com
  661. http://www.radisys.com
  662. http://www.imagination.com/
  663. http://www.lp-elektronik.com
  664.  
  665. ------------------------------
  666.     Which methodology should I use to design a Real-Time System?
  667.  
  668. At least you should use one. It is high time people are convinced of the
  669. interest of building a house with the plan. It is very strange that people
  670. still think that Software development is equal to writing or even hacking
  671. code. There are at least three big classes of methodologies :
  672. - The one related to Ada (Booch)
  673. - The one based on data flows
  674. - The OO Methodology (OMT)
  675. One could add the formal approach too (SDL, MSC).
  676. The choice will be based on the inhouse knowledge, level of education and
  677. the client knowledge of software development. For each methodology you have
  678. tools that are more or less good.
  679.  
  680. ------------------------------
  681.     Which programming language should I use to develop a Real-Time System?
  682.  
  683. Of course you can choose to use assembler. You can always use tools from the
  684. Ancient Age. Nevertheless it would be much better to use a higher level
  685. programming language. Most of them will fit. The Ada Community will always
  686. try to convince you their language is the best to use in any cases. Here is
  687. not the news group to argue about this (news:comp.lang.ada is THE place).
  688. Others will try to convince you to use an OO language. Then you have to be
  689. carefull with the memory management unpredicitbility (Is there a garbage
  690. collection ? Is it under the developpers control?). The best solution is to
  691. avoid the use of dynamic object creation. Just create them at startup. You
  692. have to know that the most used languages are (in alphabetical order) :
  693. Ada, C, C++ for realtime system development.
  694. Most of the time small parts of the system are still written in assembler
  695. (small parts of Device Driver).
  696.  
  697. ------------------------------
  698.     What kind of processor should I use for my Real-Time System ?
  699.  
  700. CISC vs RISC: there has been a lot of discussion in the past about this
  701. issue. Because of the high number of registers in a RISC processor, people
  702. said the context switch was not compatible with real-time systems
  703. requirements. This is not true as compilers can optimise the use of
  704. registers to reduce the size of the context switch. A lot of points could be
  705. added here, but as a conclusion we can say that both can be used for
  706. Real-Time System.
  707. PowerPC 60x versus 40x
  708. The PowerPC 60x family is well suited for calculation, but to deal with the
  709. external world (through Hardware Interrupt) the family 40x should be
  710. prefered as the interrupt management is much more oriented to hardware
  711. whereas in the 60x family it is more oriented to software.
  712.  
  713. ------------------------------
  714.     What kind of bus should I use for my Real-Time System ?
  715.  
  716. VMEbus vs Compact PCI
  717. Just remember these few things :
  718. 1. you can have 21 boards on the same VME bus.
  719. 2. you have 7 priority levels for Interrupting on the bus
  720. 3. you have 4 level to take the bus
  721. 4. last but not least: the installed VME bus based applications is huge.
  722. The Compact PCI offers a bigger bandwidth, is based on a widely spread
  723. standard and the boards should be less expensive to produce (the interface
  724. chips are cheaper).
  725. Other busses:
  726. The choice is big : FutureBus+, Multibus, VXIbus, PCI, ISA, ...
  727. The choice will depend on the type of application, the type of hardware to
  728. use (price/performance) and the target maket.
  729.  
  730. ------------------------------
  731.     What Mezzanine technology should I use ?
  732.  
  733. Industry Pack, PMC, M-Module, S-Bus ...
  734. For IP and PMC, a good place to look at is http://www.groupipc.com/
  735. For M-Modules, CXC Modules, a good place to look at is
  736. http://www.vita.com/mezzprod/mezzdirindex.html
  737. It should finally be noticed that the choice will depend on the type of I/O
  738. you deal with. If the key point is price, then IP or M-Modules is the
  739. answer, if performance is the key PMC or S-Bus Module should be choosen.
  740. Another point is the availability of the products: here PMC and IP is THE
  741. choice. They are much more widespread than any other. They are also
  742. supported by a usergroup organisation : GRoupIPC
  743.  
  744. ------------------------------
  745.     What real-time network should I use for my real-time system?
  746.  
  747. Here the choice is huge and the standardization efforts still poor (but this
  748. is changing quickly):
  749. PROFIBUS, BITBUS, WorldFIP, FIELDBUS, CAN, MIL-STD-1553, ATM, Reflective
  750. Memory, ...
  751. The choice will depend on the price (MIL-STD-1553 is quite expensive, ATM
  752. also), on the availability of controllers, drivers, PLC, ...
  753.  
  754. ------------------------------
  755.     Dedicated Systems and year 2000: what are the risks?
  756.  
  757. Martin Timmerman from Real-Time Consult explained:
  758. There can be two causes of year 2000 problems: hardware and software
  759. Software:
  760. ---------
  761. The problem is there if you use somewhere only a two-digit system in the
  762. software. Therefore you should check all time data structures the software
  763. uses.
  764. Most real-time systems do not use the absolute time for decision making,
  765. they work with relative time. However if a time delay is computed starting
  766. from 2 absolute times then you have a problem.
  767. If the time is used only for time stamping then there is no problem. The
  768. year 2000 will be 00.
  769. The message here is: for each individual system one should look if absolute
  770. time is used. If yes, wherefore it is used - are computations based on it?
  771. Hardware:
  772. ---------
  773. - Most Time Of Day (TOD) ICs have only two digit year codes.
  774. In this case the software, should use something like:
  775. if TODyear < 60 add 2000
  776. else add 1900
  777. Problem could be with leap years (1900 is not a leap year, but 2000 is. you
  778. need to check IC spec)
  779. - GPS can have problems (not at 2000, but on another date: this was error in
  780. GPS specifications)
  781. - Other HW: See TOD (remark that some Time interfaces do not have any year
  782. information at all: IRIG-B for instance)
  783. Special note for black boxes:
  784. - Check the Interfaces with your system (if time is used) (use the ISD:
  785. Interface Specification Document) or check with the Black box manufacturer
  786. (if he is still alive.....)
  787. Rule: everywhere time is used by the system, there is a potential year 2000
  788. problem.
  789. Remark: this may generate a lot of work. Subsystem by subsystem should be
  790. examined. You need good documentation for the subsystems, which might not be
  791. available. Having the design documentation is almost imperative and this may
  792. also be a fundamental problem for older systems.
  793.  
  794. ======================================================
  795. V- MARKET
  796. ------------------------------
  797.     Where can I find information related to real-time products?
  798.  
  799. Product directories :
  800. VME Products Directory http://www.vita.com/vmeprod/prodir.html
  801. Industry Pack and PMC Products Directory
  802. http://www.groupipc.com/products/products.htm
  803. Chips Products Directory http://www.xs4all.nl/~ganswijk/chipdir/
  804. ULC Buyer's Guide http://www.cera2.com/ulc.htm
  805. RTOS :
  806. http://www.cs.arizona.edu/people/bridges/oses.html
  807. http://www.realtime-info.be/encyc/market/rtos/rtos.htm
  808.  
  809. New Products :
  810. http://www.vita.com/npgallery/npgallery.html
  811. http://www.embedded.com/prod.htm
  812. http://www.realtime-info.be/encyc/market/chronic/chronic.htm
  813.  
  814. ------------------------------
  815.     Where can I find information about real-time Conferences, Workshops and
  816. Tradeshows?
  817.  
  818. http://www.realtime-os.com/rtresour.html#olconf
  819. http://www.realtime-info.be/encyc/market/calendar/calendar.htm
  820.  
  821. ------------------------------
  822.     International organization for standards?
  823.  
  824. List from Real-Time Encyclopaedia
  825. http://www.realtime-info.be/encyc/techno/asso/standard/standard.htm
  826.  
  827. ANSI: American National Standards Institute
  828. IEC: International Electrotechnical Commission
  829. IEEE: Institute of Electrical and Electronics Engineers
  830. ISO: International Organization for Standardization
  831. OMG: Object Management Group
  832. OSF: Open Software Foundation
  833. X/Open
  834.  
  835. ------------------------------
  836.     International User and Manufacturer Groups?
  837.  
  838. List from Real-Time Encyclopaedia:
  839. http://www.realtime-info.be/encyc/techno/asso/user/user.htm
  840. VITA VMEbus International Trade Association (http://www.vita.com)
  841. GRoupIPC Association promoting Mezzanines Solutions
  842. (http://www.groupipc.com)
  843. PICMG Association promoting the Compact PCI bus (http://www.picmg.com)
  844. Profibus (http://www.profibus.com)
  845.  
  846. ------------------------------
  847.     RTOS Market Study (Mainly Japan Market)
  848.  
  849. Because we could received only a few responses from outside Japan in regret,
  850. only the responses from Japan have been tabulated and analyzed. You can
  851. access the result from the following URL:
  852. http://tron.um.u-tokyo.ac.jp/TRON/ITRON/survey97/result-e.html
  853. Other Market studies are available (not for free) from some companies. One
  854. of them is http://www.realtime-consult.com
  855.  
  856. ======================================================
  857. VI- RESEARCH AND FREE PRODUCTS
  858. ------------------------------
  859.     Which Research Institute and Universities are involved in the Real-Time
  860. field?
  861.  
  862. Here is a link to a page describing activities of Universities and Research
  863. Institutes:
  864. http://www.realtime-info.be/encyc/techno/research/research.htm
  865.  
  866. This list includes the following Universities and Research Institutes:
  867. * Carnegie Mellon University, Pittsburgh, USA
  868. * Computer Science Department at Boston University
  869. * Cornell University, USA
  870. * DIRECT-Distributed Real-Time Control of the Research Division of
  871. Responsive System, GMD,
  872. * National Research Center for Computer Science in Germany.
  873. * DIstributed and Real-Time systems group at University of North Carolina,
  874. Chapel Hill, USA
  875. * Florida State University, Florida, USA
  876. * Information Systems Engineering at University of Western Australia
  877. * Kansas State University, USA
  878. * Real-Time and Distributed Systems Group at Carleton University in Ottawa,
  879. Canada
  880. * Real-Time Systems Group at University of Pennsylvania, USA
  881. * Real-Time Systems Laboratory (RTSL) at University of Illinois, Urbana
  882. Champaign, USA
  883. * Real-Time Systems Research Group at University of York, England
  884. * Tenet Group at University of California, Berkeley, USA
  885. * The Centre for Autonomous, Real-Time Systems (CARTS) at University of
  886. Massachusetts, Amherst
  887. * The Experimental Real Time Group at Uppsala University, Sweden
  888. * The Real-Time Systems research group at University of Texas, Austin, USA
  889. * University of Maryland, USA
  890. * University of Michigan, Ann Arbor, USA
  891. * University of Pittsburgh, USA
  892. * University of Virginia, USA
  893. * VTT Electronics
  894. * your research group could also be added to this list.
  895. List of links to research centers
  896. http://www.cs.umd.edu/~fwmiller/etc/realtime/research.html
  897.  
  898. ------------------------------
  899.     Free Real-Time Product lists
  900.  
  901. Here is a collection of links towards free products
  902. http://www.eg3.com/realxrto.htm
  903.  
  904. ======================================================
  905. VII- CONTRIBUTIONS AND FAQ LOCATION
  906. ------------------------------
  907.     Where can I get the current copy of the FAQs?
  908.  
  909. The FAQs are posted every 4 weeks to comp.realtime, comp.answers, and
  910. news.answers.
  911. It is available in html format at :
  912. http://www.realtime-info.be/encyc/techno/publi/faq/rtfaq.htm
  913. http://www.groupipc.com/rtfaq.htm
  914. http://www.faqs.org/faqs/realtime-computing/faq/
  915. http://www.cis.ohio-state.edu/hypertext/faq/usenet/realtime-computing/top.ht
  916. ml
  917. They are also available for anonymous FTP on rtfm.mit.edu in
  918. pub/usenet/comp.realtime:
  919. ftp://rtfm.mit.edu/pub/usenet/comp.realtime/
  920. Comp.realtime:_A_list_of_real-time_operating_systems_and_tools_(LONG)
  921. Comp.realtime:_Frequently_Asked_Questions_(FAQs)
  922. Comp.realtime:_Welcome_to_comp.realtime
  923.  
  924. For those without direct FTP access, there is also a mail-server. Address a
  925. message to mail-server@rtfm.mit.edu; leave the subject blank and include in
  926. the body: send help. It will return the instructions for proper use.
  927. ------------------------------
  928. Contributions to comp.realtime FAQs.
  929. The following net.folks, among others, have contributed to this posting:
  930.  
  931. Martin Timmerman <mailto:mtimmerman@realtime-info.be>
  932. Luc Perneel <mailto:lper@rtusi.com>
  933. Sebastien Deleersnijder <mailto:seb@rtusi.com>
  934. Christian Ebner <mailto:ebner@vmars.tuwien.ac.at>
  935. Thomas M. Breuel <mailto:tmb@best.com >
  936. Tim Chambers <mailto:tbc@col.hp.com>
  937. Chuck Cox <mailto:chuck@synchro.com>
  938. Peter Desnoyers <mailto:pjd@midnight.com>
  939. Kevin Driscoll <mailto:driscoll@src.honeywell.com>
  940. Kurt Fuchs <mailto:fs_fuchs@rcsw56.rcvie.co.at>
  941. Milt Fulghum <mailto:fulghum@vss.fsi.com>
  942. Donald Gillies <mailto:gillies@ee.ubc.ca>
  943. Jean-Christophe Monfret <mailto:jeanchristophe.monfret@barco.com>
  944. Marcelo C Mourier <mailto:mmourier@atmsys.com>
  945. David L. Oseas <mailto:doseas@americasttv.com>
  946. Alan F. Perry <mailto:alanp@eng.sun.com>
  947. David B. Stewart <mailto:dstewart@cmu.edu>
  948. John Theus <mailto:john@theus.rain.com>
  949. Alexander Vrchoticky <mailto:alex@vmars.tuwien.ac.at>
  950. Christopher Vickery
  951. Lee Brown
  952. A. Lester Buck
  953. David Hansen
  954. Russ Hersch
  955. Rob Lesieur
  956. Dave Lunger
  957. mailto:alex@vmars.tuwien.ac.at
  958.  
  959. I welcome reactions, additions, and corrections to these postings via
  960. mailto:b.van.beneden@dedicated-systems.com
  961.  
  962. Dedicated Systems Experts NV
  963. Gerechtsstraat 21
  964. 1070 Brussels
  965. BELGIUM
  966. Tel: +32-2-520 5577
  967. Fax: +32-2-520 8309
  968. mailto:b.van.beneden@dedicated-systems.com
  969. http://www.dedicated-systems.com
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.