COMP 421/ELEC 421, COMP 521/ELEC 552:

Operating Systems and Concurrent Programming

Spring 2020

  Rice logo  

Lab #1: Threads, Concurrency, and Operating System Device Drivers

Through this assignment, you will be able to gain practical experience programming concurrent systems using threads and a monitor. You will also gain experience with the operation and complexities of device drivers in operating systems. In particular, this project requires you to implement a terminal device driver using a Mesa-style monitor. Your terminal driver must use only the provided Mesa monitor routines for its synchronization, and must use only a single monitor.

This project must be done individually. The second and third projects in this class will be done in groups of 2 students, but you must do this first project individually.

This project is conducted under the Rice Honor Code, a code that you pledged to honor when you matriculated at Rice.

The project is due by 11:59 PM, Wednesday, February 12, 2020.

Project Information

  • The project description handout (PDF)

  • As stated in the project description, your solution must be implemented in the C programming language (e.g., not in C++ or other languages).

  • An example of how to correctly write a monitor in C is provided in the directory /clear/courses/comp421/lab1/philosophers (and in an appendix at the end of the project description). You must structure your terminal device driver monitor as shown there and described in the project description.

  • Remember: You may not create any threads that are simply a part of your terminal device driver. Instead, the only threads you may create should be the users of your terminal driver (those that call ReadTerminal and WriteTerminal, etc.).

[Back to COMP 421 homepage]