The objective of the course is to introduce the fundamental concepts and principles that modern Operating Systems use to both manage resources and help users develop effective applications. Classic concepts including batch processing, time sharing, kernel design, interfaces, system programs, system calls, services, multi-programming, process synchronization, shared memory, resource allocation schemes and pertinent policies, multi-threading, file system structures as well as basic security mechanisms are introduced. The study of the subject is balanced with programming and homework assignments throughout the semester. The course requires both independent and consistent effort from the student.
Textbook: A. Silberschatz, P.B. Galvin, G. Gagne,Operating System Concepts,9th Edition, John Wiley & Sons, Inc., 2013.
Secondary Textbook: R. Arpaci-Dusseau and A. Arpaci-Dusseau,Operating Systems: Three Easy Pieces, Arpaci-Dusseau Books,LLC, 2016.