The course will provide an introduction to 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, file system. We will understand the OS concepts practically by directly studying the source code of a small but realistic OS.
INTENDED AUDIENCE :UG and PG students in EE/CS PREREQUISTES :Introduction to Computer Science, Computer Architecture INDUSTRY SUPPORT :Any computer systems hardware/software company
Week 1 : Introduction to OS Abstractions, Systems Calls and ThreadsWeek 2 : X86 Processor BasicsWeek 3 : Address Translation (Virtual Memory)Week 4 : Processes and Memory AllocationWeek 5 : Processes and Memory Allocation (contd.)Week 6 : Process Creation, Modes, Stacks and TrapsWeek 7 : Context Switching , Multiprocessors and LockingWeek 8 : Abstracting SynchronizationWeek 9 : Abstracting Synchronization (contd.)Week 10 : Virtual Memory SwappingWeek 11 : Files and Disk I/OWeek 12 : Journaling Filesystem (Linux ext3)