Course Description
Please note that in this delivery of SCICOMP301, the topic is operating systems.

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.