Teaching operating systems with Modula-2

Programming projects in an operating systems course expose students to issues involved in the design and implementation of operating systems. The Modula-2 language provides features needed in such projects. This paper overviews the capabilities of Modula-2 and describes a programming project in which students implement a process manager for an operating system. The process manager supports concurrent processes and provides operations for their synchronization and communication.