This course will teach the fundamentals of computer Operating Systems.
Process Management – Scheduling (essential topics: context-switch, unix fork, scheduling algorithms representing fairness, infinite wait, optimal scheduling, priority inversion)
Synchronization Primitives and Problems, Deadlocks (essential topics: Peterson's algorithm, monitors)
Memory Management – Virtual Memory, Demand Paging (essential topics: fragmentation, pinning, Belady's anomaly, thrashing)
File systems; I/O Management (essential topics: DMA, delayed writes, elevator algorithm). Security.
The Lab part shall include experiments that shall illustrate booting of a system, implementation of process, memory, file and I/O management concepts, preferably using a popular operating system as a case study.
- Operating Systems Concepts, Abraham Silberschatz, Peter B. Galvin and Greg Gagne, Wiley, 2012.
- The Design of the Unix Operating System – Maurice Bach, Prentice Hall, 1988.
Modern Operating Systems, Andrew S Tanenbaum and Herbert Bos, Fourth Edition, Pearson Education, 2014.
Operating Systems: Principles and Practice, Thomas Anderson and Michael Dahlin, Recursive Books, 2014.