operating systems internals and design principles 8th-ZeindBook
Tag : Programmers
operating systems internals and design principles 8th
ABOUT THE AUTHOR
Dr. William Stallings has authored 17 titles, and counting revised editions, over 40 books on computer security, computer networking, and computer architecture. His
writings have appeared in numerous publications, including the Proceedings of the IEEE, ACM Computing Reviews and Cryptologia. He has 12 times received the award for the best Computer Science textbook of
the year from the Text and Academic Authors Association. In over 30 years in the field, he has been a technical contributor, technical manager, and an executive with several high-technology firms. He has designed and implemented both TCP/IP-based and OSI-based protocol suites on a variety of computers and operating systems, ranging from microcomputers to mainframes. As a consultant, he has advised government agencies. computer and software ven- dors, and major users on the design, selection, and use of networking software and
products. He created and maintains the Computer Science Student Resource Site at ComputerScienceStudent.com. This site provides documents and links on a variety of subjects of general interest to computer science students (and professionals). He is a member of the editorial board of Cryptologia, a scholarly journal devoted to all aspects of cryptology. He is Networking Category Expert Writer at networking.
answers.com. Dr. Stallings holds a Ph.D. from M.I.T. in Computer Science and a B.S. from Notre Dame in electrical engineering.
operating systems internals and design principles 8th
CONTENTS
Online Resources xiii
Video Notes xv
Preface xvii
About the Author xxvii
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 Recommended Reading 36
1.9
1.10 Key Terms, Review Questions, and Problems 36
Performance Characteristics of Two-Level Memories 39
1A
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 3.3 Process Description 124
Process States 109
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
Processes and Threads 153
Types of Threads 159 Multicore and Multithreading 166
Windows 8 Process and Thread Management 171
Solaris Thread and SMP Management 178
Linux Process and Thread Management 182 Android Process and Thread Management 186
Mac OS X Grand Central Dispatch 190
Summary 193
Recommended Reading 193 Key Terms, Review Questions, and Problems 194
4.10
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 Monitors 227
5.4
5.5 Message Passing 233
5.6 Readers/Writers Problem 240
5.7 Summary 244
5.8 Recommended Reading and Animations 245 Key Terms. Review Questions, and Problems 246
5.9
Chapter 6 Concurrency: Deadlock and Starvation 259
Principles of Deadlock 260
Deadlock Prevention 269
Deadlock Avoidance 271
Deadlock Detection 277 An Integrated Deadlock Strategy 279
Dining Philosophers Problem 280
UNIX Concurrency Mechanisms 282
Linux Kernel Concurrency Mechanisms 286
CONTENTS
ix
6.9
6.10
6.11
Solaris Thread Synchronization Primitives 293
Windows 7 Concurrency Mechanisms 295
Android Interprocess Communication 299
Summary 300 Recommended Reading and Animations 301
Key Terms, Review Questions, and Problems 302
6.9
6.10 Windows 7 Concurrency Mechanisms 295 Android Interprocess Communication 299
6.11
Solaris Thread Synchronization Primitives 293
Summary 300
Recommended Reading and Animations 301
Key Terms, Review Questions, and Problems 302
6.12
6.13
6.14
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 Android Memory Management 389
8.6
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 Types of Processor Scheduling 398
9.1
9.2 Scheduling Algorithms 402
9.3 Traditional UNIX Scheduling 424
9.4
Summary 426
9.5 Recommended Reading and Animations 427
Key Terms, Review Questions, and Problems 428
9.6
Chapter 10
Multiprocessor, Multicore, and Real-Time Scheduling 432
10.1 Multiprocessor and Multicore Scheduling 433
10.2 Real-Time Scheduling, 446 Linux Scheduling 461
10.3
10.4 UNIX SVR4 Scheduling 465
10.5 UNIX FreeBSD Scheduling 466
X CONTENTS
10.6
10.7
Windows Scheduling 470 Summary 472
Recommended Reading 473 Key Terms, Review Questions, and Problems 173
10.8 10.9
PART 5 INPUT/OUTPUT AND FILES 477
Chapter 11 I/O Management and Disk Scheduling 477
11.1
1/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 Disk Scheduling 489
11.5
11.6 RAID 496
11.7 Disk Cache 505
11.8 11.9
UNIX SVR4 I/O 500
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 File Organization and Access 529
12.2
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 Key Terms, Review Questions, and Problems 587
13.6
CONTENTS
xi
Chapter 14 Virtual Machines 590
14.1 Approaches to Virtualization 593
14.2 Processor Issues 596
14.3 Memory Management 398
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
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 16.9
Recommended Reading 681 Key Terms, Review Questions, and Problems 682
0 Comments