Skip to main content

CSC 501 Operating Systems Principles

3 Credit Hours

The goal of this course is for students to understand advanced topics in operating systems: scheduling, virtual memory, synchronization, file systems, and distributed systems. The material will be covered in terms of operating systems internals rather than the operating systems interface. Students will also read, present, and discuss representative research papers (from classical articles to recent publications in top systems conferences) on various topics related to operating systems.

Prerequisite

CSC 246 (Concepts and Facilities of Operating Systems for Computer Scientists), CSC 316 (Data Structures), and programming competence in C (not C++) and Unix.

Course Objectives

By the end of the semester, students should be able to do the following:

Scheduling: Students will be able to recite different scheduling paradigms; to paraphrase qualitative and quantitative properties of these paradigms; to derive a schedule for given parameters; to model quantitative properties of scheduling paradigms; to incorporate protocol extensions into existing scheduling models; to contrast different scheduling approaches.

Memory Management: Students will be able to reiterate the principles of memory management, including hardware and software support for virtual memory; to express operational properties of address translation; to perform the calculations of address translation; to predict the impact on TLB misses; to apply virtual addresses in runtime systems; to judge the merits and shortcomings of virtual memory usage.

Synchronization: Students will be able to list different synchronization models; to explain the operational characteristics of these models; to use these facilities in concurrent programming models; to contrast these models; to realize synchronization for contemporary architectures; to select a suitable synchronization paradigm for a given problem.

Distributed Systems: Students will be able to characterize the impact of distributed systems on operating systems and runtime support; to explain operational characteristics of distributed protocols and services; to algorithmically solve a problem within a distributed environment; to analyze the performance of a solution.

Course Materials, Format & Activities

Materials:

There is no textbook for this course. Lecture slides covering both basic operating system concepts and the state of the art research papers will be used instead of textbooks.

All students are required to read assigned papers carefully before the classes.

Lecture formats:

  • Instructor Presentation
  • Student Presentation

Class Participation:

Class attendance is required. Besides paper presentations, students are expected to be actively participating in class discussions and off-class discussions on our wolfware message board.

Updated: 5/14/2025