An experience teaching operating systems course with a programming project

  • Authors:
  • Suban Krishnamoorthy

  • Affiliations:
  • Computer Science, Framingham State College, Framingham, MA

  • Venue:
  • Journal of Computing Sciences in Colleges
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

An operating system course can be taught with or without a programming project. The author has found that teaching it with a programming project has several advantages. In particular, students gain the valuable implementation experience of the essential features of an operating system, testing, debugging a large program, and validation of principles of operating systems they learn in the class. The author has designed a multiprocessing operating system called MTOPS for this purpose. It has been used as a programming project in a semester-long undergraduate operating systems course at the senior level. The project covers features such as process management, including scheduling algorithms, memory management, process synchronization, interprocess communication, I/O management, timer management, simulation of a two-address machine with a stack, event simulation, assembly language programming and hand assembly to machine language program, and an absolute loader. The design of the project is such that the students have the option to use any high-level language such as C, C++ or Java for implementation on any host, including a Personal Computer. The hardware for MTOPS is simulated. The project is implemented in the form of four homeworks. User programs to test the hardware and operating systems are written in assembly language first and then hand assembled into machine language. Student evaluation has shown that the project, though highly demanding, has been well received by students.