Description
A general introduction to real-time programming and real-time issues, this book covers the POSIX.4 standard and how to use it to solve "real-world" problems. If you're at all interested in real-time applications -- which include just about everything from telemetry to transaction processing -- this book is for you. An essential reference.
Full Description
What's "real-world programming"?
Real-world programming (typically called real-time programming) is programming that interacts in some way with the "real world" of daily life. At one time, real-time systems were confined to very esoteric applications, like rocket guidance systems. Now, they play a role in almost every aspect of life: they control the brakes on your car, video games, automatic bank tellers -- and the disk drive in your computer. It won't be long before mundane devices like toasters and hair dryers have microprocessors built in, to say nothing of multimedia devices that haven't even been invented yet.
Real-world applications are characterized by deadlines. If the brake processor in your car doesn't meet a deadline, your car doesn't stop; if your video game doesn't meet a deadline, the Klingons don't die when you shoot them; if your ATM doesn't meet a deadline, you may start looking for another bank. When you've just rear-ended another car, it's no consolation that a sudden flurry of input slowed down your brake processor, so it couldn't react quickly enough when you hit the pedal.
This book covers the POSIX.4 standard for portable real-time programming. The POSIX.4 standard itself is a massive document that defines system interfaces for asynchronous I/O, scheduling, communications, and other facilities. However, this book does more than explain the standard. It provides a general introduction to real-time programming and real-time issues: the problems software faces when it needs to interact with the real world and how to solve them. And, unlike most books about standards, this one isn't just readable -- it's enjoyable! If you're at all interested in real-time applications -- which include just about everything from telemetry to transaction processing -- this book will be an essential reference.
Chapters include:
- The Basics of Real-Time: Multiple Tasks
- Better Coordination: Messages, Shared Memory, and Synchronization
- On Time: Scheduling, Time, and Memory Locking
- I/O for the Real World
Includes programming exercises, solutions, and reference manual pages.
Colophon
Edie Freedman designed the cover of this book. The graphic is adapted from an engraving explaining "Mechanics" that Edie found in a London print shop: "Published as the Act directs, 1829, by Longman, Hurst, Rees, Orme, & Brown, Paternoster Row, London." The cover layout was produced using Quark XPress 3.3 and Adobe Photoshop 2.5 software, in Adobe ITC Garamond font.
Jennifer Niederst designed the interior layout. Text was prepared in SGML using the DocBook 2.1 DTD. The print version of this book was created by translating the SGML source into a set of gtroff macros using a filter developed at ORA by Norman Walsh. Steve Talbott designed and wrote the underlying macro set on the basis of the GNU gtroff -gs macros; Lenny Muellner adapted them to SGML and implemented the book design. The GNU groff text formatter version 1.09 was used to generate PostScript output. The fonts used are Adobe ITC Garamond and a slightly darkened version of Adobe Courier.
The illustrations that appear in the book were created in Aldus Freehand 4.0 by Chris Reilley.