There is no required textbook for this course.

An operating system (OS) is system software that is the interface between hardware and applications. The course begins by introducing the typical structure of an OS, by distinguishing between processes and threads, and by explaining how an OS schedules work. Then consideration is given to the issues of concurrency, memory management, and file systems. The second meeting of the class each week is entirely devoted to laboratory work where students tackle exercises and demonstrate their work. Projects are undertaken to provide practical experience of modelling concurrency with Petri Nets, evaluating scheduling algorithms, and investigating part of an OS. An individual project provides practical experience of writing concurrent code. There is a written midterm exam and a written final exam. By the end of the course a student will have obtained a reasonable familiarity with how an OS manages resources and provides services to applications.
SCICOMP301TopicsCourseOutlineFall2020.pdfSCICOMP301TopicsCourseOutlineFall2020.pdfthe Computer Science track.pdfthe Computer Science track.pdf