內容簡介
本書既是關於作業系統概念、結構和機制的教材,目的是儘可能清楚和全面地展示現代作業系統的本質和特點;也是講解作業系統的經典教材,不僅系統地講述了作業系統的基本概念、原理和方法,而且以當代最流行的作業系統Windows 8、UNIX、Android、Linux為例,展現了當代作業系統的本質和特點。全書共分背景知識、進程、記憶體、調度、輸入/輸出和檔案、嵌入式系統六部分,內容包括計算機系統概述、作業系統概述、進程描述和控制、執行緒、並發性:互斥和同步、並發:死鎖和飢餓、記憶體管理、虛擬記憶體、單處理器調度、多處理器和實時調度、I/O管理和磁碟調度、檔案管理、
嵌入式作業系統、虛擬機、計算機安全技術、分散式處理、客戶/伺服器和集群等。此外,本書配套網站提供了及時、生動的材料。
圖書目錄
Online Resources
VideoNotes
Preface
About the Author
Chapter 0 Guide for Readers and Instructors 1
0.1 Outline of this Book 2
0.2 Example Systems 2
0.3 A Roadmap for Readers and Instructors 3
0.4 Internet and Web Resources 4
Part 1 Background 7
Chapter 1 Computer System Overview 7
1.1 Basic Elements 8
1.2 Evolution of the Microprocessor 10
1.3 Instruction Execution 10
1.4 Interrupts 13
1.5 The Memory Hierarchy 24
1.6 Cache Memory 27
1.7 Direct Memory Access 31
1.8 Multiprocessor and Multicore Organization 32
1.9 Recommended Reading 36
1.10 Key Terms, Review Questions, and Problems 36
1A Performance Characteristics of Two-Level Memories 39
Chapter 2 Operating System Overview 46
2.1 Operating System Objectives and Functions 47
2.2 The Evolution of Operating Systems 52
2.3 Major Achievements 61
2.4 Developments Leading to Modern Operating Systems 70
2.5 Fault Tolerance 73
2.6 OS Design Considerations for Multiprocessor and Multicore 76
2.7 Microsoft Windows Overview 79
2.8 Traditional UNIX Systems 86
2.9 Modern UNIX Systems 89
2.10 Linux 91
2.11 Android 96
2.12 Recommended Reading and Animations 102
2.13 Key Terms, Review Questions, and Problems 103
Part 2 Processes 105
Chapter 3 Process Description and Control 105
3.1 What Is a Process? 107
3.2 Process States 109
3.3 Process Description 124
3.4 Process Control 133
3.5 Execution of the Operating System 139
3.6 UNIX SVR4 Process Management 142
3.7 Summary 147
3.8 Recommended Reading and Animations 147
3.9 Key Terms, Review Questions, and Problems 148
Chapter 4 Threads 152
4.1 Processes and Threads 153
4.2 Types of Threads 159
4.3 Multicore and Multithreading 166
4.4 Windows 8 Process and Thread Management 171
4.5 Solaris Thread and SMP Management 178
4.6 Linux Process and Thread Management 182
4.7 Android Process and Thread Management 186
4.8 Mac OS X Grand Central Dispatch 190
4.9 Summary 193
4.10 Recommended Reading 193
4.11 Key Terms, Review Questions, and Problems 194
Chapter 5 Concurrency: Mutual Exclusion and Synchronization 199
5.1 Principles of Concurrency 202
5.2 Mutual Exclusion: Hardware Support 210
5.3 Semaphores 214
5.4 Monitors 227
5.5 Message Passing 233
5.6 Readers/Writers Problem 240
5.7 Summary 244
5.8 Recommended Reading and Animations 245
5.9 Key Terms, Review Questions, and Problems 246
Chapter 6 Concurrency: Deadlock and Starvation 259
6.1 Principles of Deadlock 260
6.2 Deadlock Prevention 269
6.3 Deadlock Avoidance 271
6.4 Deadlock Detection 277
6.5 An Integrated Deadlock Strategy 279
6.6 Dining Philosophers Problem 280
6.7 UNIX Concurrency Mechanisms 282
6.8 Linux Kernel Concurrency Mechanisms 286
6.9 Solaris Thread Synchronization Primitives 293
6.10 Windows 7 Concurrency Mechanisms 295
6.11 Android Interprocess Communication 299
6.12 Summary 300
6.13 Recommended Reading and Animations 301
6.14 Key Terms, Review Questions, and Problems 302
Part 3 Memory 309
Chapter 7 Memory Management 309
7.1 Memory Management Requirements 310
7.2 Memory Partitioning 314
7.3 Paging 325
7.4 Segmentation 328
7.5 Summary 330
7.6 Recommended Reading and Animations 330
7.7 Key Terms, Review Questions, and Problems 330
7A Loading and Linking 333
Chapter 8 Virtual Memory 340
8.1 Hardware and Control Structures 341
8.2 Operating System Software 358
8.3 UNIX and Solaris Memory Management 377
8.4 Linux Memory Management 383
8.5 Windows Memory Management 386
8.6 Android Memory Management 389
8.7 Summary 389
8.8 Recommended Reading and Animations 390
8.9 Key Terms, Review Questions, and Problems 391
Part 4 Scheduling 397
Chapter 9 Uniprocessor Scheduling 397
9.1 Types of Processor Scheduling 398
9.2 Scheduling Algorithms 402
9.3 Traditional UNIX Scheduling 424
9.4 Summary 426
9.5 Recommended Reading and Animations 427
9.6 Key Terms, Review Questions, and Problems 428
Chapter 10 Multiprocessor, Multicore, and Real-Time Scheduling 432
10.1 Multiprocessor and Multicore Scheduling 433
10.2 Real-Time Scheduling 446
10.3 Linux Scheduling 461
10.4 UNIX SVR4 Scheduling 465
10.5 UNIX FreeBSD Scheduling 466
10.6 Windows Scheduling 470
10.7 Summary 472
10.8 Recommended Reading 473
10.9 Key Terms, Review Questions, and Problems 473
Part 5 Input/Output and Files 477
Chapter 11 I/O Management and Disk Scheduling 477
11.1 I/O Devices 478
11.2 Organization of the I/O Function 480
11.3 Operating System Design Issues 483
11.4 I/O Buffering 486
11.5 Disk Scheduling 489
11.6 RAID 496
11.7 Disk Cache 505
11.8 UNIX SVR4 I/O 509
11.9 Linux I/O 512
11.10 Windows I/O 515
11.11 Summary 517
11.12 Recommended Reading and Animations 518
11.13 Key Terms, Review Questions, and Problems 519
Chapter 12 File Management 522
12.1 Overview 523
12.2 File Organization and Access 529
12.3 B-Trees 533
12.4 File Directories 536
12.5 File Sharing 541
12.6 Record Blocking 542
12.7 Secondary Storage Management 544
12.8 UNIX File Management 552
12.9 Linux Virtual File System 557
12.10 Windows File System 561
12.11 Android File Management 566
12.12 Summary 567
12.13 Recommended Reading 568
12.14 Key Terms, Review Questions, and Problems 568
Part 6 Embedded Systems 571
Chapter 13 Embedded Operating Systems 571
13.1 Embedded Systems 572
13.2 Characteristics of Embedded Operating Systems 573
13.3 Embedded Linux 576
13.4 TinyOS 577
13.5 Recommended Reading 587
13.6 Key Terms, Review Questions, and Problems 587
Chapter 14 Virtual Machines 590
14.1 Approaches to Virtualization 593
14.2 Processor Issues 596
14.3 Memory Management 598
14.4 I/O Management 600
14.5 VMware ESXi 602
14.6 Microsoft Hyper-V and Xen Variants 604
14.7 Java VM 606
14.8 Linux VServer Virtual Machine Architecture 606
14.9 Android Virtual Machine 609
14.10 Summary 611
14.11 Recommended Reading 612
14.12 Key Terms, Review Questions, and Problems 613
Chapter 15 Operating System Security 614
15.1 Intruders and Malicious Software 615
15.2 Buffer Overflow 619
15.3 Access Control 627
15.4 UNIX Access Control 635
15.5 Operating Systems Hardening 638
15.6 Security Maintenance 642
15.7 Windows Security 643
15.8 Summary 648
15.9 Recommended Reading 649
15.10 Key Terms, Review Questions, and Problems 649
Chapter 16 Distributed Processing, Client/Server, and Clusters 652
16.1 Client/Server Computing 653
16.2 Distributed Message Passing 664
16.3 Remote Procedure Calls 667
16.4 Clusters 671
16.5 Windows Cluster Server 676
16.6 Beowulf and Linux Clusters 678
16.7 Summary 680
16.8 Recommended Reading 681
16.9 Key Terms, Review Questions, and Problems 682
Appendices
Appendix A Topics in Concurrency A-1
Appendix B Programming and Operating System Projects B-1
References 685
Credits 699
Online Chapters and Appendices1
Chapter 17 Network Protocols
17.1 The Need for a Protocol Architecture 17-4
17.2 The TCP/IP Protocol Architecture 17-9
17.3 Sockets 17-19
17.4 Linux Networking 17-26
17.5 Summary 17-29
17.6 Recommended Reading and Web Sites 17-30
17.7 Key Terms, Review Questions, and Problems 17-31
17A The Trivial File Transfer Protocol 17-42
Chapter 18 Distributed Process Management
18.1 Process Migration 18-2
18.2 Distributed Global States 18-14
18.3 Distributed Mutual Exclusion 18-22
18.4 Distributed Deadlock 18-41
18.5 Summary 18-59
18.6 Recommended Reading 18-60
18.7 Key Terms, Review Questions, and Problems 18-61
Chapter 19 Overview of Probability and Stochastic Processes
19.1 Probability 19-2
19.2 Random Variables 19-10
19.3 Elementary Concepts of Stochastic Processes 19-19
19.4 Recommended Reading and Web Sites 19-34
19.5 Key Terms, Review Questions, and Problems 19-35
Chapter 20 Queueing Analysis
20.1 How Queues Behave—A Simple Example 20-3
20.2 Why Queuing Analysis? 20-8
20.3 Queueing Models 20-12
20.4 Single-Server Queues 20-24
20.5 Multiserver Queues 20-28
20.6 Examples 20-30
20.7 Queues with Priorities 20-38
20.8 Networks of Queues 20-40
20.9 Other Queueing Models 20-46
20.10 Estimating Model Parameters 20-48
20.11 Recommended Reading and Web Sites 20-53
20.12 Key Terms, Review Questions, and Problems 20-54
Programming Project One Developing a Shell
Programming Project Two The HOST Dispatcher Shell
Appendix C Topics in Computer Organization C-1
Appendix D Object-Oriented Design D-1
Appendix E Amdahl’s Law E-1
Appendix F Hash Tables F-1
Appendix G Response Time G-1
Appendix H Queueing System Concepts H-1
Appendix I The Complexity of Algorithms I-1
Appendix J Disk Storage Devices J-1
Appendix K Cryptographic Algorithms K-1
Appendix L Standards Organizations L-1
Appendix M Sockets: A Programmer’s Introduction M-1
Appendix N The International Reference Alphabet N-1
Appendix O BACI: The Ben-Ari Concurrent Programming System O-1
Appendix P Procedure Control P-1
Appendix Q Ecos Q-1
Glossary
VideoNotes
Locations of VideoNotes
http://www.pearsonhighered.com/stallings
Chapter 5 Concurrency: Mutual Exclusion and Synchronization 199
5.1 Illustration of Mutual Exclusion 208
5.2 Hardware Support for Mutual Exclusion 212
5.3 A Definition of Semaphore Primitives 216
5.4 A Definition of Binary Semaphore Primitives 217
5.6 Mutual Exclusion Using Semaphores 219
5.9 An Incorrect Solution to the Infinite-Buffer Producer/Consumer Problem
Using Binary Semaphores 222
5.10 A Correct Solution to the Infinite-Buffer Producer/Consumer Problem
Using Binary Semaphores 224
5.11 A Solution to the Infinite-Buffer Producer/Consumer Problem
Using Semaphores 225
5.13 A Solution to the Bounded-Buffer Producer/Consumer Problem
Using Semaphores 226
5.14 Two Possible Implementations of Semaphores 227
5.16 A Solution to the Bounded-Buffer Producer/Consumer Problem
Using a Monitor 230
5.17 Bounded-Buffer Monitor Code for Mesa Monitor 232
5.20 Mutual Exclusion Using Messages 238
5.21 A Solution to the Bounded-Buffer Producer/Consumer Problem
Using Messages 239
5.22 A Solution to the Readers/Writers Problem Using Semaphores:
Readers Have Priority 241
5.23 A Solution to the Readers/Writers Problem Using Semaphores:
Writers Have Priority 243
5.24 A Solution to the Readers/Writers Problem Using Message Passing 244
5.25 An Application of Coroutines 248
Chapter 6 Concurrency: Deadlock and Starvation 259
6.9 Deadlock Avoidance Logic 276
6.12 A First Solution to the Dining Philosophers Problem 281
6.13 A Second Solution to the Dining Philosophers Problem 282
6.14 A Solution to the Dining Philosophers Problem Using a Monitor 283
6.18 Another Solution to the Dining Philosophers Problem Using a Monitor 307
Chapter 13 Embedded Operating Systems 571
13.6 Condition Variable Example Code 589
Chapter 18 Distributed Process Management
18.11 Token.Passing Algorithm (for Process Pi) 40
18.14 A Distributed Deadlock Detection Algorithm 50
Appednix A Topics in Concurrency A-1
A.1 Mutual Exclusion Attempts A-3
A.2 Dekker’s Algorithm A-6
A.3 Peterson’s Algorithm for Two Processes A-7
A.5 An Unfair Barbershop A-17
A.6 A Fair Barbershop A-20