CS 447: Operating Systems 
              CS 495 Operating Systems Laboratory 

               Semester: July-November 2000

              OS 1999   OS 1998

Quiz1: Sept 8;
Midsem: Sept 22
Quiz II: Nov. 14
End-semester Exam: Nov. 28

Class Coverage:

1. Introduction to Operating Systems
2. The  Course Overview
3. Brief History of OS Evolution
4. OS Functionalities
5. Processes: contexts, modes and states
6. Analysis of the 3 state model
6. Evolving the State-Transition model
6. CPU Scheduling: The ends and the means
7. The FCFS and its performance; convoy effect
8. SJF,SRTF,RR; starvation, fairness, response times, context switches, predictability
9. Priority queues, priority computations, effect of aging
10. Estimates and a Predictive policy
11. The 4.3 BSD policy
12. Effect of the Decay factor, load dependent decay factor
13. Improvisations of 4.4 BSD, SVR 4
14. Priority Inversion and Priority Inheritance
15. Concurrent accesses to a shared resource; The Critical Section Problem
16. Attempting a 2-process solution with one shared boolean variable
17. The problems of non-progressiveness, starvation, deadlocks and livelocks
18. Solutions of Dekker and Peterson
19. Relevance of the algorithmic approaches to critical section to
      operating systems and to an OS course
20. An n-process solution: Lamport's 'Bakery'
21. Atomic Instructions: Test and Set, Swap
22. Binary and Counting Semaphores and their implementations
23. Benchmark Problems of Synchronization
24. The Bounded Buffer
25. Dining Philosophers
26. Readers and Writers
27. Critical Regions and Conditional Critical Regions
28. Monitors
29. Occurrence of Deadlock;
30. Deadlock Characterization (SISR, SIMR,MISR, MIMR systems)
31. Deadlock Handling Approaches: Prevention, Detection and Avoidance
32. Requirements of memory management systems
33. Evolution of memory management
34. Address bindings (static-load-execution) and consequences to memory management
35. Logical Vs. Physical Addresses and address translation
36. CAFP, CAVP, NCVP and NCFP Policies
37. Performance and caching
38. Large Logical Address Spaces
39. Virtual Memory Techniques
40. Page Faults, Page Replacement Algorithms
41. Thrashing
42. Working Sets
43. File Systems: Issues
44. File Systems: Case Study 1
45. File Systems: Case Study 2
 
 

References

1. Silberschatz and Galvin, Operating System Concepts, Fifth Edition,
Addison Wesley, 1998.

2. D.M. Dhamdhere, Systems Programming and Operating Systems, Second
Edition, Tata McGraw Hill, 1999.

3. Uresh Vahalia, Unix Internals: The new frontiers, Prentice Hall, 1996.

4. McKusic, Bostic, Karels, Quarterman,
The Design and Implementation of the 4.4 BSD Operating System,
Addison Wesley, 1996.
 
 
 

Additional Readings

1. Operating Systems in a Changing World by Maurice Wilkes, Olivetti Research,
Cambridge, England

2. section 1.2, History of Operating Systems, from Tanenbaum and Woodhull

3. Linux Kernel - an online guide

4. Fernando J. Corbató: On Building Systems That Will Fail. Communications
of the ACM 34(9): 72-81(1991); ACM Turing Award Lecture 1990.

Some articles have been filed in the OS file kept in CSE  library. Please contact the
librarian for articles in this file.
 

Labs
 

Lab 1: On Process Accounting (closed)

Lab 2: Source Code Reading (closed)

Lab 3: Scheduling (closed)

Lab 4: Synchronization: A game of cricket through semaphores, threads
           and shared memory (closed)     A tutorial on pthreads

Lab 5: Source Code reading (closed)

Lab 6: System Call Implementation on LINUX.
            Instructions: Five Machines have been identified for kerenl-based assignments.
            Get your slots assigned by the TAs. Keep the existing kernel intact and generate
            a different boot image of your own.
 
 

Miniprojects
 

Deadline for completion: Nov. 15, 2000.
 
 
 

Teaching Assistants:

Neeraj Bhope (neerajb@everest)
Chandrashekhar (chandu@everest)
M Srikrishna (msk@kailash)