You are previewing Real-Time Systems.
O'Reilly logo
Real-Time Systems

Book Description

The presence and use of real-time systems is becoming increasingly common. Examples of such systems range from nuclear reactors, to automotive controllers, and also entertainment software such as games and graphics animation. The growing importance of rea

Table of Contents

  1. Cover
  2. Title Page
  3. Contents
  4. List of Figures
  5. Preface
  6. 1. Introduction
    1. 1.1 What is Real Time?
    2. 1.2 Applications of Real-Time Systems
    3. 1.3 A Basic Model of a Real-Time System
    4. 1.4 Characteristics of Real-Time Systems
    5. 1.5 Safety and Reliability
      1. 1.5.1 How to Achieve High Reliability?
      2. 1.5.2 Software Fault-Tolerance Techniques
    6. 1.6 Types of Real-Time Tasks
    7. 1.7 Timing Constraints
      1. 1.7.1 Events in a Real-Time System
      2. 1.7.2 Classification of Timing Constraints
      3. 1.7.3 Examples of Different Types of Timing Constraints
    8. 1.8 Modelling Timing Constraints
    9. Summary
    10. Exercises
  7. 2. Real-Time Task Scheduling
    1. 2.1 Some Important Concepts
    2. 2.2 Types of Real-Time Tasks and Their Characteristics
    3. 2.3 Task Scheduling
      1. 2.3.1 A Few Basic Concepts and Terminologies
      2. 2.3.2 Classification of Real-Time Task Scheduling Algorithms
    4. 2.4 Clock-Driven Scheduling
      1. 2.4.1 Table-Driven Scheduling
      2. 2.4.2 Cyclic Schedulers
      3. 2.4.3 A Generalized Task Scheduler
      4. 2.4.4 Comparison of Cyclic with Table-Driven Scheduling
    5. 2.5 Hybrid Schedulers
    6. 2.6 Event-Driven Scheduling
    7. 2.7 Earliest Deadline First (EDF) Scheduling
      1. 2.7.1 Is EDF Really a Dynamic Priority Scheduling Algorithm?
      2. 2.7.2 Implementation of EDF
      3. 2.7.3 Shortcomings of EDF
    8. 2.8 Rate Monotonic Algorithm (RMA)
      1. 2.8.1 Can the Achievable CPU Utilization Be Any Better Than What was Predicted?
    9. 2.9 Some Issues Associated with RMA
      1. 2.9.1 Advantages and Disadvantages of RMA
      2. 2.9.2 Deadline Monotonic Algorithm (DMA)
      3. 2.9.3 Context Switching Overhead
      4. 2.9.4 Self Suspension
      5. 2.9.5 Self Suspension with Context Switching Overhead
    10. 2.10 Issues in Using RMA in Practical Situations
      1. 2.10.1 Handling Critical Tasks with Long Periods
      2. 2.10.2 Handling Aperiodic and Sporadic Tasks
      3. 2.10.3 Coping with Limited Priority Levels
      4. 2.10.4 Dealing with Task Jitter
    11. Summary
    12. Exercises
  8. 3. Handling Resource Sharing and Dependencies Among Real-Time Tasks
    1. 3.1 Resource Sharing Among Real-Time Tasks
    2. 3.2 Priority Inversion
    3. 3.3 Priority Inheritance Protocol (PIP)
    4. 3.4 Highest Locker Protocol (HLP)
    5. 3.5 Priority Ceiling Protocol (PCP)
    6. 3.6 Different Types of Priority Inversions Under PCP
    7. 3.7 Important Features of PCP
    8. 3.8 Some Issues in Using a Resource Sharing Protocol
      1. 3.8.1 Using PCP in Dynamic Priority Systems
      2. 3.8.2 Comparison of Resource Sharing Protocols
    9. 3.9 Handling Task Dependencies
    10. Summary
    11. Exercises
  9. 4. Scheduling Real-Time Tasks in Multiprocessor and Distributed Systems
    1. 4.1 Multiprocessor Task Allocation
    2. 4.2 Dynamic Allocation of Tasks
    3. 4.3 Fault-Tolerant Scheduling of Tasks
    4. 4.4 Clocks in Distributed Real-Time Systems
      1. 4.4.1 Clock Synchronization
    5. 4.5 Centralized Clock Synchronization
    6. 4.6 Distributed Clock Synchronization
    7. Summary
    8. Exercises
  10. 5. Commercial Real-Time Operating Systems
    1. 5.1 Time Services
      1. 5.1.1 Clock Interrupt Processing
      2. 5.1.2 Providing High Clock Resolution
      3. 5.1.3 Timers
    2. 5.2 Features of a Real-Time Operating System
    3. 5.3 Unix as a Real-Time Operating System
      1. 5.3.1 Non-Preemptive Kernel
      2. 5.3.2 Dynamic Priority Levels
      3. 5.3.3 Other Deficiencies of Unix
    4. 5.4 Unix-Based Real-Time Operating Systems
      1. 5.4.1 Extensions to the Traditional Unix Kernel
      2. 5.4.2 Host-Target Approach
      3. 5.4.3 Preemption Point Approach
      4. 5.4.4 Self-Host Systems
    5. 5.5 Windows as a Real-Time Operating System
      1. 5.5.1 Important Features of Windows NT
      2. 5.5.2 Shortcomings of Windows NT
      3. 5.5.3 Windows NT versus Unix
    6. 5.6 POSIX
      1. 5.6.1 Open Software
      2. 5.6.2 Genesis of POSIX
      3. 5.6.3 Overview of POSIX
      4. 5.6.4 Real-Time POSIX Standard
    7. 5.7 A Survey of Contemporary Real-Time Operating Systems
      1. 5.7.1 PSOS
      2. 5.7.2 VRTX
      3. 5.7.3 VxWorks
      4. 5.7.4 QNX
      5. 5.7.5 μxC/OS-II
      6. 5.7.6 RT Linux
      7. 5.7.7 Lynx
      8. 5.7.8 Windows CE
    8. 5.8 Benchmarking Real-Time Systems
      1. 5.8.1 Rhealstone Metric
      2. 5.8.2 Interrupt Processing Overhead
      3. 5.8.3 Tridimensional Measure
      4. 5.8.4 Determining Kernel Preemptability
    9. Summary
    10. Exercises
  11. 6. Real-Time Communication
    1. 6.1 Examples of Applications Requiring Real-Time Communication
    2. 6.2 Basic Concepts
      1. 6.2.1 Types of Networks
      2. 6.2.2 Quality of Service (QoS)
      3. 6.2.3 Traffic Categorization
    3. 6.3 Real-Time Communication in a LAN
    4. 6.3.1 LAN Architectures
    5. 6.4 Soft Real-Time Communication in a LAN
    6. 6.5 Hard Real-Time Communication in a LAN
      1. 6.5.1 Global Priority-Based Scheduling
      2. 6.5.2 Calendar-Based Protocol
    7. 6.6 Bounded Access Protocols for LANs
      1. 6.6.1 IEEE 802.4
      2. 6.6.2 RETHER
      3. 6.6.3 Switched Real-Time Ethernet
    8. 6.7 Performance Comparison
    9. 6.8 Real-Time Communication Over Packet Switched Networks
      1. 6.8.1 A Basic Model of Internet
      2. 6.8.2 Traffic Characterization
    10. 6.9 QoS Framework
    11. 6.10 Routing
      1. 6.10.1 Routing Algorithms
      2. 6.10.2 Multicast Routing
    12. 6.11 Resource Reservation
      1. 6.11.1 Resource reSerVation Protocol (RSVP)
    13. 6.12 Rate Control
      1. 6.12.1 Service Discipline
      2. 6.12.2 Traffic Distortion and Its Control
      3. 6.12.3 Types of Service Disciplines
      4. 6.12.4 Work Conserving Discipline
      5. 6.12.5 Non-Work Conserving Disciplines
    14. 6.13 QoS Models
      1. 6.13.1 Integrated Services
      2. 6.13.2 Differentiated Services
    15. Summary
    16. Exercises
  12. 7. Real-Time Databases
    1. 7.1 Example Applications of Real-Time Databases
    2. 7.2 Review of Basic Database Concepts
    3. 7.3 Real-Time Databases
      1. 7.3.1 Real-Time Database Application Design Issues
    4. 7.4 Characteristics of Temporal Data
      1. 7.4.1 Temporal Consistency
    5. 7.5 Concurrency Control in Real-Time Databases
      1. 7.5.1 Locking-Based Concurrency Control
      2. 7.5.2 Optimistic Concurrency Control Protocols
      3. 7.5.3 Speculative Concurrency Control
      4. 7.5.4 Comparison of Concurrency Control Protocols
    6. 7.6 Commercial Real-Time Databases
    7. Summary
    8. Exercises
  13. Bibliography
  14. Glossary
  15. Copyright