An operating system (OS) consists of programs that regulate the implementation of application programs, and serving as a go between of the client and PC hardware. The operating system manages the computer hardware systems well as giving a structure for applications to run. A few examples referenced in the volume are: Windows, Windows/NT, OS/2 and MacOS. The volume presents OS as advantageous and simple to use for the client, and makes handling client issues simpler. For a PC to begin running-for example, when it is organized or rebooted-it must have a primary program to run. This core system, or bootstrap program, will in general be straightforward. Normally, it is put in read-only memory (ROM) or digitally erasable read-only memory (EEPROM), referred by overall term firmware, inside the PC equipment. It launches all parts of the framework, from CPU catalogs to device regulators to memory elements. In multiprogramming systems, the OS determines which cycle gets the processor when and the duration. This capacity is known as process planning. The volume discusses an Operating System as doing these activities: \* Keeps check of processor and process status of interaction. \* Allocates the processor (CPU) to a function, and \* De-assigns processors whenever a cycle is not generally needed. Cover 1 Title Page 5 Copyright 6 ABOUT THE AUTHOR 7 TABLE OF CONTENTS 9 List of Figures 15 List of Abbreviations 21 Abstract 23 Preface 25 Chapter 1 An Overview on Operating System 27 1.1. Memory Management 29 1.2. Device Management 30 1.3. File Management 32 1.4. Processor Management 33 1.5. Security 35 1.6. A Brief History of Operating Systems (OSS) 37 1.7. Operating System (OS) Types 38 Chapter 2 Types of Operating Systems 41 2.1. Batch Operating System (OS) 42 2.2. Types of Batch Operating System (OS) 43 2.3. Working of the Batched Operating System (OS) 45 2.4. Advantages of Batch System 45 2.5. Disadvantages of Batch System 45 2.6. Time-Sharing Operating System (OS) 45 2.7. Requirements of the Time-Sharing Operating System (OS) 48 2.8. Advantages of Time-Sharing Operating System (OS) 49 2.9. Disadvantages of Time-Sharing Operating System (OS) 49 2.10. Distributed Operating System (OS) 49 2.11. Distributed Computing Models 51 2.12. Design Consideration of Distributed Operating System (OS) 52 2.13. Advantages of Distributive Operating System (OS) 53 2.14. Disadvantage of Distributive Operating Systems (OSS) 53 2.15. Network Operating System (NOS) 54 2.16. Types of Network Operating Systems (NOS) 55 2.17. Features of Network Operating System (NOS) 56 2.18. Real Time Operating System (OS) 57 2.19. Characteristics of Real Time Operating System (OS) 57 2.20. Real Time Operating System (OS) in Embedded Systems 58 2.21. Advantages and Features of Real Time Operating System (OS) 59 2.22. Disciplines that Impact Real Time Operating Systems (OS) 60 2.23. Real Time Operating System (OS) Architectures 60 2.24. Soft Real Time Operating System (OS) 61 2.25. Hard Real Time Operating System (OS) 63 Chapter 3 Popular Operating Systems 65 3.1. How Windows Versions Have Evolved Throughout the Years 66 3.2. Linux Operating System (OS) 70 3.3. Advantages and Disadvantages of Linux Operating System (OS) 75 3.4. The Virtual Machine System 77 3.5. Techniques Used in their Virtual Management Systems 79 3.6. The Aix Operating System (OS) 81 3.7. The Os/400 82 3.8. The Difference Between Os/400 Vs. Unix 84 3.9. Z/Os Operating System (OS) 85 Chapter 4 Operating System Properties 87 4.1. Batch Processing 88 4.2. Evolution of Batch Processing 88 4.3. Monitors and Dependencies in Batch Processing 89 4.4. Advantages of Batch Processing 91 4.5. Disadvantages of Batch Processing 92 4.6. Multitasking 93 4.7. Multiprograming 97 4.8. Types of Multiprogramming Operating Systems (OSS) 99 4.9. Advantages of Multiprograming 99 4.10. Disadvantages of Multiprogramming 100 4.11. Types of Interactive Systems 102 4.12. Real Time Systems 104 4.13. Applications of Real Time Systems 106 4.14. Spooling 107 4.15. Working of Spooling in Operating System (OS) 108 Chapter 5 Operating System – Processes 111 5.1. Process 112 5.2. Kernels 113 5.3. Program 114 5.4. Life Cycle of the Process 115 5.5. Process Control Block (PCB) 116 5.6. Process Scheduling 118 5.7. Two-State Process Model 119 5.8. Schedulers 120 5.9. Medium-Term Scheduling 121 5.10. Short-Term Scheduling 122 5.11. Dispatcher 123 5.12. Context Switch 123 5.13. Program Counter (PC) 126 5.14. Scheduling Algorithms 128 5.15. Scheduling Algorithms/Disciplines 129 5.16. Priority Scheduling 130 5.17. Shortest Remaining Time First 132 5.18. Fixed Priority Pre-Emptive Scheduling 133 5.19. Round-Robin Scheduling 134 5.20. Inter-Process Communication 136 Chapter 6 Operating System Multi-Threading 139 6.1. Introduction 140 6.2. Operating System (OS) Multi-Threading 140 6.3. Difference Between a Process and a Thread 143 6.4. Building Blocks for the Functioning of a Thread 144 6.5. The Central Processing Unit 145 6.6. Information Storage System 146 6.7. Similarities Between a Process and a Thread 147 6.8. Fibers in Multithreading 148 6.9. Preemptive and Cooperative Scheduling 149 6.10. Single and Multiprocessor System Scheduling 149 6.11. Thread Pools 150 6.12. Programming Language Support for Threads 151 6.13. Threads Data Synchronization 152 6.14. Types of Threads 155 6.15. Differences Between Kernel-Level Threads and User-Level Threads 157 6.16. Similarities Between User-Level Threads and Kernel-Level Threads 158 Chapter 7 Memory Management 163 7.1. Process Address Space 164 7.2. Address Spaces 165 7.3. Static Versus Dynamic Loading 168 7.4. Static Versus Dynamic Linking 169 7.5. Contrasts Between Static and Dynamic Linking 171 7.6. Swapping 172 7.7. Contiguous Memory Allotment in Operating System (OS) 175 7.8. Fragmentation 178 7.9. Paging 181 7.10. Address Translation 184 7.11. Segmentation 185 Chapter 8 Virtual Memory 187 8.1. Implementation of Virtual Memory 192 8.2. Demand Paging 195 8.3. Demand Segmentation 201 8.4. Swapping/Swap File 205 8.5. Page Replacement 208 Chapter 9 File System 211 9.1. File 212 9.2. File Structure 214 9.3. Types of File Systems 215 9.4. Structures of Directory in Operating System (OS) 221 9.5. File Access Mechanisms 226 9.6. Space Allocation 229 9.7. Allocation Based on Indexes 231 9.8. Design Limitations 235 Chapter 10 I/O Software and I/O Hardware 237 10.1. I/O Hardware 238 10.2. Device Controllers 239 10.3. The Memory Mapped Input Output System 240 10.4. Direct Memory Access 242 10.5. Direct Memory Access Controller 243 10.6. Interrupts Revisited 245 10.7. Precise and Imprecise Interrupts 246 10.8. I/O Software 246 10.9. Programmed I/O 249 10.10. I/O Using Direct Access Memory 252 Chapter 11 Operating System – Security 255 11.1. Common OS Security Threats 258 11.2. Program Threats 260 11.3. System Threats 264 11.4. One Time Passwords 267 11.5. Computer Security Classifications 268 Bibliography 271 Index 277 Back Cover 281