CS 447: Operating Systems 
              CS 495 Operating Systems Laboratory 

               Semester: July-November 1999

 

Lectures:  42 (19/7,20/7,23/7,26/7,27/7,30/7,2/8,3/8,6/8,9/8,10/8,13/8,16/8,20/8,23/8,24/8,27/8,30/8,31/8,3/9,14/9,17/9,20/9, 21/9,24/9,27/9,28/9,1/10,4/10,5/10,8/10,11/10,12/10,15/10,18/10,22/10,25/10,26/10,29/10,1/11,2/11,5/11)
 

Announcement: Mid-semester on 10/9/99, 2:30pm

Announcement: Quiz I on Tuesday, 17/8/99 for 10 Marks

Announcement: Quiz II on Monday, 10 Marks

Announcement: End-Sem Examination: 26/11, Friday, 2:30 pm, venue:A1/A2

Coverage:

1. Introduction to Operating Systems
2. The  Course Overview
3. Brief History of OS Evolution
4. Types of Operating Systems
5. Introduction to Processes
6. Process state transitions
7. Contexts and Modes;
8. Operations on processes; Process context; Kernel context; PCB
9. Process Scheduling and Performance Metrics
10. FCFS
11. SJF, SRTF, predictive SRTF
12. Round Robin
13. Priority with Feedback; Tuning the Scheduler
14. Priority Inversion and Priority Inheritance
15. Process Synchronization. Critical Sections -->The Mutual Exclusion Problem.
16. Algorithmic solutions, Developing Dekker's Algorithm. Correctness of CS, Progress, Deadlock, Starvation, Livelock
17. Peterson's Algorithm
18. Solutions with hardware support: Test and Set; Swap; Fetch and Add;
19. Lamport's Bakery Algorithm : an n process solution
20. An n process fair solution with test and set
21. The Busy wait problem.
22. Binary and Counting Semaphores and their implementations
23. Benchmark Problems of Synchronization: Readers and Writers, Producers and Consumers, Dining Philosophers
24. Semaphore based solutions to Synchronization problems
25. Higher Level Synchronization Primitives: Critical Regions, Conditional Critical Regions, Monitors
26. Blocking abilities of synchronization constructs
27. Monitor-Semaphore equivalence
28. Solutions to interprocess synchronization problems using higher level primitives
29. Characterization of Deadlocks
30. Deadlocks in SISR, SIMR, MISR and MIMR systems
31. Deadlock Prevention
32. Deadlock Detection
33. Deadlock Avoidance
34. Memory Management: Requirements
35. Monoprogramming and multiprogramming models
36. Contiguous allocation: static and dynamic partitions
37. Fragmentation: Internal and External
38. Paging
39. Multilevel Paging
40. Inverted Page Tables
41. Segmentation
42. Segmentation: contiguous allocation
43. Segmentation without external fragmentation
44. Paged segment tables
45. Virtual Memory
46. Demand Paging
47. Page Fault Handling
48. Page Replacement
49. Inclusion property and Belady's anomaly
50. Frame Allocation
51. Thrashing
52. The working set model
53. Kernel Memory Allocation requirements
54. Resource Map Allocator
55. Power of Two Allocator
56. McKusick-Karels Allocator
57. Buddy Allocator
58. File Systems: issues
59. Access, allocation and free space management
60. Design alternatives and performance
61. FAT, s5fs
62. Disk scheduling
63. Protection models and implementations
64. Security issues; security flaws:case studies
65. I/O handling; device interrupts
66. Synchronization in distributed systems: Logical Time; event ordering
67. Distributed Mutual Exclusion: Lamport
68. Distributed Mutual Exclusion: Ricart and Agarwala
69. Distributed File Systems: issues
 
 

Assignment 1
Assignment 2
Assignment 3
Assignment 4
Assignment 5
Assignment 6
Assignment 7
Term Project

Teaching Assistants:
shriram@everest (Shriram Wankhede) yusuf@everest (Yusuf) neeraj@everest (Neeraj)