The course will introduce Operating Systems (OS), their design and Implementation. We will discuss the goals of an OS, and some successful and not-so successful OS designs. We will also discuss the following OS services in detail: thread scheduling, security, virtual memory, and file system. In this course we will explore the core principles of operating systems design and implementation, including basic operating system structure;
process and thread synchronization and concurrency; file systems and storage servers; memory management techniques; process scheduling and resource management; virtualization; and security.