Principles of Real-Time Software Engineering 



Table of Contents

Table of Contents 
    Chapter l Introduction
      A Simple Exercise
      Evaluation Criteria
    Chapter 2.Preemptive Systems
      Preemption
      Preemptive Scheduling
      Fundamentals of Latency
        Discussion
          The Book Problem
          The Bakery
        An Example of a Blocking Hazard
          Discussion
        Summary
          New Terminology
          Issues
      Exercise
    Chapter 3.Language, Complexity, and the Problem of Time
      Reducing Functional Complexity
        Real-Time Design
    Chapter 4. Elements of Preemptive Process Control
      Traditional Executable Software Structures
        Data References
        Synchronizers
          Binary Semaphore
          Counting Semaphore
          Monitor
          Rendezvous
          Mail Box
          Pipes
        Programs
        Processes
        Subroutines
      The Scheduling Structures of a Process
        Properties of Schedulable Segments
        Preemptive Scheduling Process Management
      Summary
      References
      Exercises
    Chapter 5. Hardware
      Dialog
      Non-Periodic Situations
      Specifying Temporal Utilization Constraints
      Specifying Spatial Utilization
        Stacks
      Dialogue
        Heaps
        Buffers
      Network and Processor Bus Utilization
      Resource Utilization Measurement Strategies
      Summary
      Exercises
    Chapter 6. Schedulable Sets
      The Idea of Time Complexity
      Summary
      Exercises
    Chapter 7. Prioritizing Hard Real-Time Sets
      Cyclic Scheduling
        Major and Minor Cycles
        Margin Time
        Adding Background Tasks to Cyclic Scheduling
        Polling vs. Interrupt Handlers
        The Downside of Cyclic Executives
        Cyclic Scheduling is a Proven Techniques
      Comparing Preemptive Scheduling to Cyclic Scheduling
        The Cost of Preemptive Scheduling
        Preemptive Scheduling Latency
        Processes Activation
      Determining Schedulability
        Assigning Priority Using the Rate Monotonic Method
        The Critical Instance Test
        Rate Monotonic Algebra
      Pre-Period Deadlines
      Blocking
        The Client/Server Model
        Server Preemption
      Client/Server Protocols
        Ada Task Rendezvous Protocol
        The Priority Ceiling Protocol
      Adding Blocking to Schedulability Testing
      Accounting For Criticality
      Summary
      Exercises
    Chapter 8. Prioritizing Soft Real-Time (SRT) Processes
      Structure within the Soft Real-Time Set
      Assured SRT
      Average SRT
      Intermittent Schedulability
      SRT Scheduling in Cyclic Environments
      Preemptive, Priority-driven Environments
      Summary
      Exercises
    Chapter 9. Structured Analysis with Resource Constraints
      Dividing the World into Hard and Soft Real-Time
      Documenting Periods and Period Guards
      Specifying Resource Consumption
      Reuse Software
      Custom Software
      Using Design Models to Estimate Resource Consumption Of a System
        Ssegment Identification
        Priority Inversion Analysis
      Management of Shared Data
      Summary
      Exercises
    Chapter 10. Some Hard Real-Time Numeric
      Algorithms
      Square Root
      Sine/Cosine
      Arc Tangent
      Summary
      Exercises
    Chapter 11. The Requirements Definition Phase
      The Goal of the Requirements Phase
      Performing The Translation Step
      Performing The Hardware/Software Elaboration Step
      Standard Architectures
      Summary
      Exercises
    Chapter 12. The Design Phase
      Some Observations on Common Practice
        Designs and reports of designs
        COT'S details
        Interprocess Communication
        Designs are not static
        Independence of development teams
      Selecting Scheduling Algorithms
        Difficulties with Static Priority Assignments
        Keeping It Predictable
      Goals of Design
      Goal 1. Separation of Software Into Manageable Components
      Goal 2. Establishment of Relationships Between Components
        Some Side Effect Risks
        The Solution
        What to look for
        Impact of Using Synchronizers
        How to Build Synchronizers Into Your Design
        Real World Example of Goal 2
      Goal 3. Hardware/Software Mapping
        SubGoal 3: Minimize mapping of HRT functions across resources
      Goal 4: Selection of Scheduling Methods
        Context Switching:
        Scheduling techniques:
        Disks storage
        Networking
      Goal 5: Provide Details of Component Specifications
      Goal 6: Exhibit Good Characteristics
      Planning for Integration
      Exercises
    Index