Contents

  • PART ONE OVERVIEW
    • Chapter 1 Introduction
      • 1.1 What Operating Systems Do 4
      • 1.2 Computer-System Organization 7
      • 1.3 Computer-System Architecture 15
      • 1.4 Operating-System Operations 21
      • 1.5 Resource Management 27
      • 1.6 Security and Protection 33
      • 1.7 Virtualization 34
      • 1.8 Distributed Systems 35
      • 1.9 Kernel Data Structures 36
      • 1.10 Computing Environments 40
      • 1.11 Free and Open-Source Operating Systems 46
      • Practice Exercises 53
      • Further Reading 54
    • Chapter 2 Operating-System Structures
      • 2.1 Operating-System Services 55
      • 2.2 User and Operating-System Interface 58
      • 2.3 System Calls 62
      • 2.4 System Services 74
      • 2.5 Linkers and Loaders 75
      • 2.6 Why Applications Are Operating-System Specific 77
      • 2.7 Operating-System Design and Implementation 79
      • 2.8 Operating-System Structure 81
      • 2.9 Building and Booting an Operating System 92
      • 2.10 Operating-System Debugging 95
      • 2.11 Summary 100
      • Practice Exercises 101
      • Further Reading 101
  • PART TWO PROCESS MANAGEMENT

    • Chapter 3 Processes
      • 3.1 Process Concept 106
      • 3.2 Process Scheduling 110
      • 3.3 Operations on Processes 116
      • 3.4 Interprocess Communication 123
      • 3.5 IPC in Shared-Memory Systems 125
      • 3.6 IPC in Message-Passing Systems 127
      • 3.7 Examples of IPC Systems 132
      • 3.8 Communication in Client – Server Systems 145
      • 3.9 Summary 153
      • Practice Exercises 154
      • Further Reading 156
    • Chapter 4 Threads & Concurrency
      • 4.1 Overview 160
      • 4.2 Multicore Programming 162
      • 4.3 Multithreading Models 166
      • 4.4 Thread Libraries 168
      • 4.5 Implicit Threading 176
      • 4.6 Threading Issues 188
      • 4.7 Operating-System Examples 194
      • 4.8 Summary 196
      • Practice Exercises 197
      • Further Reading 198
    • Chapter 5 CPU Scheduling
      • 5.1 Basic Concepts 200
      • 5.2 Scheduling Criteria 204
      • 5.3 Scheduling Algorithms 205
      • 5.4 Thread Scheduling 217
      • 5.5 Multi-Processor Scheduling 220
      • 5.6 Real-Time CPU Scheduling 227
      • 5.7 Operating-System Examples 234
      • 5.8 Algorithm Evaluation 244
      • 5.9 Summary 250
      • Practice Exercises 251
      • Further Reading 254
  • PART THREE PROCESS SYNCHRONIZATION

    • Chapter 6 Synchronization Tools
      • 6.1 Background 257
      • 6.2 The Critical-Section Problem 260
      • 6.3 Peterson’s Solution 262
      • 6.4 Hardware Support for Synchronization 265
      • 6.5 Mutex Locks 270
      • 6.6 Semaphores 272
      • 6.7 Monitors 276
      • 6.8 Liveness 283
      • 6.9 Evaluation 284
      • 6.10 Summary 286
      • Practice Exercises 287
      • Further Reading 288
    • Chapter 7 Synchronization Examples
      • 7.1 Classic Problems of Synchronization 289
      • 7.2 Synchronization within the Kernel 295
      • 7.3 POSIX Synchronization 299
      • 7.4 Synchronization in Java 303
      • 7.5 Alternative Approaches 311
      • 7.6 Summary 314
      • Practice Exercises 314
      • Further Reading 315
    • Chapter 8 Deadlocks
      • 8.1 System Model 318
      • 8.2 Deadlock in Multithreaded Applications 319
      • 8.3 Deadlock Characterization 321
      • 8.4 Methods for Handling Deadlocks 326
      • 8.5 Deadlock Prevention 327
      • 8.6 Deadlock Avoidance 330
      • 8.7 Deadlock Detection 337
      • 8.8 Recovery from Deadlock 341
      • 8.9 Summary 343
      • Practice Exercises 344
      • Further Reading 346
  • PART FOUR MEMORY MANAGEMENT

    • Chapter 9 Main Memory
      • 9.1 Background 349
      • 9.2 Contiguous Memory Allocation 356
      • 9.3 Paging 360
      • 9.4 Structure of the Page Table 371
      • 9.5 Swapping 376
      • 9.6 Example: Intel 32- and 64-bit Architectures 379
      • 9.7 Example: ARMv8 Architecture 383
      • 9.8 Summary 384
      • Practice Exercises 385
      • Further Reading 387
    • Chapter 10 Virtual Memory
      • 10.1 Background 389
      • 10.2 Demand Paging 392
      • 10.3 Copy-on-Write 399
      • 10.4 Page Replacement 401
      • 10.5 Allocation of Frames 413
      • 10.6 Thrashing 419
      • 10.7 Memory Compression 425
      • 10.8 Allocating Kernel Memory 426
      • 10.9 Other Considerations 430
      • 10.10 Operating-System Examples 436
      • 10.11 Summary 440
      • Practice Exercises 441
      • Further Reading 444
  • PART FIVE STORAGE MANAGEMENT

    • Chapter 11 Mass-Storage Structure
      • 11.1 Overview of Mass-Storage Structure 449
      • 11.2 HDD Scheduling 457
      • 11.3 NVM Scheduling 461
      • 11.4 Error Detection and Correction 462
      • 11.5 Storage Device Management 463
      • 11.6 Swap-Space Management 467
      • 11.7 Storage Attachment 469
      • 11.8 RAID Structure 473
      • 11.9 Summary 485
      • Practice Exercises 486
      • Further Reading 487
    • Chapter 12 I/O Systems
      • 12.1 Overview 489
      • 12.2 I/O Hardware 490
      • 12.3 Application I/O Interface 500
      • 12.4 Kernel I/O Subsystem 508
      • 12.5 Transforming I/O Requests to Hardware Operations 516
      • 12.6 STREAMS 519
      • 12.7 Performance 521
      • 12.8 Summary 524
      • Practice Exercises 525
      • Further Reading 526
    • PART SIX FILE SYSTEM

    • Chapter 13 File-System Interface
      • 13.1 File Concept 529
      • 13.2 Access Methods 539
      • 13.3 Directory Structure 541
      • 13.4 Protection 550
      • 13.5 Memory-Mapped Files 555
      • 13.6 Summary 560
      • Practice Exercises 560
      • Further Reading 561
    • Chapter 14 File-System Implementation
      • 14.1 File-System Structure 564
      • 14.2 File-System Operations 566
      • 14.3 Directory Implementation 568
      • 14.4 Allocation Methods 570
      • 14.5 Free-Space Management 578
      • 14.6 Efficiency and Performance 582
      • 14.7 Recovery 586
      • 14.8 Example: The WAFL File System 589
      • 14.9 Summary 593
      • Practice Exercises 594
      • Further Reading 594
    • Chapter 15 File-System Internals
      • 15.1 File Systems 597
      • 15.2 File-System Mounting 598
      • 15.3 Partitions and Mounting 601
      • 15.4 File Sharing 602
      • 15.5 Virtual File Systems 603
      • 15.6 Remote File Systems 605
      • 15.7 Consistency Semantics 608
      • 15.8 NFS 610
      • 15.9 Summary 615
      • Practice Exercises 616
      • Further Reading 617
  • PART SEVEN SECURITY AND PROTECTION

    • Chapter 16 Security
      • 16.1 The Security Problem 621
      • 16.2 Program Threats 625
      • 16.3 System and Network Threats 634
      • 16.4 Cryptography as a Security Tool 637
      • 16.5 User Authentication 648
      • 16.6 Implementing Security Defenses 653
      • 16.7 An Example: Windows 10 662
      • 16.8 Summary 664
      • Further Reading 665
    • Chapter 17 Protection
      • 17.1 Goals of Protection 667
      • 17.2 Principles of Protection 668
      • 17.3 Protection Rings 669
      • 17.4 Domain of Protection 671
      • 17.5 Access Matrix 675
      • 17.6 Implementation of the Access Matrix 679
      • 17.7 Revocation of Access Rights 682
      • 17.8 Role-Based Access Control 683
      • 17.9 Mandatory Access Control (MAC) 684
      • 17.10 Capability-Based Systems 685
      • 17.11 Other Protection Improvement Methods 687
      • 17.12 Language-Based Protection 690
      • 17.13 Summary 696
      • Further Reading 697
  • PART EIGHT ADVANCED TOPICS

    • Chapter 18 Virtual Machines
      • 18.1 Overview 701
      • 18.2 History 703
      • 18.3 Benefits and Features 704
      • 18.4 Building Blocks 707
      • 18.5 Types of VMs and Their Implementations 713
      • 18.6 Virtualization and Operating-System Components 719
      • 18.7 Examples 726
      • 18.8 Virtualization Research 728
      • 18.9 Summary 729
      • Further Reading 730
    • Chapter 19 Networks and Distributed Systems
      • 19.1 Advantages of Distributed Systems 733
      • 19.2 Network Structure 735
      • 19.3 Communication Structure 738
      • 19.4 Network and Distributed Operating Systems 749
      • 19.5 Design Issues in Distributed Systems 753
      • 19.6 Distributed File Systems 757
      • 19.7 DFS Naming and Transparency 761
      • 19.8 Remote File Access 764
      • 19.9 Final Thoughts on Distributed File Systems 767
      • 19.10 Summary 768
      • Practice Exercises 769
      • Further Reading 770
  • PART NINE CASE STUDIES

    • Chapter 20 The Linux System
      • 20.1 Linux History 775
      • 20.2 Design Principles 780
      • 20.3 Kernel Modules 783
      • 20.4 Process Management 786
      • 20.5 Scheduling 790
      • 20.6 Memory Management 795
      • 20.7 File Systems 803
      • 20.8 Input and Output 810
      • 20.9 Interprocess Communication 812
      • 20.10 Network Structure 813
      • 20.11 Security 816
      • 20.12 Summary 818
      • Practice Exercises 819
      • Further Reading 819
    • Chapter 21 Windows 10
      • 21.1 History 821
      • 21.2 Design Principles 826
      • 21.3 System Components 838
      • 21.4 Terminal Services and Fast User Switching 874
      • 21.5 File System 875
      • 21.6 Networking 880
      • 21.7 Programmer Interface 884
      • 21.8 Summary 895
      • Practice Exercises 896
      • Further Reading 897

results matching ""

    No results matching ""