↑ Real Time Systems: Assignments

Assignment: Using Threads

 

Due Dates and Times:       (See the Course Calendar.)

Summary:

You are to redesign your solution to the gizmo control program, using one thread per logical activity, and re-measure its performance using your benchmark program from the previous assignment.

This may be a team assignment. You may work with one or two other people. However, for variety, if you worked in a team on the first gizmo controller you are required to choose a new partner for this one.

Objectives:

Tasks:

  1. (preliminaries) Preserve your solution to the gizmo controller assignment.

  2. Redesign and re-code your solution, using four threads as follows:

    See class notes on threads for more information.

  3. Using your solution to the load measurement assignment, with whatever improvements you choose to put in, measure and compare the loads of the old an new gizmo controllers over a range of interval lengths.

  4. Demonstrate your program, and turn in hard copy of the code with plots of the demand functions for the old and new versions of the gizmo controller.

Advice:

  1. Assign priorities based on deadline or rate-monotonic order
  2. Use pthread_mutex_setprotocol with PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT (check which of these are supported by TimeSys)
  3. ...Need more advice? Ask, and I'll reply by e-mail...

Assessment:

The solutions will be judged primarily on how well they make use of the thread style of programming, including appropriate use of mutexes and condition variables. As usual, they will also be judged on the simplicity, readability, clarity, and documentation of the code.

© 2006 T. P. Baker. ($Id$)
p