Instruction on operating system functionality with examples incorporated for improved learning
With the updating of Silberschatz's Operating System Concepts, 10th Edition, students have access to a text that presents both important concepts and real-world applications. Key concepts are reinforced in this global edition through instruction, chapter practice exercises, homework exercises, and suggested readings. Students also receive an understanding how to apply the content. The book provides example programs written in C and Java for use in programming environments.
Table of 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
1.12 Summary 51
Exercises 53
Further Reading 57
Chapter 2 Operating-System Structures
2.1 Operating-System Services 59
2.2 User and Operating-System Interface 62
2.3 System Calls 66
2.4 System Services 78
2.5 Linkers and Loaders 79
2.6 Why Applications Are Operating-System Specific 81
2.7 Operating-System Design and Implementation 83
2.8 Operating-System Structure 85
2.9 Building and Booting an Operating System 95
2.10 Operating-System Debugging 99
2.11 Summary 104
Exercises 105
Further Reading 107
Part Two Process Management
Chapter 3 Processes
3.1 Process Concept 112
3.2 Process Scheduling 116
3.3 Operations on Processes 122
3.4 Interprocess Communication 129
3.5 IPC in Shared-Memory Systems 131
3.6 IPC in Message-Passing Systems 133
3.7 Examples of IPC Systems 138
3.8 Communication in Client-Server Systems 151
3.9 Summary 159
Exercises 161
Further Reading 166
Chapter 4 Threads & Concurrency
4.1 Overview 168
4.2 Multicore Programming 170
4.3 Multithreading Models 174
4.4 Thread Libraries 176
4.5 Implicit Threading 184
4.6 Threading Issues 196
4.7 Operating-System Examples 202
4.8 Summary 204
Exercises 205
Further Reading 208
Chapter 5 CPU Scheduling
5.1 Basic Concepts 212
5.2 Scheduling Criteria 216
5.3 Scheduling Algorithms 217
5.4 Thread Scheduling 229
5.5 Multi-Processor Scheduling 232
5.6 Real-Time CPU Scheduling 239
5.7 Operating-System Examples 246
5.8 Algorithm Evaluation 256
5.9 Summary 262
Exercises 263
Further Reading 270
Part Three Process Synchronization
Chapter 6 Synchronization Tools
6.1 Background 273
6.2 The Critical-Section Problem 276
6.3 Peterson’s Solution 278
6.4 Hardware Support for Synchronization 281
6.5 Mutex Locks 286
6.6 Semaphores 288
6.7 Monitors 292
6.8 Liveness 299
6.9 Evaluation 300
6.10 Summary 302
Exercises 303
Further Reading 309
Chapter 7 Synchronization Examples
7.1 Classic Problems of Synchronization 311
7.2 Synchronization within the Kernel 317
7.3 POSIX Synchronization 321
7.4 Synchronization in Java 325
7.5 Alternative Approaches 333
7.6 Summary 336
Exercises 336
Further Reading 338
Chapter 8 Deadlocks
8.1 System Model 342
8.2 Deadlock in Multithreaded Applications 343
8.3 Deadlock Characterization 345
8.4 Methods for Handling Deadlocks 350
8.5 Deadlock Prevention 351
8.6 Deadlock Avoidance 354
8.7 Deadlock Detection 361
8.8 Recovery from Deadlock 365
8.9 Summary 367
Exercises 368
Further Reading 374
Part Four Memory Management
Chapter 9 Main Memory
9.1 Background 379
9.2 Contiguous Memory Allocation 386
9.3 Paging 390
9.4 Structure of the Page Table 401
9.5 Swapping 406
9.6 Example: Intel 32- and 64-bit Architectures 409
9.7 Example: ARMv8 Architecture 413
9.8 Summary 414
Exercises 415
Further Reading 420
Chapter 10 Virtual Memory
10.1 Background 421
10.2 Demand Paging 424
10.3 Copy-on-Write 431
10.4 Page Replacement 433
10.5 Allocation of Frames 445
10.6 Thrashing 451
10.7 Memory Compression 457
10.8 Allocating Kernel Memory 458
10.9 Other Considerations 462
10.10 Operating-System Examples 468
10.11 Summary 472
Exercises 473
Further Reading 482
Part Five Storage Management
Chapter 11 Mass-Storage Structure
11.1 Overview of Mass-Storage Structure 485
11.2 HDD Scheduling 493
11.3 NVM Scheduling 497
11.4 Error Detection and Correction 498
11.5 Storage Device Management 499
11.6 Swap-Space Management 503
11.7 Storage Attachment 505
11.8 RAID Structure 509
11.9 Summary 521
Exercises 522
Further Reading 527
Chapter 12 I/O Systems
12.1 Overview 529
12.2 I/O Hardware 530
12.3 Application I/O Interface 540
12.4 Kernel I/O Subsystem 548
12.5 Transforming I/O Requests to Hardware Operations 556
12.6 STREAMS 559
12.7 Performance 561
12.8 Summary 564
Exercises 565
Further Reading 567
Part Six File System
Chapter 13 File-System Interface
13.1 File Concept 571
13.2 Access Methods 581
13.3 Directory Structure 583
13.4 Protection 592
13.5 Memory-Mapped Files 597
13.6 Summary 602
Exercises 602
Further Reading 606
Chapter 14 File-System Implementation
14.1 File-System Structure 608
14.2 File-System Operations 610
14.3 Directory Implementation 612
14.4 Allocation Methods 614
14.5 Free-Space Management 622
14.6 Efficiency and Performance 626
14.7 Recovery 630
14.8 Example: The WAFL File System 633
14.9 Summary 637
Exercises 638
Further Reading 640
Chapter 15 File-System Internals
15.1 File Systems 643
15.2 File-System Mounting 644
15.3 Partitions and Mounting 647
15.4 File Sharing 648
15.5 Virtual File Systems 649
15.6 Remote File Systems 651
15.7 Consistency Semantics 654
15.8 NFS 656
15.9 Summary 661
Exercises 662
Further Reading 664
Part Seven Security and Protection
Chapter 16 Security
16.1 The Security Problem 669
16.2 Program Threats 673
16.3 System and Network Threats 682
16.4 Cryptography as a Security Tool 685
16.5 User Authentication 696
16.6 Implementing Security Defenses 701
16.7 An Example: Windows 10 710
16.8 Summary 712
Exercises 713
Further Reading 714
Chapter 17 Protection
17.1 Goals of Protection 717
17.2 Principles of Protection 718
17.3 Protection Rings 719
17.4 Domain of Protection 721
17.5 Access Matrix 725
17.6 Implementation of the Access Matrix 729
17.7 Revocation of Access Rights 732
17.8 Role-Based Access Control 733
17.9 Mandatory Access Control (MAC) 734
17.10 Capability-Based Systems 735
17.11 Other Protection Improvement Methods 737
17.12 Language-Based Protection 740
17.13 Summary 746
Exercises 747
Further Reading 749
Part Eight Advanced Topics
Chapter 18 Virtual Machines
18.1 Overview 753
18.2 History 755
18.3 Benefits and Features 756
18.4 Building Blocks 759
18.5 Types of VMs and Their Implementations 765
18.6 Virtualization and Operating-System Components 771
18.7 Examples 778
18.8 Virtualization Research 780
18.9 Summary 781
Exercises 782
Further Reading 783
Chapter 19 Networks and Distributed Systems
19.1 Advantages of Distributed Systems 785
19.2 Network Structure 787
19.3 Communication Structure 790
19.4 Network and Distributed Operating Systems 801
19.5 Design Issues in Distributed Systems 805
19.6 Distributed File Systems 809
19.7 DFS Naming and Transparency 813
19.8 Remote File Access 816
19.9 Final Thoughts on Distributed File Systems 819
19.10 Summary 820
Exercises 821
Further Reading 825
Credits 827
Index 829