Course description:
Introduction to the fundamental principles of operating system design.
The concepts and algorithms covered in the course are based on those
used in both commercial and open-source operating systems. We present
these concepts and algorithms in a general setting that is not tied to
one particular operating system. However, we present a large number of
examples that pertain to the most popular and the most innovative
operating systems, including Linux, Microsoft Windows, Apple Mac,
Solaris, Android and iOS. We also assign some simple coding labs
to help students understand important knowledge
and representative algorithms used in operating systems,
such as CPU scheduling, synchronization and
virtual memory.