POSIX 4 Programming For The Real World
O'Reilly Media (Verlag)
978-1-56592-074-3 (ISBN)
- Titel z.Zt. nicht lieferbar
- Versandkostenfrei
- Auch auf Rechnung
- Artikel merken
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 Measuring Real-Time Performance Includes programming exercises, solutions, and reference manual pages.
Bill O. Gallmeister has been writing operating system software for an alarming number of years. Initially trained in BSD code at Valid Logic Systems and Sun Microsystems, he was briefly exposed to System V, an experience which drove him screaming into the dank wilderness of real-time. At Lynx Real-Time Systems, he developed the first complete implementation of POSIX.4 and POSIX.4a threads. During this time, he was vice-chair of POSIX.4. Following this adventure, he took another look at the current state-of-the art in UNIX systems. This caused him to head for the multimedia frontier. He can now be found at First Virtual Corporation, doing high-velocity file system work for a networked monster multimedia machine. Bill earned his bachelor's in computer science at UC Santa Barbara, which entitles him to work barefoot. He earned his master's in computer science at Chapel Hill, which entitles him to use large words like "avuncular." When not occupied in programming, Bill engages in activites typical of BWGs (see preface) in Silicon Valley: hanging out with his wife and son, drinking expensive coffee drinks, cooking and eating strange foreign foods, reading, watching bad science fiction movies, and riding his bike around the hills above Los Gatos. His email address is bog@fvc.com.
Preface. Part 1: Programming for the Real World. Chapter 1: Introduction What's POSIX? Doing More the POSIX Way The POSIX Environment The Applications Are Varied The Problems Are the Same Some Solutions to These Problems What POSIX Does Not Do. Chapter 2: The POSIX Way What POSIX Is Compile-Time Checking Run-Time Checking Headers and Namespace Pollution Who's Got What? Conclusion. Chapter 3: The Basics of Real-Time: Multiple Tasks Doing Everything at Once Running in Cycles Multiple Processes Signals Conclusion Exercises. Chapter 4: Better Coordination: Messages, Shared Memory, and Synchronization Communicating Between Processes POSIX.1 Communication: Pipes and FIFOs System V Message Queues POSIX.4 Message Queues POSIX.4 Shared Memory and File Mapping Synchronizing Multiple Processes Conclusion Exercises. Chapter 5: On Time: Scheduling, Time, and Memory Locking Trying to Make Things Happen On Time Rates and Responses Standard Scheduling Solutions Under UNIX Portable Real-Time Scheduling: the POSIX.4 Scheduling Interfaces Making Things Happen On Time Keeping Your Memory Handy: UNIX and POSIX Memory Locking Brass Tacks Nice but Not Necessary: How to Make the Time Readable Conclusion Exercises. Chapter 6: I/O for the Real World I/O Is Everything I/O in Real-Time Systems UNIX Has a Problem with Real-Time I/O Standard UNIX Facilities for Real-World I/O Achieving Greater Control over File Operations Asynchronous I/O: I/O While You Don't Wait Deterministic I/O Conclusion Exercises. Chapter 7: Performance, or How to Choose an Operating System Performance in Real-Time Systems Measuring the Right Thing Metrics for POSIX Systems Conclusion Exercises. Part 2: Manpages.... Part 3: Solutions to Problems Appendix A: Exercise Code. Chapter 3: The Basics of Real-Time: Multiple Tasks. Chapter 4: Better Coordination: Messages, Memory, and Synchronization. Chapter 5: On Time: Scheduling, Time, and Memory Locking. Chapter 6: I/O for the Real World. Chapter 7: Performance, or How To Choose an Operating System. Bibliography. Index. List of Figures. 1-1 Mandatory and optional parts of POSIX.1 and POSIX.4 1-2 Real-time control loop-one device 1-3 Real-time control loop-multiple devices 1-4 Terminals and server 1-5 Multiple servers 2-1 Cross development 2-2 POSIX conformance checking-basic outline 4-1 Result of simultaneous dequeue by two processes 4-2 mmap is used for mapping differing sorts of objects 4-3 How mmap's arguments refer to the mapped region 4-4 A counting semaphore over time 4-5 Mutex and condition variables 5-1 Real-time device monitoring and control 5-2 Race condition when setting an absolute timer by yourself 5-3 Layers of software between you and an errant program 6-1 Normal UNIX disk layout and optimal layout for sequential access 6-2 How AIO proceeds 6-3 Asynchronous I/O error and return status 6-4 Race condition between seek and read/write 6-5 Preventing bad things from happening 7-1 The computer responds 7-2 Layers of an I/O implementation 7-3 Non-contested use of semaphores 7-4 Two processes (P) signalling each other with semaphores (S) 7-5 A generic performance measurement 7-6 Responsiveness measurement application 7-7 External measurement of interrupt and task response. List of Tables. 1-1 Status of POSIX standards as of April, 1994 2-1 The Menu for POSIX.1 Functionality 2-2 The Menu for POSIX.4 Functionality 2-3 _POSIX_VERSION Possible Values 2-4 POSIX Feature Limits: Maxima 2-5 POSIX Feature Limits: Minimum Requirements 2-6 sysconf Options 2-7 pathconf and fpathconf Options 2-8 POSIX Reserved Namespaces 3-1 Signals Required by POSIX (Default Action Termination) 3-2 POSIX Optional Signals 4-1 Coordination Mechanisms 4-2 How to Get Various Shared Memory and File Mapping Facilities 5-1 Example rate-monotonic priority ssignments
Erscheint lt. Verlag | 9.10.1996 |
---|---|
Verlagsort | Sebastopol |
Sprache | englisch |
Einbandart | kartoniert |
Themenwelt | Mathematik / Informatik ► Informatik ► Betriebssysteme / Server |
ISBN-10 | 1-56592-074-0 / 1565920740 |
ISBN-13 | 978-1-56592-074-3 / 9781565920743 |
Zustand | Neuware |
Haben Sie eine Frage zum Produkt? |
aus dem Bereich