CS452 - Real-Time Programming - Spring 2008

Lecture 19 - Interrupt Service Routines


Questions & Comment

  1. Friday
  2. ASUS P4P800-VM
  3. 82801EB southbridge
  4. W83627THF

Interrupt Service Routines

Example

error = Delay( int interval );

Delay( ) is a stub that Sends a message to the clock server.

Possible errors

Clock server manages a queue of tasks to wake up

Hardware

8254 timer

8259 interrupt controller

Remember

  1. three places that interrupts can be turned off
    1. device
    2. interrupt controller
    3. CPU
  2. CPU requires edge-triggered

Basic Service

  1. Save more state
  2. Locate interrupt source
  3. Service the hardware
  4. return from interrupt

Where should each part of this be done?

Low-level primitive

int AwaitEvent( int EventType );

Implementation notes

  1. Event may already have occurred
  2. AwaitEvent( ) can service the device.
  3. Need to think of priorities when you partition the work
  4. Kernel has interrupts turned off


Return to: