William Stallings:美国圣母大学电子工程学士,麻省理工学院计算机科学博士,《密码术》期刊编委。美国多家高科技公司执行总监,政府机构、计算机软/硬件供应商顾问;曾为各种计算机和操作系统设计并实现TCP/IP和OSI协议套件;创建并维护了计算机科学专业学生资源网站ComputerScienceStudent.com。出版图书17种,内容涉及计算机安全、计算机网络和计算机系统结构等;在《IEEE进展》《ACM计算评论》和《密码术》等杂志上发表文章多篇;先后12次获美国年度*佳计算机科学教科书奖和学术作者协会奖。
图书目录
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