CSL373 : Operating Systems
Sem II, 2009-10
Lecture Slides
- Introduction [PDF]
- Threads and Processes [PDF]
- Concurrency [PDF]
- Abstracting Synchronization [PDF]
- Kaashoek's concurrency notes [PS]
- Lampson's concurrency notes [PS]
- Birrell paper [PDF]
- Birrell: Implementing Condition Variables [PDF]
- Deadlocks + Scheduling [PDF]
- CPU Scheduling [PDF]
- Advanced Scheduling [PDF]
- Linking [PDF]
- Virtual Memory [PDF]
- More VM [PDF]
- Demand Paging [PDF]
- Page Replacement [PDF]
- Thrashing [PDF]
- User-level Memory Management [PDF]
- Fault Tolerance [PDF]
- I/O and Disks [PDF]
- File Systems [PDF]
- A Fast File System for UNIX [PDF]
- A Fast File System for UNIX [PDF]
- Virtual Machines [PDF]
- Distributed Systems [PDF]
Acknowledgements: Many ideas and lecture slides are taken from material by
Silberschatz & Galvin,
Dawson Engler, John Kubiatowicz, Frans Kaashoek, and Martin Rinard.
Programming Assignments
- Process control and IPC
- Build your own OS using pintos
(Please submit assignments through moodle).
Instructor's Office Hours: Thursday 10-11am, or by appointment.
Homeworks
- IOmeter, Memory, File Sharing, etc
- OS for new devices
Written Assignments/Quiz/Exams
- Solutions to Assignment1 and Quiz 1
- Solutions to Minor 1
Web Resources (mirrored locally)
- The Linux Programmer's Guide
- The Linux Kernel
- Linux Device Drivers
Previous years papers
Academic Integrity Code
Academic honesty is required in all your work. Verbal discussion of
assignments is fine but looking at someone else's work and then doing your is
not. You must do all written and programming assignments on your own, except
where group work is explicitly authorised. Letting your work become available
or visible to others is also cheating. The first instance of cheating will
straight-away invite an 'F' grade in the course and a referral to the disciplinary committee.