Operating Systems - Projects and Exercises

These projects and associated exercises have been designed to complement Operating Systems courses based on "Operating Systems - Internals and Design Principles", William Stallings, Prentice Hall, 5th Edition, 2004.

The exercises provide incremental solving of the problems presented for the projects. It is recommended that all the exercises be completed in the suggested order to be able to address the projects properly.
The exercises assume that students will be using the C programming language on a UNIX platform. However, there is no reason why other languages (C++, Java, even Perl,...) could not be used on this or other platforms.

The level of programming expertise required is that provided by a 1st year Programming course. A familiarity with the use of pointers and the ability to use linked lists is assumed.

Projects
  1st Project - A Simple Shell
  2nd Project - The HOST Dispatcher Shell
Reference Material
  Standard C Library Reference
  The GNU C Library Reference
    (most up-to-date version available from http://www.gnu.org/software/libc/)
  C Programming Debugging Guide (gdb)
  Debugging With The GNU Symbolic Debugger
    (most up-to-date version available from http://www.gnu.org/software/gdb/)
Exercises
  Exercise 1 - The Operating System Shell
  Exercise 2 - Rolling Your Own Shell
  Exercise 3 - Enhancing Your Shell
  Exercise 4 - Adding fork and exec To Your Shell
  Exercise 5 - I/O Redirection
  Exercise 6 - Finishing Off Your Shell
 

1st Project deadline
  Exercise 7 - A Batch Process Monitor
  Exercise 8 - A Round Robin Dispatcher
  Exercise 9 - A Feedback (q=1) Dispatcher
  Exercise 10 - Memory Allocation
  Exercise 11 - Resource Allocation
  Exercise 12 - Polishing Your Dispatcher
  2nd Project deadline
top

For use only by students and instructors using the supplementary material available with the text book: "Operating Systems - Internals and Design Principles", William Stallings, Prentice Hall, 5th Edition, 2004. Not to be printed out or copied by any other persons or used for any other purpose without written permission of the author(s).

©