COMP 410: Operating Systems
This is a course in Operating Systems discussing both standalone and distributed environments. The focus of the course is to understand the underlying technologies that make contemporary operating systems work efficiently. We will discuss processes, threads, synchronization, I/O, file systems, memory management, transactions and system coordination techniques. Through this course we will discover how these technologies are integrated into the systems we use today and then utilize these technologies and apply them to practical applications.
This is NOT a programming intensive course, however, students will be expected to complete some programming in C with plenty of examples and assistance along the way. You certainly don't need to know how to program in C today. In addition, the completion of a technical paper on an OS related subject will also be expected.
Everyone currently in, or planning to enter the IT field should have a grasp on these components as they effect every area of the day to day operation of IT technology. Reference systems will include both Linux and Windows.
Since this course is an advanced study of Operating Systems, it is assumed that the student has already taken an undergraduate Operating System course. The course covers:
- processes and threads (particularly the concepts of kernel threads, user threads, and lightweight processes);
- process and thread scheduling (time-sharing, real-time);
- file systems (including network file systems);
- communications (including RPC and sockets);
- synchronization (introducing mutexes and condition variables in addition to semaphores);
- Inter Process Communications (POSIX pipes, FIFOs, message queues, shared memory);
- security issues (including authentication and access control).