Operating Systems
Total Page:16
File Type:pdf, Size:1020Kb
DIGITAL NOTES ON OPERATING SYSTEMS B.TECH II YEAR - I SEM (2020-21) DEPARTMENT OF INFORMATION TECHNOLOGY MALLA REDDY COLLEGE OF ENGINEERING & TECHNOLOGY (Autonomous Institution – UGC, Govt. of India) (Affiliated to JNTUH, Hyderabad, Approved by AICTE - Accredited by NBA & NAAC – ‘A’ Grade - ISO 9001:2015 Certified) Maisammaguda, Dhulapally (Post Via. Hakimpet), Secunderabad – 500100,Telangana State, INDIA. MALLA REDDY COLLEGE OF ENGINEERING & TECHNOLOGY DEPARTMENT OF INFORMATIONTECHNOLOGY SYLLABUS (R18A0504) OPERATING SYSTEM L T/P/D C II Year B.Tech IT-ISem 3 -/-/- 3 Objectives: Students will be able: To learn the mechanisms of OS to handle processes and threads and theircommunication To learn the mechanisms involved in memory management in contemporaryOS To gain knowledge on distributed operating system concepts that includes architecture, Mutual exclusion algorithms, deadlock detection algorithms and agreementprotocols To know the components and management aspects of concurrencymanagement UNIT ‐ I: Introduction: Concept of Operating Systems, Generations of Operating systems, Types of Operating Systems, OS Services, System Calls, Structure of an OS - Layered, Monolithic, Microkernel Operating Systems, Concept of Virtual Machine. Case study on UNIX and WINDOWS Operating System. UNIT ‐ II: Processes: Definition, Process Relationship, Different states of a Process, Process State transitions, Process Control Block (PCB), Context switching Thread: Definition, Various states, Benefits of threads, Types of threads, Concept of multithreads Process Scheduling: Foundation and Scheduling objectives, Types of Schedulers, Scheduling criteria: CPU utilization, Throughput, Turnaround Time, Waiting Time, Response Time. Scheduling algorithms: Pre-emptive and Non pre-emptive, FCFS, SJF, RR. Multi processor scheduling: Real Time scheduling: RM and EDF. UNIT ‐ III: Inter-process Communication: Critical Section, Race Conditions, Mutual Exclusion, Hardware Solution, Strict Alternation, Peterson’s Solution, The Producer\Consumer Problem, Semaphores, Event Counters, Monitors, Message Passing, Classical IPC Problems: Reader’s & Writer Problem, Dinning Philosopher Problem etc. Deadlocks: Definition, Necessary and sufficient conditions for Deadlock, Deadlock Prevention, Deadlock Avoidance: Banker’s algorithm, Deadlock detection and Recovery. UNIT ‐ IV: Memory Management: Basic concept, Logical and Physical address map, Memory allocation: Contiguous Memory allocation – Fixed and variable partition–Internal and External fragmentation and Compaction; Paging: Principle of operation – Page allocation – Hardware support for paging, Protection and sharing, Disadvantages of paging. Virtual Memory: Basics of Virtual Memory – Hardware and control structures – Locality of reference, Page fault , Working Set , Dirty page/Dirty bit – Demand paging, Page Replacement algorithms: Optimal, First in First Out (FIFO), Second Chance (SC), Not recently used (NRU) and Least Recently used (LRU). UNIT ‐ V: I/O Hardware: I/O devices, Device controllers, Direct memory access Principles of I/O Software: Goals of Interrupt handlers, Device drivers, Device independent I/O software, Secondary-Storage Structure: Disk structure, Disk scheduling algorithms File Management: Concept of File, Access methods, File types, File operation, Directory structure, File System structure, Allocation methods (contiguous, linked, indexed), Free-space management (bit vector, linked list, grouping), directory implementation (linear list, hash table), efficiency and performance. Disk Management: Disk structure, Disk scheduling - FCFS, SSTF, SCAN, C-SCAN, Disk reliability, Disk formatting, Boot-block, Bad blocks TEXT BOOKS: 1. Operating System Concepts Essentials, 9th Edition by AviSilberschatz, Peter Galvin, Greg Gagne, Wiley Asia StudentEdition. 2. Operating Systems: Internals and Design Principles, 5th Edition, William Stallings, Prentice Hall of India. REFERENCE BOOKS: 1. Operating System: A Design-oriented Approach, 1st Edition by Charles Crowley, Irwin Publishing 2. Operating Systems: A Modern Perspective, 2nd Edition by Gary J. Nutt,Addison-Wesley 3. Design of the Unix Operating Systems, 8th Edition by Maurice Bach, Prentice-Hall ofIndia 4. Understanding the Linux Kernel, 3rd Edition, Daniel P. Bovet, Marco Cesati, O'Reilly and Associates Course Outcomes : At the end of the course students will be able to: 1. Create processes andthreads. 2. Develop algorithms for process scheduling for a given specification of CPU utilization, Throughput, Turnaround Time, Waiting Time, ResponseTime. 3. For a given specification of memory organization develop the techniques for optimally allocating memory to processes by increasing memory utilization and for improving the accesstime. 4. Design and implement file managementsystem. 5. Develop the I/O management functions in OS for the given I/O devices andOS. MALLA REDDY COLLEGE OF ENGINEERING & TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY INDEX S. No Topic Page no Unit 1 I Introduction: Concept of Operating Systems 4-9 2 II Processes and Threads 10-27 3 III Inter-process Communication and Deadlocks: 27-39 4 IV Memory Management and Virtual Memory 40-47 5 V I/O Hardware, File Management& Disk Management 48-62 UNIT ‐ I Introduction: Concept of Operating Systems, Generations of Operating systems, Types of Operating Systems, OS Services, System Calls, Structure of an OS - Layered, Monolithic, Microkernel Operating Systems, Concept of Virtual Machine. Case study on UNIX and WINDOWS Operating System. Basic Operating System Concepts Each computer system includes a basic set of programs called the operating system. The most important program in the set is called the kernel. It is loaded into RAM when the system boots and contains many critical procedures that are needed for the system to operate. The other programs are less crucial utilities; they can provide a wide variety of interactive experiences for the user—as well as doing all the jobs the user bought the computer for—but the essential shape and capabilities of the system are determined by the kernel. The kernel provides key facilities to everything else on the system and determines many of the characteristics of higher software. Hence, we often use the term "operating system" as a synonym for "kernel." The operating system must fulfill two main objectives: o Interact with the hardware components, servicing all low-level programmable elements included in the hardwareplatform. o Provide an execution environment to the applications that run on the computer system (the so-called user programs).Some operating systems allow all user programs to directly play with the hardware components (a typical example is MS-DOS ). In contrast, a Unix-like operating system hides all low-level details concerning the physical organization of the computer from applications run by the user. When a program wants to use a hardware resource,itmustissuearequesttothe operatingsystem.Thekernelevaluatestherequest and, if it chooses to grant the resource, interacts with the proper hardware components on behalf of the user program.To enforce this mechanism, modern operating systems rely on the availability of specific hardware features that forbid user programs to directly interact with low-level hardware components or to access arbitrary memory locations. In particular, the hardware introduces at least two different execution modes for the CPU: a nonprivileged mode for user programs and a privileged mode for the kernel. Unix calls these User Mode and Kernel Mode , respectively.In the rest of this chapter, we introduce the basic concepts that havemotivated OPERATING SYSTEMS Page 1 the design of Unix over the past two decades, as well as Linux and other operating systems. While the concepts are probably familiar to you as a Linux user, these sections try to delve into them a bit more deeply than usual to explain the requirements they place on an operating system kernel. These broad considerations refer to virtually all Unix-like systems. The other chapters of this book will hopefully help you understand the Linux kernel internals. Generations of operating systems Operating systems, like computer hardware, have undergone a series of revolutionary changes called generations. In computer hardware, generations have been marked by major advances in componentry from vacuum tubes (first generation), to transistors (second generation), to integrated circuitry (third generation), to large-scale and very large-scale integrated circuitry (forth generation). The successive hardware generations have each been accompanied by dramatic reductions in costs, size, heat emission, and energy consumption, and by dramatic increases in speed and storage capacity. (1) the zeroth generation(1940s) Early computing systems had no operating system. Users had complete access to the machine language. They hand-coded all instructions. (2) the first generation(1950s) The operating systems of the 1950s were designed to smooth the transition between jobs. Before the systems were developed, a great deal of time was lost between the completion of one job and the initiation of the next. This was the beginning of batch processing systems in which jobs were gathered in groups or batches. Once a job was running, it had total control of the machine. As each job terminated (either normally or abnormally), control was returned to the operatin system that "cleaned up after the job" and read in and initiated the next job. (3) The second generation (early1960s) The second generation