CS 3304
Homework Assignment 5

Given: July 30, 1997 Due: August 6, 1997

The point value of each problem is shown in [ ]. The assignment must be received by the beginning of class on August 6, 1997. Note that this is a Wednesday. The deadline for late submissions remains 5:00 PM on August 6, 1997.

When the problem asks for an explanation, give a clearly written justification of your answer.

Two books on Ada have been placed on reserve in Newman library for your reference:

There are other books on Ada in the stacks.

[15] 1.

A particular Ada program models two commodities, known as red and blue. There are producer and consumer tasks that produce and consume these commodities as follows:

  1. Producer producer1 always produces three red's and one blue at a time;
  2. Producer producer2 always produces one red and three blue's at a time;
  3. Consumer consumer1 always consumes five red's and two blue's at a time;
  4. Consumer consumer2 always consumes three red's and five blue's at a time; and
  5. Consumer consumer3 always consumes four red's and four blue's at a time.
Each producer and consumer has its own Ada task.

Implement one or more Ada tasks to accomplish the buffering required by the above producer/consumer problem. Give a scenario in which your solution deadlocks. Explain how to avoid that deadlock.



[15] 2.

Assume a program written in Ada has three tasks, searcher, builder, and printer, that are written to loop forever, each doing its own specialized job. Of course, an exception may cause one of these tasks to exit prematurely. You are to add a new task watcher to the program that also loops forever and that checks up on the health of each task every minute or so (see the Ada delay statement in section 9.6 of the reference manual). If a task has failed, then watcher restarts it.

When the Ada run time system is unable to start up a task or when a rendezvous fails for any reason, it raises the TASKING_ERROR exception.

Use Ada exception handling to implement the watcher task, and explain what changes need to be made to searcher, builder, and printer to accommodate the watcher function. If there are any limitations to your solution, point those out.



[15] 3.

Chapter 14, Problem 5.



[15] 4.

Chapter 14, Problem 7.



About this document ...

This document was generated using the LaTeX2HTML translator Version 96.1 (Feb 5, 1996) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html -split 0 -t CS 3304 Homework Assignment 5 homework5.

The translation was initiated by cs3304sm class account on Wed Jul 30 13:38:09 EDT 1997


cs3304sm class account
Wed Jul 30 13:38:09 EDT 1997