Operating systems are an essential part of any computer system. Similarly, a course on operating systems is an essential part of any computer science education. This field is undergoing rapid change, as computers are now prevalent in virtually every arena of day-to-day life.
We wrote this book as a text for an introductory course in operating systems at the senior graduate level. We hope that practitioners will also find it useful. It provides a clear description of the concepts that underlie operating systems.
Introduction: Computer-System Architecture, Computing Environments.
Operating-System Structures: Operating-System Services, User Interface for Operating-System, System Calls, Types of System Calls, Operating System Structure.
Process Management: Process Concept, Process Scheduling, Operations on Processes, Inter process Communication, Examples–Producer-Consumer Problem.
CPU Scheduling: Concepts, Scheduling Criteria, Scheduling Algorithms.
Process Synchronization: Critical-Section Problem, Peterson’s Solution, Synchronization, Semaphores, Monitors.
Deadlocks: System Model, Deadlock Characterization, Methods for Handling Deadlocks, Deadlock Prevention, Deadlock Avoidance, Deadlock Detection, Recovery from Deadlock.
Main Memory: Introduction, Swapping, Contiguous Memory Allocation, Segmentation, Paging.
Virtual Memory: Introduction, Demand Paging, Page Replacement, Allocation of Frames,
Mass-Storage Structure: Overview, Disk Scheduling, RAID Structure.
File Systems: File Concept, Access Methods, Directory and Disk Structure, File-System Mounting, Protection. File System Implementation, Directory Implementation, Allocation Methods, Free- Space Management.