CS 303 is an introductory course to operating systems. Operating systems are an essential part of any computer system. Operating systems vary significantly, but their fundamental principles remain the same. In this course you will be introduced to the basic concepts of operating systems, see how they manage resources such as memory, peripherals, and schedule CPU time, learn how to use the system call interface and how to create processes and synchronize them, learn how applications communicate, understand the memory hierarchy and see how virtual memory is managed, understand how files are managed and stored, and much more.