This is an introductory course on operating systems. The topics include the basic concepts of operating systems, process and threads, inter-process communications, process synchronization, scheduling, deadlock, memory allocation, page and segmentation, secondary storage, I/O systems, file systems, basic security and protection. It contains the key concepts as well as examples drawn from a variety of real systems in particular from Linux.
- Describe what is an operating system and the role it plays. Recognize different types of operating systems and know the basic architecture of an operating system.
- Understand the concepts related to processes and threads, including their creation, communication and scheduling. Identify and address deadlock, and can design algorithmic solutions to synchronization problems.
- Explain how main memory and virtual memory are managed. Master algorithms involved in memory allocation and page replacement.
- Know about the concepts and implementations of file systems. Comprehend the technologies like disk operations and RAID in mass-storage systems.