Operating systems (OS) provide the crucial interface between a computer's hardware and the applications that run on it. It allows us to write programs without bothering much about the hardware. It also ensures that the computer's resources such as its CPU, hard disk, and memory, are appropriately utilized. In this course, we dwell into how the OS manages to do all this in an efficient manner. This is an introductory course, for students with prior knowledge of computer organization. The course is based on an OS called xv6, which in many ways is similar to the Linux operating systems.
INTENDED AUDIENCE B.E./Msc (Computer Science)PRE-REQUISITES Good knowledge of C, Computer Organization and Architecture, x86 Assembly level programming.
COURSE LAYOUT Week 1 : IntroductionWeek 2 : Memory ManagementWeek 3 : ProcessesWeek 4 : Interrupts and Context SwitchingWeek 5 : SchedulingWeek 6 : SynchronizationWeek 7 : DeadlocksWeek 8 : Operating System Security