All Operating Systems Questions with Clear Answers / Operating Systems Exercises Solved / Solutions for Exercises in Operating Systems / Operating Systems selected Questions with Answers / Operating Systems Notes / Index for various online materials on Operating Systems
1. Processes and Threads
2. Inter-process Communication
3. Inter-process Communication in Linux
4. Process Scheduling
5. Process Scheduling in Linux
6. Process Synchronization
7. Deadlocks
8. Memory Management
9. Memory Management in Linux
10. File System Concepts
11. File System Implementation
12. File System in Linux
13. File System in Windows
Advanced Concepts in Operating System
1. Distributed OS
2. Distributed Deadlock Handling
3. Distributed Shared Memory
4. Multiprocessor OS
1. Peterson’s algorithm
- Twisted Peterson's algorithm for mutual exclusion
- Simpler solution for mutual exclusion - Peterson's algorithm
- Solutions to the Critical Section Problem
- Proof of Peterson's algorithm for Mutual Exclusion (PDF)
2. Inter Process Communication (IPC) through Shared Memory, Race Conditions, Mutual Exclusion, Peterson's Algorithms etc.
3. Scheduling Algorithms
- Shortest Remaining Time first (SRT) process scheduling algorithm with example
- Shortest Remaining Time first Scheduling algorithm with example (Java implementation)
- FCFS, SJF (SRT), Priority Scheduling, RR, Multilevel Queue, etc. - Concepts with example made simple.
- FCFS, SJF (SRT), Priority Scheduling, RR, Multilevel Queue, etc. - Lecture notes.
- Scheduling Algorithms - Lecture Notes in PDF
4. Paging and TLB
- Paging and Translation Look-aside Buffer (TLB).
- Translation Lookaside Buffers
- Translation Lookaside Buffers, Concepts, Problems, Solutions, etc - Lecture Slided (PDF)
- TLB - Notes in PDF
- Virtual Memory - TLB, Demand Paging - Lecture Slides (PDF)
- Virtual Memory - Lecture Slides (PDF)
5. Deadlock
- Deadlock example exercise with solution.
- Deadlock, Deadlock Prevention, Avoidance - Complete Notes
- Deadlock, Characterization, Prevention, and Avoidance - Lecture Slides in PDF
- Deadlock Problems - Silberschartz et al. Slides (PDF)
- Deadlock Recovery, Avoidance, and Prevention - notes
- Necessary and Sufficient Deadlock Conditions
- Deadlock Solutions with Pictorial and Graphic Representation (PDF)
- Deadlock Prevention - Quiz questions (Questions Only)
- OS 8th Edition by Silberschartz et al. Deadlocks - Solutions to practice exercises. (Book Exercises)
- Deadlock Exercises with Answers.
- Deadlock Prevention Exercises with Solutions. (HTML)
6. Operating System Structures
7. Operating System - Processes and Threads
- Processes. (HTML)
- Processes defined. (HTML)
- Processes and Threads, Stanford University, Lecture Notes. (HTML)
- Threads, Processes, and Dispatching, Stanford University, Lecture Notes. (HTML)
- Processes and Threads, Princeton University, Lecture Slides. (PDF)
- Operating System Processes, Lecture Slides. (PDF)
- Operating System Processes, explained with Pictures, Graphics and Flash animations. (HTML)
- Simulation exercises in Operating System Processes. (PDF)
8. Memory Management
- Memory Management in OS, Simple Discussion. (HTML)
- Memory Management, Lecture Slides. (PDF)
- Material on Main Memory and its functions. (HTML)
- How does an Operating System work? (Complete) (HTML)
- Memory Management Overview. Theory. (HTML)
- Memory Management in various programming languages. (HTML)
- Introduction to Virtual Memory System. Apple Mac Tutorials. (HTML)
- Memory usage performance guidelines. Apple. (PDF)
- Exercise - Access Pattern in Memory. (With Solution) (HTML)
- Memory Management Exercises. Solutions. (PDF)
- Exercise - Memory layout in C language. (With solution). (HTML)
- Exercise - What will be the disadvantage if we have to allocate files only in contiguous block in disk?
- Quiz 1 in Processes/Synchronization - Memory Management with Solutions.
- Quiz 2 in Memory Management with Answers.
- Quiz 3 in Memory Management with Answers.
9. Distributed Operating Systems
With the advent of computer networks, in which many computers are linked together and are able to communicate with one another, distributed computing became feasible. A distributed computation is one that is carried out on more than one machine in a cooperative manner. A group of linked computers working cooperatively on tasks, referred to as a distributed system, often requires a distributed operating system to manage the distributed resources. Distributed operating systems must handle all the usual problems of operating systems, such as deadlock. Distributed deadlock is very difficult to prevent; it is not feasible to number all the resources in a distributed system. Hence, deadlock must be detected by some scheme that incorporates substantial communication among network sites and careful synchronization, lest network delays cause deadlocks to be falsely detected and processes aborted unnecessarily. Interprocess communication must be extended to processes residing on different network hosts, since the loosely coupled architecture of computer networks requires that all communication be done by message passing. Important systems concerns unique to the distributed case are workload sharing, which attempts to take advantage of access to multiple computers to complete jobs faster; task migration, which supports workload sharing by efficiently moving jobs among machines; and automatic task replication at different sites for greater reliability.
With the advent of computer networks, in which many computers are linked together and are able to communicate with one another, distributed computing became feasible. A distributed computation is one that is carried out on more than one machine in a cooperative manner. A group of linked computers working cooperatively on tasks, referred to as a distributed system, often requires a distributed operating system to manage the distributed resources. Distributed operating systems must handle all the usual problems of operating systems, such as deadlock. Distributed deadlock is very difficult to prevent; it is not feasible to number all the resources in a distributed system. Hence, deadlock must be detected by some scheme that incorporates substantial communication among network sites and careful synchronization, lest network delays cause deadlocks to be falsely detected and processes aborted unnecessarily. Interprocess communication must be extended to processes residing on different network hosts, since the loosely coupled architecture of computer networks requires that all communication be done by message passing. Important systems concerns unique to the distributed case are workload sharing, which attempts to take advantage of access to multiple computers to complete jobs faster; task migration, which supports workload sharing by efficiently moving jobs among machines; and automatic task replication at different sites for greater reliability.