Skip to main content

CSC 501 Operating Systems Principles

3 Credit Hours

Fundamental issues related to the design of operating systems. Process scheduling and coordination, deadlock, memory management and elements of distributed systems.

Prerequisite

CSC 246-Concepts and Facilities of Operating Systems, CSC 314-Data Structures and MA 421-Introduction to Probability

Computer organization and architecture, basic assembly language programming, Programming in C/C++, Basic Unix environment

Course Objectives

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

Multi-Tasking: Students will be able to reiterate states in a transitions of tasks; to explain non-local transfers of control; to determine context switching details; to design and implement core multi-tasking functionalities; to critique different implementation choices.

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.

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.

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
  • Guest presentation

Class Participation:

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

Textbook

None.