Modern operating systems 3rd ed

552 713 0
Modern operating systems 3rd ed

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MODERN OPERATING SYSTEMS THIRD EDITION Other bestselling titles by Andrew S Tanenbaum Structured Computer Organization, 5th edition This widely read classic, now in its fifth edition, provides the ideal introduction to computer architecture It covers the topic in an easy-to-understand way, bottom up There is a chapter on digital logic for beginners, followed by chapters on microarchitecture, the instruction set architecture level, operating systems, assembly language, and parallel computer architectures THIRD EDITION Computer Networks, 4th edition This best seller, currently in its fourth edition, provides the ideal introduction to today's and tomorrow's networks It explains in detail how modern networks are structured Starting with the physical layer and working up to the application layer, the book covers a vast number of important topics, including wireless communication, fiber optics, data link protocols, Ethernet, routing algorithms, network performance, security, DNS, electronic mail, the World Wide Web, and multimedia The book has especially thorough coverage of TCP/IP and the Internet Operating Systems: Design and Implementation, 3rd edition This popular text on operating systems is the only book covering both the principles of operating systems and their application to a real system All the traditional operating systems topics are covered in detail In addition, the principles are carefully illustrated with MINIX, a free POSIX-based UNIX-like operating system for personal computers Each book contains a free CD-ROM containing the complete MINIX system, including all the source code The source code is listed in an appendix to the book and explained in detail in the text Vrije Universiteit Amsterdam, The Netherlands Distributed Operating Systems, 2nd edition This text covers the fundamental concepts of distributed operating systems Key topics include communication and synchronization, processes and processors, distributed shared memory, distributed file systems, and distributed real-time systems The principles are illustrated using four chapter-long examples: distributed object-based systems, distributed file systems, distributed Web-based systems, and distributed coordination-based systems PEARSON | PEARSON EDUCATION INTERNATIONAL If you purchased this book within the United States or Canada you should be aware that it has been wrongfully imported without the approval of the Publisher or the Author Editorial Director, Computer Science, Engineering, and Advanced Mathematics: Mania J Ho/ton Executive Editor: Tracy Dimkelberger Editorial Assistant: Melinda Haggerty Associate Editor: ReeAnne Davies Senior Managing Editor Scot! Disauno Production Editor: Irwin Zucker Interior design: Andrew S Tanenbaton Typesetting: Andrew S Tanenbaum Art Director: Kenny Beck Art Editor Gregory Dulles Media Editor: David Alick Manufacturing Manager: Alan Fischer Manufacturing Buyer: Lisa McDowell Marketing Manager: Mack Patterson PEARSON © 2009 Pearson Education, Inc Pearson Prentice Hall Pearson Education, Inc Upper Saddle River, NJ 07458 Ail rights reserved No part of this book may be reproduced in any form or by any means, without permission in writing from the publisher Pearson Prentice Hail™ is a trademark of Pearson Education, Inc The author and publisher of this book have used their best efforts in preparing this book These efforts include the development, research, and testing of the theories and programs to determine their effectiveness The author and publisher make no warranty of any kind, expressed or implied, with regard to these programs or the documentation contained in this book The author and publisher shall not be liable in any event for incidental or consequential damages in connection with, or arising out of, the furnishing, performance, or use of these programs Printed in the United States of America 10 ISBN 21 Q-lB-filBMST-L Pearson Education Ltd., London Pearson Education Australia Pty Ltd., Sydney Pearson Education Singapore, Pte Ltd Pearson Education North Asia Ltd., Hong Kong Pearson Education Canada, Inc., Toronto Pearson Educacidn de Mexico, S.A de C.V Pearson Education—Japan, Tokyo Pearson Education Malaysia, Pte Ltd Pearson Education, Inc., Upper Saddle River, New Jersey To Suzanne, Barbara, Marvin, and the memory of Brant and Sweetie % CONTENT!3 xxiv PREFACE INTRODUCTION 1.1 WHAT IS AN OPERATING SYSTEM? 1.1.1 The Operating System as an Extended Machine 1.1.2 The Operating System as a Resource Manager 1.2 HISTORY OF OPERATING SYSTEMS 1.2.1 The First Generation (1945-55) Vacuum Tubes 1.2.2 The Second Generation (1955-65) Transistors and Batch Systems 1.2.3 The Third Generation (1965-1980) ICs and Multiprogramming 10 1.2.4 The Fourth Generation (1980-Present) Personal Computers 13 1.3 COMPUTER HARDWARE REVIEW 17 1.3.1 Processors 17 1.3.2 Memory 21 1.3.3 Disks 24 1.3.4 Tapes 25 1.3.5 I/O Devices 25 1.3.6 Buses 28 1.3.7 Booting the Computer 31 vii viii CONTENTS 1.4 THE OPERATING SYSTEM ZOO 31 1.4.1 Mainframe Operating Systems 32 1.4.2 Server Operating Systems 32 1.4.3 Multiprocessor Operating Systems 32 1.4.4 Personal Computer Operating Systems 33 1.4.5 Handheld Computer Operating Systems 33 1.4.6 Embedded Operating Systems 33 1.4.7 Sensor Node Operating Systems 34 1.4.8 Real-Time Operating Systems 34 1.4.9 Smart Card Operating Systems 35 1.5 OPERATING SYSTEM CONCEPTS 35 1.5.1 Processes 36 1.5.2 Address Spaces 38 1.5.3 Files 38 1.5.4 Input/Output 41 1.5.5 Protection 42 1.5.6 The Shell 42 1.5.7 Ontogeny Recapitulates Phylogeny 44 1.6 SYSTEM CALLS 47 1.6.1 System Calls for Process Management 50 1.6.2 System Calls for File Management 54 1.6.3 System Calls for Directory Management 55 1.6.4 Miscellaneous System Calls 56 1.6.5 The Windows Win32 API 57 1.7 OPERATING SYSTEM STRUCTURE 60 1.7.1 Monolithic Systems 60 1.7.2 Layered Systems 61 1.7.3 Microkernels 62 1.7.4 Client-Server Model 65 1.7.5 Virtual Machines 65 1.7.6 Exokeraels 69 1.8 THE WORLD ACCORDING TO C 70 1.8.1 The C Language 70 1.8.2 Header Files 71 1.8.3 Large Programming Projects 72 1.8.4 The Model of Run Time 73 1.9 RESEARCH ON OPERATING SYSTEMS 74 CONTENTS 1.10 OUTLINE OF THE REST OF THIS BOOK 75 1.11 METRIC UNITS 76 1.12 SUMMARY 77 PROCESSES AND THREADS 2.1 PROCESSES 81 2.1.1 The Process Model 82 2.1.2 Process Creation 84 2.1.3 Process Termination 86 2.1.4 Process Hierarchies 87 2.1.5 Process States 88 2.1.6 Implementation of Processes 89 2.1.7 Modeling Multiprogramming 91 2.2 THREADS 93 2.2.1 Thread Usage 93 2.2.2 The Classical Thread Model 98 2.2.3 POSIX Threads 102 2.2.4 Implementing Threads in User Space 104 2.2.5 Implementing Threads in the Kernel 107 2.2.6 Hybrid Implementations 108 2.2.7 Scheduler Activations 109 2.2.8 Pop-Up Threads 110 2.2.9 Making Single-Threaded Code Multithreaded 112 2.3 INTERPROCESS COMMUNICATION 115 2.3.1 Race Conditions 115 2.3.2 Critical Regions 117 2.3.3 Mutual Exclusion with Busy Waiting 118 2.3.4 Sleep and Wakeup 123 2.3.5 Semaphores 126 2.3.6 Mutexes 128 2.3.7 Monitors 132 2.3.8 Message Passing 138 2.3.9 Barriers 142 CONTENTS CONTENTS X 3.4.9 The WSClock Page Replacement Algorithm 211 3.4.10 Summary of Page Replacement Algorithms 213 2.4 SCHEDULING 143 2.4.1 Introduction to Scheduling 143 2.4.2 Scheduling in Batch Systems 150 2.4.3 Scheduling in Interactive Systems 152 2.4.4 Scheduling in Real-Time Systems 158 2.4.5 Policy versus Mechanism 159 2.4.6 Thread Scheduling 160 3.5 DESIGN ISSUES FOR PAGING SYSTEMS 214 3.5.1 Local versus Global Allocation Policies 214 3.5.2 Load Control 216 3.5.3 Page Size 217 3.5.4 Separate Instruction and Data Spaces 219 3.5.5 Shared Pages 219 3.5.6 Shared Libraries 221 3.5.7 Mapped Files 223 3.5.8 Cleaning Policy 224 3.5.9 Virtual Memory Interface 224 2.5 CLASSICAL IPC PROBLEMS 161 2.5.1 The Dining Philosophers Problem 162 2.5.2 The Readers and Writers Problem 165 2.6 RESEARCH ON PROCESSES AND THREADS 166 2.7 SUMMARY 167 MEMORY MANAGEMENT 3.1 NO MEMORY ABSTRACTION 174 173 3.6 IMPLEMENTATION ISSUES 225 3.6.1 Operating System Involvement with Paging 225 3.6.2 Page Fault Handling 226 3.6.3 Instruction Backup 227 3.6.4 Locking Pages in Memory 228 3.6.5 Backing Store 229 3.6.6 Separation of Policy and Mechanism 231 3.2 A MEMORY ABSTRACTION: ADDRESS SPACES 177 3.2.1 The Notion of an Address Space 178 3.2.2 Swapping 179 3.2.3 Managing Free Memory 182 3.7 SEGMENTATION 232 3.7.1 Implementation of Pure Segmentation 235 3.7.2 Segmentation with Paging: MULTICS 236 3.7.3 Segmentation with Paging: The Intel Pentium 240 3.3 VIRTUAL MEMORY 186 3.3.1 Paging 187 3.3.2 Page Tables 191 3.3.3 Speeding Up Paging 192 3.3.4 Page Tables for Large Memories 196 3.8 RESEARCH ON MEMORY MANAGEMENT 245 3.4 PAGE REPLACEMENT ALGORITHMS 199 3.4.1 The Optimal Page Replacement Algorithm 200 3.4.2 The Not Recently Used Page Replacement Algorithm 201 3.4.3 The First-In, First-Out (FIFO) Page Replacement Algorithm 202 3.4.4 The Second-Chance Page Replacement Algorithm 202 3.9 SUMMARY 246 FILE S Y S T E M S 4.1 FILES 255 4.1.1 Fit.- W-ming 255 3.4.5 The Clock Page Replacement Algorithm 203 4.1.2 F i g g c t u r e 3.4.6 The Least Recently Used (LRU) Page Replacement Algorithm 204 3.4.7 Simulating LRU in Software 205 3.4.8 The Working Set Page Replacement Algorithm 207 4.1.3 F i i ^ ^ w s 257 258 4.1.4 File Access 260 4.1.5 File Attributes 261 CONTENTS xii 4.1.6 File Operations 262 4.1.7 An Example Program Using File System Calls 263 4.2 DIRECTORIES 266 4.2.1 Single-Level Directory Systems 266 4.2.2 Hierarchical Directory Systems 266 4.2.3 Path Names 267 4.2.4 Directory Operations 270 4.3 FILE SYSTEM IMPLEMENTATION 271 4.3.1 File System Layout 271 4.3.2 Implementing Files 272 4.3.3 Implementing Directories 278 4.3.4 Shared Files 281 4.3.5 Log-Structured File Systems 283 4.3.6 Journaling File Systems 285 4.3.7 Virtual File Systems 286 4.4 FILE SYSTEM MANAGEMENT AND OPTIMIZATION 290 4.4.1 Disk Space Management 290 4.4.2 File System Backups 296 4.4.3 File System Consistency 302 4.4.4 File System Performance 305 4.4.5 Defragmenting Disks 309 4.5 EXAMPLE FILE SYSTEMS 310 4.5.1 CD-ROM File Systems 310 4.5.2 The MS-DOS File System 316 4.5.3 The UNIX V7 File System 319 CONTENTS 5.1.3 Memory-Mapped I/O 330 5.1.4 Direct Memory Access (DMA) 334 5.1.5 Interrupts Revisited 337 5.2 PRINCIPLES OF I/O SOFTWARE 341 5.2.1 Goals of the I/O Software 341 5.2.2 Programmed I/O 342 5.2.3 Interrupt-Driven I/O 344 5.2.4 I/O Using DMA 345 5.3 I/O SOFTWARE LAYERS 346 5.3.1 Interrupt Handlers 346 5.3.2 Device Drivers 347 5.3.3 Device-Independent I/O Software 351 5.3.4 User-Space I/O Software 357 5.4 DISKS 358 5.4.1 Disk Hardware 359 5.4.2 Disk Formatting 374 5.4.3 Disk Arm Scheduling Algorithms 377 5.4.4 Error Handling 380 5.4.5 Stable Storage 383 5.5 CLOCKS 386 5.5.1 Clock Hardware 386 5.5.2 Clock Software 388 5.5.3 Soft Timers 391 4.6 RESEARCH ON FILE SYSTEMS 322 5.6 USER INTERFACES: KEYBOARD, MOUSE, MONITOR 392 5.6.1 Input Software 392 5.6.2 Output Software 397 4.7 SUMMARY 322 5.7 THIN CLIENTS 413 INPUT/OUTPUT 5.1 PRINCIPLES OF I/O HARDWARE 327 5.1.1 I/O Devices 328 5.1.2 Device Controllers 329 5.8 POWER MANAGEMENT 415 5.8.1 Hardware Issues 416 5.8.2 Operating System Issues 417 5.8.3 Application Program Issues 422 5.9 RESEARCH ON INPUT/OUTPUT 423 5.10 SUMMARY 424 Xiv CONTENTS CONTENTS DEADLOCKS 6.1 RESOURCES 432 6.1.1 Preemptable and Nonpreemptable Resources 432 6.1.2 Resource Acquisition 433 6.2 INTRODUCTION TO DEADLOCKS 435 6.2.1 Conditions for Resource Deadlocks 436 6.2.2 Deadlock Modeling 436 6.3 THE OSTRICH ALGORITHM 439 6.4 DEADLOCK DETECTION AND RECOVERY 440 6.4.1 Deadlock Detection with One Resource of Each Type 440 6.4.2 Deadlock Detection with Multiple Resources of Each Type 6.4.3 Recovery from Deadlock 445 MULTIMEDIA O P E R A T I N G S Y S T E M S 7.1 INTRODUCTION TO MULTIMEDIA 466 7.2 MULTIMEDIA FILES 470 7.2.1 Video Encoding 471 7.2.2 Audio Encoding 474 7.3 VIDEO COMPRESSION 476 7.3.1 The JPEG Standard 476 7.3.2 The MPEG Standard 479 7.4 AUDIO COMPRESSION 482 7.5 MULTIMEDIA PROCESS SCHEDULING 485 7.5.1 Scheduling Homogeneous Processes 486 7.5.2 General Real-Time Scheduling 486 7.5.3 Rate Monotonic Scheduling 488 7.5.4 Earliest Deadline First Scheduling 489 6.5 DEADLOCK AVOIDANCE 446 6.5.1 Resource Trajectories 447 6.5.2 Safe and Unsafe States 448 6.5.3 The Banker's Algorithm for a Single Resource 449 6.5.4 The Banker's Algorithm for Multiple Resources 450 7.6 MULTIMEDIA FILE SYSTEM PARADIGMS 491 7.6.1 VCR Control Functions 492 7.6.2 Near Video on Demand 494 7.6.3 Near Video on Demand with VCR Functions 496 6.6 DEADLOCK PREVENTION 452 6.6.1 Attacking the Mutual Exclusion Condition 452 6.6.2 Attacking the Hold and Wait Condition 453 6.6.3 Attacking the No Preemption Condition 453 6.6.4 Attacking the Circular Wait Condition 454 7.7 FILE PLACEMENT 497 7.7.1 Placing a File on a Single Disk 498 7.7.2 Two Alternative File Organization Strategies 499 7.7.3 Placing Files for Near Video on Demand 502 7.7.4 Placing Multiple Files on a Single Disk 504 7.7.5 Placing Files on Multiple Disks 506 6.7 OTHER ISSUES 455 6.7.1 Two-Phase Locking 455 6.7.2 Communication Deadlocks 456 6.7.3 Livelock 457 6.7.4 Starvation 459 6.8 RESEARCH ON DEADLOCKS 459 6.9 SUMMARY 460 7.8 CACHING 508 7.8.1 Block Caching 509 7.8.2 File Caching 510 7.9 DISK SCHEDULING FOR MULTIMEDIA 511 7.9.1 Static Disk Scheduling 511 7.9.2 Dynamic Disk Scheduling 513 7.10 RESEARCH ON MULTIMEDIA 514 7.11 SUMMARY 515 xvi CONTENTS CONTENTS MULTIPLE P R O C E S S O R S Y S T E M S 8.1 MULTIPROCESSORS 524 8.1.1 Multiprocessor Hardware 524 8.1.2 Multiprocessor Operating System Types 532 8.1.3 Multiprocessor Synchronization 536 8.1.4 Multiprocessor Scheduling 540 8.2 MULTICOMPUTERS 546 8.2.1 Multicomputer Hardware 547 8.2.2 Low-Level Communication Software 551 8.2.3 User-Level Communication Software 553 8.2.4 Remote Procedure Call 556 8.2.5 Distributed Shared Memory 558 8.2.6 Multicomputer Scheduling 563 8.2.7 Load Balancing 563 8.3 VIRTUALIZATION 566 8.3.1 Requirements for Virtualization 568 8.3.2 Type I Hypervisors 569 8.3.3 Type Hypervisors 570 8.3.4 Paravirtualization 572 8.3.5 Memory Virtualization 574 8.3.6 I/O Virtualization 576 8.3.7 Virtual Appliances 577 8.3.8 Virtual Machines on Multicore CPUs 577 8.3.9 Licensing Issues 578 8.4 DISTRIBUTED SYSTEMS 578 8.4.1 Network Hardware 581 8.4.2 Network Services and Protocols 584 8.4.3 Document-Based Middleware 588 8.4.4 File-System-Based Middleware 589 8.4.5 Object-Based Middleware 594 8.4.6 Coordination-Based Middleware 596 8.4.7 Grids 601 8.5 RESEARCH ON MULTIPLE PROCESSOR SYSTEMS 602 8.6 SUMMARY 603 521 SECURITY 9.1 THE SECURITY ENVIRONMENT 611 9.1.1 Threats 611 9.1.2 Intruders 613 9.1.3 Accidental Data Loss 614 9.2 BASICS OF CRYPTOGRAPHY 614 9.2.1 Secret-Key Cryptography 615 9.2.2 Public-Key Cryptography 616 9.2.3 One-Way Functions 617 9.2.4 Digital Signatures 617 9.2.5 Trusted Platform Module 619 9.3 PROTECTION MECHANISMS 620 9.3.1 Protection Domains 620 9.3.2 Access Control Lists 622 9.3.3 Capabilities 625 9.3.4 Trusted Systems 628 9.3.5 Trusted Computing Base 629 9.3.6 Formal Models of Secure Systems 630 9.3.7 Multilevel Security 632 9.3.8 Covert Channels 635 9.4 AUTHENTICATION 639 9.4.1 Authentication Using Passwords 640 9.4.2 Authentication Using a Physical Object 649 9.4.3 Authentication Using Biometrics 651 9.5 INSIDER ATTACKS 654 9.5.1 Logic Bombs 654 9.5.2 Trap Doors 655 9.5.3 Login Spooling 656 9.6 EXPLOITING CODE BUGS 657 9.6.1 Buffer Overflow Attacks 658 9.6.2 Format String Attacks 660 9.6.3 Return to libc Attacks 662 9.6.4 Integer Overflow Attacks 663 9.6.5 Code Injection Attacks 664 9.6.6 Privilege Escalation Attacks 665 xviii CONTENTS CONTENTS 9.7 MALWARE 665 9.7.1 Trojan Horses 668 9.7.2 Viruses 670 9.7.3 Worms 680 9.7.4 Spyware 682 9.7.5 Rootkits 686 10.3 PROCESSES IN LINUX 735 10.3.1 Fundamental Concepts 735 10.3.2 Process Management System Calls in Linux 737 10.3.3 Implementation of Processes and Threads in Linux 741 10.3.4 Scheduling in Linux 748 10.3.5 Booting Linux 751 9.8 DEFENSES 690 xix 10.4 MEMORY MANAGEMENT IN LINUX 754 10.4.1 Fundamental Concepts 754 10.4.2 Memory Management System Calls in Linux 757 10.4.3 Implementation of Memory Management in Linux 758 10.4.4 Paging in Linux 764 9.8.1 Firewalls 691 9.8.2 Antivirus and Anti-Antivirus Techniques 693 9.8.3 Code Signing 699 9.8.4 Jailing 700 9.8.5 Model-Based Intrusion Detection 701 9.8.6 Encapsulating Mobile Code 703 9.8.7 Java Security 707 | § 9.9 RESEARCH ON SECURITY 709 9.10 SUMMARY 710 | H v I 10 CASE STUDY 1: LINUX 10.1 HISTORY OF UNIX AND LINUX 716 10.1.1 UNICS 716 10.1.2 PDP-11 UNIX 717 10.1.3 Portable UNIX 718 10.1.4 Berkeley UNIX 719 10.1.5 Standard UNIX 720 10.1.6 MINTX 721 10.1.7 Linux 722 715 f | § J I 10.2 OVERVIEW OF LINUX 724 10.2.1 Linux Goals 725 10.2.2 Interfaces to Linux 726 10.2.3 The Shell 727 10.5 INPUT/OUTPUT IN LINUX 767 10.5.1 Fundamental Concepts 768 10.5.2 Networking 769 10.5.3 Input/Output System Calls in Linux 771 10.5.4 Implementation of Input/Output in Linux 771 10.5.5 Modules in Linux 775 10.6 THE LINUX FILE SYSTEM 775 10.6.1 Fundamental Concepts 776 10.6.2 File System Calls in Linux 781 10.6.3 Implementation of the Linux File System 784 10.6.4 NFS: The Network File System 792 10.7 SECURITY IN LINUX 799 10.7.1 Fundamental Concepts 799 10.7.2 Security System Calls in Linux 801 10.7.3 Implementation of Security in Linux 802 10.8 SUMMARY 802 11 CASE STUDY 2: WINDOWS VISTA 11.1 HISTORY OF WINDOWS VISTA 809 11.1.1 1980s: MS-DOS 810 U.1.2 1990s: MS-DOS-based Windows 811 iU.32000s:NT-basedWmdows 11.1.4 Windows Vista 814 10.2.5 Kernel Structure 732 Ml 809 A Address space, 36, 38, 177-185 Address windowing extensions, 880 Addressing large memories, Vista, 879-880 Admission control algorithm, 470 ADSL (see Asymmetric Digital Subscriber Line) Advanced configuration and power interface, 422 Advanced LPC, 841 Adversary, 613 Adware, 685 Affinitized thread, Vista, 858 Affinity scheduling, 543 Agent, 703 Aging, 156 Aging algorithm, 206 Aiken, Howard, Alarm signal, 37 Algorithmic paradigm, -962 ALPC (see Advanced LPC) Alternate data stream, Vista, 908 Analog digital converter, 474 Analytical engine, Antivirus techniques, 693-699 APC (see Asynchronous Procedure Call) Absolute path, 777 Absolute path name, 267 Access control entry, 916 Access control list, 622-625 Vista, 824 Access token Vista, 915 Access violation, Vista, 884 Accidental data loss, 614 ACE (see Access Control Entry) Acknowledged datagram service, 585 Acknowledgement, 140 Acknowledgement packet, 584 ACL (see Access Control List) ACPI (see Advanced Configuration and Power Interface) Active message, 556 Active object, Symbian, 935-936 ActiveX control, 684, 855 Ada, Adapter, 329 ADC (see Analog Digital Converter) 1045 1046 INDEX Aperiodic real-time system, 159 API (see Application Programming Interface) Applet, 703 Application program issues, 422 Application programming interface, 58,572 Application verifier, Vista, 848 Architectural coherence, 961 Architecture, Associative memory, 194 Asymmetric digital subscriber line, 466,771 Asynchronous call, 554-556 Asynchronous input/output, 342 Asynchronous procedure call, 829,835-837 Atanasoff, John, 7-8 Atomic action, 126 Atomic transaction, 286 Attribute, file, 261 Audio compression, 482-485 Audio encoding, 474-476 Audio visual disk, 383 Authentication, 140,639-654 Authentication using a password, 640-641 Authentication using a physical object, 649 Authentication using biometrics, 651 Automounting, 795 NFS, 794 Available resource vector, 442 AWE (see Address Windowing Extensions) B B programming language, 717 Babbage, Charles, Backdoor, 666 Backing store, 229-231 Backup, file system, 296-302 Bad-news diode, 992 Balance set manager Vista, 887 Bandwidth reservation, Vista, 894 Bank switching Vista, 879 Banker's algorithm, 449-452 multiple resources, 450-452 single resource, 449-450 Barrier, 144-145 INDEX Base priority, Vista, 871 Base record, Vista, 904 Base register, 178-179 Basic block, 571 Basic input output system, 31,174 Batch scheduling, 148-149 Batch system, 9-10 Battery management, 421-422 Battery-powered computer, 998 Behavioral checker, 697-698 Bell-La Padula model, 632-634 Berkeley UNIX, 719-720 Berry, Clifford, 7-8 Best-fit algorithm, 184 Biba model, 634 Big kernel lock, 751 Binary exponential backoff, 582 Binary semaphore, 127 Binary translation, 571 Binding time, 974-975 Biometrics, 651 BIOS (see Basic Input Output System) BitLocker, 914 Bitmap, 409-411,410 device-independent, 411 Black-hat hacker, 640 Block cache, 305 Block caching, multimedia, 509-510 Block device, 328,348 Block size, 290 Block special file, 41,258 Linux, 768 Block started by symbol, 754 Blocking call, 553-556 Blocking network, 528 Biu-ray, 373-374,466 Blue pill, 686 Blue screen of death, 839 Bluetooth, 397 Boot, 751 Boot block, 271 Boot driver, Vista, 843 Boot sector virus, 675-676 Booting Linux, 751-753 Booting the computer, 31 Booting Vista, 843-844 Botnet, 666 Bottom-up implementation, 976-977 Bounded-buffer, 124 Bridge, 582 Brinch Hansen, Per, 134 Brooks, Fred, 11 Browser hijacking, 685 Brute force, 981-982 BSD, 12 BSOD (see Blue Screen Of Death) BSS (see Block Started by Symbol) Buddy algorithm, 762 Buffer cache, 305 Buffer overflow attack, 658-660 Buffered input/output, 342, 353-255 Burst mode, 336 Bus, 28-30 Busy waiting, 27,120, 344 Byron, Lord, Byte code, 708 c C-list (see Capability list) C preprocessor, 72 C programming, 70-73 C programming language, 717 CA (see Certification Authority) Cache, 773, 840, 890, 891 file, 305-308 web server, 96 write-through, 307 Cache-coherence protocol, 525 Cache-coherent NUMA multiprocessor, 529 Cache hit, 22 Cache line, 22,525 Cache manager, Vista, 840 Cache memory, 21-22 Caching, 987-988 multimedia, 508-511 Vista, 890-892 Call gate, 244 Canonical mode, 394 Capability, 625-628 1047 Capability list, 625, 636 Cavity virus, 674 CC-NUMA (see Cache-Coherent NUMA multiprocessor) CD-Recordable, 369-371 CD-Rewritable, 371 CD-ROM, 365-371 multisession, 370 CD-ROM file system, 310-311 CD-ROM sector, 367 CD-ROM track, 370 CD-ROM XA, 370 Central processing unit, 17-21,419-420 CERT (see Computer Emergency Response Team) Certificate, 619 Certification authority, 619 Challenge-response authentication, 648 Character device, 328, 348 Character special file, 41, 258 Linux, 768 Checkerboarding, 236 Checkpoint, 445 Chief programmer team, 992 Child process, 37,736 Chip-level multiprocessor, 531 Chrominance, 473 Ciphertext, 615 Circuit switching, 549 Circular buffer, 354 Class driver Vista, 843 Classical IPC problems, 161-167 Cleaner, 284 Cleaning policy, 224 Client, 65 Client-server design, Symbian, 931-932 Client-server model, 65 Client-server system, 969-970 Client stub, 557 Clock, 386-392 Clock algorithm, 203-204 Clock hardware, 386-388 Clock software, 388-392 Clock tick, 387 Cluster computer, 546 Cluster of workstations, 546 Cluster size, 317 1048 INDEX CMP (see Chip-Level Multiprocessor) CMS (see Conversational Monitor System) Co-scheduling, 545 Code bugs, exploiting, 657-665 Code injection attack, 664 Code review, 655 Code signing, 699-700 Symbian, 947 Colossus, COM (see Component Object Model) Command interpreter, 36 Committed page Vista, 877 Common criteria, 840 Common object request broker architecture, 594-595 Communication deadlock, 456-457 Communication in Symbian, 933, 949-953 Communication software, multicomputer 551-556 Companion virus, 671 Compatible time sharing system, 11 Component object-model, 826 Composite signal, 473 Compute-bound process, 145 Computer emergency response team, 682 Computer hardware review, 17-31 Computer utility, 13 Condition variable, 131, 135 Configuration manager, Vista, 840 Confinement problem, 635 Connection-oriented service, 584 Connectionless service, 584 Constant data length organization, 502 Constant time length organization, 502 Context data structure, Vista, 861 Context switch, 25, 152 Contiguous allocation, 272 Control object, 833 Control program for microcomputers 13-14,810 Conversational monitor system, 66-67 Cooked mode, 394 Coordination-based middleware, 596-601 Copy-on-write, 221,744, 879 CORBA (see Common Object Request Broker Architecture) INDEX Core, 20, 531 Core image, 36 Core memory, 23 Covert channel, 635-639 COW (see Cluster Of Workstations) CP/M (see Control Program for Microcomputers) CPU (see Central Processing Unit) CPU-bound job, 12 Cracker, 640 Crackers, break-in methods, 641-645 CreateProcessA, 822 CreateProcessW, 822 Critical region, 119-120 Critical section, 119-120, 866 Crossbar switch, 525 Crosspoint, 526 Cryptographic hash function, 617 Cryptography, 614-620 Csrss.exe, 817 CSY module, Symbian, 951 CTSS (see Compatible Time Sharing System) Cube, 547 Current allocation matrix, 442 Current directory, 268 Current priority, Vista, 871 Current virtual time, 209 Cutler, David, 15 Cycle stealing, 336 Cylinder, 24 Cylinder skew, 374 D D-space, 219 DACL (see Discretionary ACL) Daemon, 85,357,736 DAO (see Directed Acyclic Graph) Data caging, 949 Data confidentiality, 611 Data integrity, 612 Data paradigm, 963 Data segment, 53-54, 754 Datagram service, 585 DB (see DeciBel) Deadlock, 431-461 communication, 456-457 conditions for, 435-436 resource, 435-436 Deadlock avoidance, 446-452 Deadlock detection and recovery, 440-446 Deadlock modeling, 436-439 Deadlock prevention, 452-455 attacking circular wait, 454455 attacking hold and wait, 453 attacking mutual exclusion, 452-453 attacking no preemption, 453 Deadlock recovery, 445-446 through killing processes, 445-446 through preemption, 445 through rollback, 445-446 Deadlock research, 459 Deadlock trajectories, 449-450 Decibel, 474 Decoding, video, 476 Dedicated input/output devices, 356 Default data stream, Vista, 908 Defense against malware, 690-710 Defense in depth, 690 Deferred procedure call, 834-835 Defragmentation, 309 Degree of multiprogramming, 92 Dekker's algorithm, 121 Demand paging, 207 Denial of service, 612 Dentry data structure, Linux, 785 Design techniques brute force, 981-982 caching, 987-988 error checking, 982 exploiting locality, 989 hiding the hardware, 977-980 hints, 988-989 indirection, 980 optimizing the common case, 989 performance optimization, 983-990 reentrancy, 981 reusability, 980-981 space-time tradeoffs, 984-987 Device context, 408 Device controller, 329 1049 Device driver, 26, 347-351 dynamically loaded, 26 Symbian, 941-942 Vista, 841-843, 897-898 Device driver interface, 351-353 Device driver virus, 676-677 Device independence, 343, 356 Device-independent bitmap, 411 Device object, 820 Vista, 841 Device stack, Vista, 841, 900-902 Diameter, 547 DIB (see Device-independent Bitmap) Die, 531 Digital research, 13-14 Digital rights management, 829 Digital signature, 617-619 Digital versatile disk, 371-374, 466 Digital video, 480 Dijkstra, E.W., 126 Dining philosophers problem, 162-165 Direct memory access, 27-28,334-337, 345 Symbian, 942-943 Directed acyclic graph, 281 Directory, 39, 258, 266 current, 268 hierarchical, 266-267 implementation, 278-280 single-level, 266 working, 268-269 Directory-based multiprocessor, 529 Directory hierarchy, 590-591 Directory operation, 270-271 Dirty bit, 192 Disabling interrupts, 120-121 Disco, 68 Discovery protocol, Jini, 599 Discretionary access control, 632 Discretionary ACL, Vista, 915 Disk, 46-47 CD-ROM, 365-370 DVD, 371-374 IDE, 359 interleaved, 376 RAID, 361-365 SATA, 359 1050 INDEX INDEX Dynamic link library, 221 Disk farm, 506 Dynamic relocation, 178 Disk formatting, 374-377 Disk hardware, 359-373 Disk memory, 24-25 Disk operating system, 14 E Disk quota, 295-296 Disk scheduling, multimedia, 511-514 E-cos, 177 Disk scheduling algorithm, 377-380 Earliest-deadline-first scheduling, 489-491 elevator, 379 Early binding, 974 shortest seek first, 378 Echoing, 394 Disk space management, 290-296 Eckert, J Presper, Dispatcher object, 834,836 EEPROM (see Electrically Erasable PROM) Dispatcher thread, 96 Effective UID, 800 Distributed operating system, 16 Distributed shared memory, 225,558, 558-563 EFS (see Encrypting File System) Electrically erasable PROM, 23 Distributed system, 523,578,578-601 Elevator algorithm, 379 Distributed systems, 997 Linux, 774-775 DLL (see Dynamic Link Library) Embedded operating system, 33-34,998 DLL hell, 855 Encoding, video, 476-482 DMA (see Direct Memory Access) Encryption, 615,616,694,913,914 DNS (see Domain Name System) Encryption file system, 913 Document-based middleware, 588-589 End-to-end argument, 968 Domain, 620 ENIAC, Domain 0,576 EPOC, 927 Domain name system, 587 Brmo variable, 112 DOS (see Disk Operating System) Error checking, 982 Dotted decimal notation, 642 Error-correcting code, 330 Double buffering, 354 Error handling, 341 Double-indirect block, 320,791 disk, 380-383 Double-interleaved disk, 376 Error reporting, 355 Double torus, 547 Escape character, 396 DPC (see Deferred procedure call) Escape sequence, 398 Drive-by download, 683 Ethernet, 581-582 Driver interface, 422 Event, 866 Driver-kernel interface, 772 Event-driven paradigm, 962 Driver object, 820 Exclusive lock, 780 Vista, 893 Executable program virus, 672-674 Driver verifier Vista, 897 Execution paradigms, 962-963 DRM (see Digital Rights Management) Executive, Vista, 832 Dropper, virus, 671 Executive layer, Vista, 837-841 DSM (see Distributed Shared Memory) Existing resource vector, 442 DV (see Digital Video) Exokernei, 69,968-969 DVD (see Digital Versatile Disk) Exploiting code bugs, 657-665 Dynamic disk, Vista, 893 Exploiting locality, 989 Dynamic disk scheduling, multimedia Ext2 file system, Linux, 784-791 513-514 Ext3 file system, Linux, 791-792 Extensible system, 970 Extent, file, 274 External fragmentation, 236 1051 File handle, NFS, 794 File naming, 255-257 File operation, 262-263 File sharing, semantics, 592-594 File structure, 257-258 File system, 253-323 CD-ROM, 310-311 F FAT-16,902 free block management, 293-295 Fair-share scheduling, 158 ISO 9660,311-314 False sharing, 561-562 Linux, 775-797 FAT (see File Allocation Table) log-structured, 285-287 FAT-16 file system, 255, 902 multimedia, 491-514 FAT-32 file system, 255,902 Symbian, 932,944-949 FCFS (see First-Come First-Served algorithm) UNLXV7,319-321 Fiber, 468, 583, 860, 867 virtual, 286-289 Field, 473 Vista, 902-914 FIFO (see First-in First-Out algorithm) File system, FAT-32,902 File, 38-41 File system backup, 296-302 block special, 41,258,768 File-system-based middleware, 589-594 character special, 41,258, 768 File system block size, 290 goat, 693 File system calls header, 71-72,732 example, 263-266 immediate, 908 Linux, 781 implementation, 272-278 File system consistency, 302-305 implemented with list, 275-276 File system filter driver, 842 mapped, 223 File system implementation, 271-289 memory-mapped, 756 File system layout, 271-272 object, 72 File system management, 290-310 persistent, 254 File system performance, 305-309 random access, 260 File system research, 322 raw block, 774 File system security, Symbian, 945-946 regular, 258 File system structure, Vista, 904-908 sequential access, 260 File type, 258-260 shared, 281-283 Filter, 729,901 sparse, 908 Vista, 841 special, 768 Filter driver, Vista, 900 File access, 260 Finger daemon, 681 File allocation table, 276 Finite-state machine, 97 File attribute, 261-262 Firewall, 691-693 File caching, multimedia, 510-511 stateless, 692 File compression Vista, 912-913 First-come first-served algorithm, 377 File data structure, Linux, 785 First-come first-served scheduling, 150-151 File descriptor, 40,265,781 First-fit algorithm, 184 File encryption, Vista, 913-914 First generation computer, 7-8 File extension, 256-257 First-tn first-out algorithm, 202 INDEX INDEX Flag, command, 728 Flash device, 859 Flash memory, 23 Flashing, 843 Fly-by mode, 336 Folder (see Directory) Font, 411 Format string attack, 660-662 FORTRAN, 8-10 FORTRAN monitor system, 10-11 Fourth generation computer, 13-16 Fragmentation, 218, 310 Frame, 472 CD-ROM, 367 Free block, 293 FreeBSD, 16 Frequency masking, 482 Group ID, Linux, 799 GRUB (see GRand Unified Bootloader) Guaranteed scheduling, 156-157 Guest operating system, 69, 568 GUI (see Graphical User Interface) H Hacker, 640 HAL (see Hardware Abstraction Layer) Handheld computer operating system, 33 Handle, 87,818 Symbian, 929 Vista, 846-848 Hard fault, Vista, 885 Hard link, 271 Hard real time, 158 Hard real-time operating system, 34 Hardware abstraction layer, 829-832, 830 HD DVD (see High-Definition DVD) Gabor wavelet, 653 Head skew, 375 Gang scheduling, 544-546 Header files, C, 71-72,731 Gates, Bill, 13-14 Heap, 755 GDI (see Graphics Device Interface) Hibernation, Vista, 901 GDT (see Global Descriptor Table) Hierarchical directory system, 266 Generic right, 627 High-definition DVD, 373-374,466 GID (see Group ID) High-level format, 377 Global descriptor table, 240 High Sierra CD-ROM, 368 Global paging algorithm, 214-215 Hints, 988-989 Global variable, 114-115 History of Linux, 722-724 Globus toolkit, 601 History of MS-DOS, 810 Gnome, 16,5 History of operating systems, 7-16 GNU Public License, 723 History of UNIX and Linux, 716-724 Goat file, 693 History of Windows, 809-815 Gooey (see Graphical user interface) Hive, Vista, 825,826, 840 GPL (see GNU Public License) Hoare, C.A.R., 134 Grand unified bootloader, 751 Graphical user interface, 1-2,14,402-409,721 Honeypot, 703 Host, 457,583 Graphics adapter, 404 Host operating system, 68,568 Graphics device interface, 408 Hungarian notation, 407 Green book, CD-ROM, 368 Hypercube, 548 Grid, 547, 601 Hyperlink, 588 Group, 624 Hyperthreading, 20 Group ID, 37 Hypervisor, 68 type 1,568,569-570 type 2,570-571 Hypervisor call, 572 1053 Implementation of the file system in Vista, 904-914 Implementation of the object manager in Vista, 844-854 Implementation of threads in Linux, 741-748 Implementation of threads in Vista, 867-869 Import address table, Vista, 855 I Imprecise interrupt, 340-34! Incremental dump, 298 I-node, 55,277-278 Indirection, 980 I-node data structure, Linux, 785 Industry standard architecture, 29 I-node table, Linux, 788 Input/output, 327-425,41-42 I-space, 219 buffered, 342,353-355 IAT (see Import Address Table) interrupt-driven, 344-345 IBM 1401,9 programmed, 342-344 IBM 7094,9-10 software layers, 346-358 IBM zSeries, 11 Symbian, 941-944 IBSYS, 10 using DMA, 345 IC (see Integrated Circuit) Input/output-bound process, 145 IDE disk (see Integrated Drive Electronics disk) Input/output completion port, Vista, 896 Ideal processor, Vista, 872 Input/output device, 25-28, 328-329 Idempotency, 286 Input/output hardware, 327-34f Identity theft, 667 Input/output in Linux, 767-775 IDL (see Interface Definition Language) Input/output in Vista, 892-902 IDS (see Intrusion Detection System) Input/output manager, Vista, 838 HOP, 595 Input/output MMU, 576 Input/output port, 330 Immediate file, Vista, 908 Input/output port space, 26 Impersonation, Vista, 916 Input/output request packet, 851,898-899 Implementation of I/O in Linux, 771 Input/output research, 423-424 Implementation of I/O in Vista, 897-902 Input/output scheduler, 773 Implementation of memory management Input/output software in Linux, 758-767 Implementation of memory management device-independent, 351-356 in Vista, 881-890 goals, 341-342 Implementation of operating principles, 341-345 systems, 967-982 user-space, 357-358 Implementation of paging, 225-232 Input/output system calls in Linux, 771 Implementation of processes Input/output virtualization, 576-577 in Linux, 741-748 Input software, 392-397 Implementation of processes Insider attacks, 654-657 in Vista, 867-869 Instruction backup, 227-228 Implementation of security in Linux, 802 Integer overflow attack, 663 Implementation of security in Vista, 918 Integrated circuit, 11 Implementation of segmentation, 235-236 Integrated drive electronics disk, 26, 359 Implementation of the file system in Integrity checker, 697 Integrity level, 917 Linux, 784-792 1054 Intel core 2,15 Interconnection technology, 547-549 Interface definition language, 594 Interfaces to Linux, 726-727 Interlaced video, 473 Interleaved disk, 529 Internal fragmentation, 217-218 Internet, 582-584 Internet interorb protocol, 595 Internet protocol, 586,770 Interpretation, 706-707 Interprocess communication, 37,117-145 Symbian, 936-937 Vista, 864-865 Interrupt, 27, 337-241 imprecise, 340-341 precise, 339-340 Interrupt-driven input/output, 344-345 Interrupt handler, 346-347 Interrupt service routine, 834 Interrupt vector, 27,90,338 Intrinsics, 400 Intruder, 613-614 Intrusion detection system, 693, 701 Invalid page, Vista, 877 Inverted page table, 198-199 IP (see Internet Protocol) IP address, 586,642 IPC (see InterProcess Communication) Iris recognition, 653 IRP (see Input/output Request Packet) ISA (see Industry Standard Architecture) ISO 9660 file system, 311-314 ISR (see Interrupt Service Routine) J Jailing, 700-701 Java development kit, 708 Java security, 707-709 Java virtual machine, 69, 706-708 JavaSpace, 600-601 JBD (see Journaling Block Device) JDK (see Java Development Kit) INDEX INDEX Jiffy, 748 Jini, 599-601 Jitter, 469 Job, Jobs, Steve, 14 Jobs and fibers Vista, 859-860 Joint photographic experts group, 476 Joliet extensions, 315-316 Journal, 824 Journaling, Vista, 913 Journaling block device, 792 Journaling file system, 285-286 Journaling file system, Linux, 791 JPEG (see Joint Photographic Experts Group) JPEG Standard, 476-479 JVM (see Java Virtual Machine) K KDE, 16,5 Kerckhoffs' principle, 615 Kernel, Vista, 828, 832 Kernel extension, Symbian, 942 Kernel layer Vista, 832-834 Kernel mode, Kernel-mode driver framework, 897 Kernel structure, Linux, 732-735 Kernel threads, 970 Key cryptographic, 615 file, 258 Vista, 844 Keyboard software, 393-396 Keylogger, 666 Kildall, Gary, 13 KMDF (see Kernel-Mode Driver Framework) L -2,23 -2,23 LAN (see Local Area Network) Land, CD-ROM, 365,366 Laptop mode, 767 Large address spaces, 996 Large memory, 45 Large programming project, 72-73 Late binding, 974 Layered system, 61-62, 967-968 LDT (see Local Descriptor Table) Lease, 599 Least recently used algorithm, 204-205, 884 simulating, 205-207 Legacy hardware, 31 Lightweight process, 99 Limit register, 178-179 Linda, 596-597 Line discipline, 774 Linear address, 242 Link, 281,777 Linked list allocation, 275-276 Linker, 72 Linus elevator scheduler, 774-785 Linux, 13,5,715-802 booting, 751-753 history, 13,722-724 implementation of processes, 741-748 Linux block special file, 768 Linux character special file, 768 Linux CLONE call, 746-747 Linux dentry data structure, 785 Linux disk scheduler, 774-775 Linux elevator algorithm, 774-775 Linux ext2 file system, 784-791,785 Linux ext3 file system, 791-792 Linux file data structure, 785 Linux file system, 775-797, 775-798 Linux file system cails, 781, 781-784 Linux goals, 725-726 Linux group ID, 799 Linux i-node data structure, 785 Linux i-node table, 788 Linux input/output, 767-775 Linux input/output system calls, 771-775 Linux interfaces, 726-727 Linux journaling file system, 791 Linux kernel structure, 732-735 Linux loadable module, 775 1055 Linux memory allocation mechanism, 762-763 Linux memory management, 754-767 Linux memory-management system calls, 757-758 Linux networking, 769-771 Linux object cache, 763 Linux open file description table, 790 Linux page descriptor, 759 Linux page reclaiming algorithm, 764-767 Linux paging, 764-767 Linux physical memory management, 758-762 Linux process, 735-753 Linux process identifier, 736 Linux process management, 737-741 Linux process-management system calls, 737-741 Linux process scheduling, 748-751 Linux raw block file, 774 Linux raw file, 774 Linux runqueue, 749 Linux scheduling, 748-751 Linux security, 799-802 Linux special file, 768 Linux superblock, 786 Linux system call access, 112,637,677, 801, 802 alarm, 114,388,741,990 brk, 53, 755,757 chdir, 56,673, 747, 783 chmod, 57,670, 801 chown, 670 clone, 746,748,972,973 close, 54, 262,288,491,702,770,781,795,796 closedir, 270 creat, 781,784 create, 262,270,631,781 exec, 52, 53,79, 108, 621, 659, 675, 738, 739 740, 744,758, 817, 863, 965, 972, 973 execve, 52, 58, 85, 86 exit, 53, 86,702,740 fend, 783 fork, 50, 52,58,79, 85, 86,102,103,220 221,458, 535,736,737,738,743, 744 745, 746, 747, 764,804, 805, 817, 858 859, 863, 965, 972, 982 fstat, 54, 782 fsuid, 807 fsync, 767 1056 INDEX Linux system call (continued) getpid, 736 ioctl, 771, 894, 896 kill, 57, 87,741 link, 55, 270,783,784 lseek, 54,79, 287,745,747, 782, 806, 961 mkdir, 55,783 mmap, 757, 805,823 mount, 40, 56,796, 797 munmap, 757 nice, 749 open, 54, 112, 262, 268, 287, 316, 323, 356 433,439,491,625, 701,768,781,785 787,795, 796,798, 894,929,931 opendir, 270 pause, 89,741 pipe, 782 read, 19, 36,47,48,54,57, 64,96, 97, 102 106,107,168,260, 262, 265, 270, 287 288, 289, 342, 353,4, 491, 492,592 593, 620, 701,702,726,750, 756, 767 768, 781,782,785,788,790,795,796 797,802,894,959, 961,965 readdir, 270,783 rename, 263,270,323 request, 433 rewinddir, 784 rmdir, 55,783 select, 106, 107,169, 837 setgid, 802 setuid, 802, 807 sigaction, 741 signal, 135,346 S t a t , 54,782, 786,788 sync, 307,767, 896 umount, 56 unlink, 56,79,271,783,784 wait, 135, 136,137,346 waitpid, 52,53,738,740 write, 4, 54,263,265,287,288, 307, 354 357,592,620,701, 702,756, 767, 768 770,781,782,785,792,798, 802, 894 Linux task, 742 Linux thread, 744-748 Linux user ID, 799 Linux utility program, 730-732 INDEX Linux virtual address space, 763-764 Linux virtual file system, 784-785 Linux waitqueue, 751 Livelock, 457-458 Load balancing, 563-566 Load control, 216-217 Loadable module, Linux, 775 Local area network, 581 Local descriptor table, 240 Local paging algorithm, 214-215 Local procedure call, 817 Local vs global paging, 214-216 Locality of reference, 207 Location independence, 592 Location transparency, 591-592 Lock, fde, 779 Lock variable, 119 Locking pages, 228-229 Log-structured file system, 283 Logic bomb, 654-655 Logical block addressing, 361 Logical dump, 299 Login spoofing, 656 Lookup service, Jini, 599 Loosely coupled system, 523 Lossy encoding, 476 Lottery scheduling, 157 Low-level format, 374 LPC (see Local Procedure Call) LRU (see Least Recently Used algorithm) Luminance, 473 M Macintosh, 14, 16 Macro, 71 Macro virus, 677 Macroblock, 480 Magic number, 259 Magnetic disk, 359 Mailbox, 141 Mailslot, 864 Mainframe, 1057 Mainframe operating system, 32 Major device, 352,768 Malware, 665-690 Mandatory access control, 632 Mapped file, 223 Mapped page writer Vista, 889 Marshaling, parameter, 557 Mask, audio, 482 Master boot record, 271,377,751 Master file table, Vista, 904 Master-slave multiprocessor, 534 Mauchley, John, MBR (see Master Boot Record) MD5 (see Message Digest 5) MDL (see Memory Descriptor List) Mechanism vs policy, 65, 159-160 231-232,971-972 Memory, 21-24,420 managing free, 182-185 paged, 186-232 segmented, 232-245 virtual, 186-245 Memory allocation mechanism Linux, 762-763 Memory compaction, 181 Memory descriptor list, 899 Memory hierarchy, 21,173 Memory management, 173-246 Linux,754-767 Symbian, 933,937-941 using bitmaps, 183 using free lists, 183-185 using overlays, 186 Vista, 840, 875-890 Memory management research, 245 Memory management system calls in Linux, 757 Memory management system calls in Vista, 880 Memory management unit, 25, 187-190 Memory manager, 173 Memory-mapped file, 756 Memor> • -mpped input/output, 330-334 Mesh, 547 Message digest 5, 618 Message passing, 140-144 Message passing design issues, 138,140 Message-passing interface, 142 Message type module, Symbian, 952 Metadata, 261 Metafile, 410 Method, 407,594 Metric units, 76-77 MFT (see Master File Table) Mickey, 397 Microcomputer, 13 Microkernel, 62-65, 572-573,930-933, 969-970 MINIX 3,63-65 Microkernel design, Symbian, 930 Microprogram, 241 Microsoft, 14-15 Microsoft disk operating system, 14, 15, 254 316-319,324,810,811,906 Middleware, 580 coordination-based, 596 document-based, 588-589 file-system-based, 589-594 object-based, 594-595 Millennium edition, 15 Mimicry attack, 703 Mini-port, Vista, 843 MINIX, 721-722 history, 14 MINIX 3, 63-65 Minor device, 56, 352,768 Missing block, 303 MMU (see Memory Management Unit) Mobile code, 703-704 Model-based intrusion detection, 701-703 Modeling multiprogramming, 91-93 Modified page writer, Vista, 889 Modules in Linux, 775 Monitor, 134-140 Monoalphabetic substitution cipher, 616 Monolithic system, 60-61 Moore's law, 531 Menu Motif, 400 Motion picture experts group, 479 Mounted file system, 40,341 ssure, 887 Memo Wl^ident virus, 674-675 Memory virtualization, 574-575 1058 INDEX 1059 Network processor, 551 Network protocol, 585,585-587 Network service, 584-585 Networking, 996-997 Linux, 769-771 Symbian, 932 New technology file system, 902-914 New technology operating system, 816 Next fit algorithm, 184 NFS (see Network File System) NFU (see Not Frequently Used algorithm) No cache NUMA multiprocessor, 529 No silver bullet, 994 Nonblocking call, 553-556 Nonblocking network, 526 Noncanonical mode, 394 Nonpreemptable resource, 432-433 Nonpreemptive scheduling, 146 Nonresident attribute, NTFS, 906 Nonuniform memory access, 872 Nonuniform memory access multiprocessor 529-531 Nonvolatile RAM, 385 Not frequently used algorithm, 205-206 Not recently used algorithm, 201-202 Notification event, 866 Notification object, 837 NRU (see Not Recently Used algorithm) NT (see Windows NT) NT-based Windows, 811-814 NT namespace, 820 NTFS (see New Technology File System) NTOS (see New Technology Operating System) NUMA multiprocessor (see Nonuniform memory access multiprocessor) Nyquist theorem, 475 Object file, 72 Object manager, 820 Vista, 838 Object name space Vista, 848-854 Object orientation, Symbian, 929-930 Object request broker, 594 Off-line operation, Omega network, 527 One-shot mode, 387 One-time password, 647-648 One-way function, 617 One-way hash chain, 647 Ontogeny recapitulates phylogeny, 44-47 Open file description table, Linux, 790 Operating system, as a resource manager, 6-7 as extended machine, 4-5 Berkeley UNIX, 719-720 BSD, 13 FreeBSD, 16 history, 7-16 Linux, 5,13,715-802 MINIX, 12,63-65,7256 PDP-11 UNIX, 717-718 Portable UNIX, 718-719 Standard UNIX, 720-721 UNIX, 12 Windows 2000,15,3,813 Windows 2003,814 Windows 3.0, 812 Windows 95,3,811 Windows 98, 3,811 Windows Me, 15,3,811 Windows NT, 15,3 Windows NT 4.0, 813 Windows server 2008, 809 Windows Vista, 3,809-922 Windows XP, 15,3,813 Operating system concepts, 35-47 Operating system design, 955-999 brute force, 981-982 caching, 987-988 error checking, 982 exploiting locality, 989 goals, 956-957 hiding the hardware, 977-980 INDEX Multiprocessor operating system types Mounting, 56 534-538 Mouse software, 397 Multiprocessor scheduling, 540-546 MP3 (see MPEG audio layer 3) Multiprocessor synchronization, 536-539 MPEG (see Motion Picture Experts Group) Multiprogramming, 11, 82-84 MPEG audio layer 3,482-485 modeling, 91-93 MPEG standard, 479-482 Multisession CD-ROM, 370 MPI (see Message-Passing Interface) Multistage switching network, 527-529 MS-DOS (see Microsoft Disk Operating Multithreaded code, 114-117 System) Multithreading, 20,99 MS-DOS 1.0, 810 Murphy's law, 116 MS-DOS-based Windows, 811 Mutation engine, 696 MS-DOS file system, 316-319 Mutex, 130-134 Multicomputer, 546-566 Mutexes in E^hreads, 130 Multicomputer hardware, 547-551 Mutual exclusion, 117 Multicomputer scheduling, 563 Multicore chip, 20-21,531,577-578,995-996 busy waiting, 20 MULTICS (see MULTiplexed Information disabling interrupts, 120-121 and Computing Service) lock variable, 119 Multilevel page table, 196-198 Peterson's solution, 123-124 Multilevel security, 632-634 priority inversion, 124 Multimedia, 465-516,997 sleep and wakeup, 125-126 Multimedia caching, 508-511 spin lock, 120 Multimedia disk scheduling, 511-514 strict alternation, 121 -122 Multimedia file placement, 497-508 with busy waiting, 120-125 Multimedia file system, 491-514 Mythical man month, 990 near video on demand, 502-504 organization, 497-502 Multimedia files, 470-476 Multimedia in Symbian, 933 N Multimedia operating systems, 465-516 audio encoding, 482-485 Naming, 973 introduction, 466-470 Naming transparency, 591-592 Nanokernel, Symbian, 931 process scheduling, 485-491 Nanothread, Symbian, 934-935 research, 514-515 Narrow striping, 508 video encoding, 471-474 Multimedia scheduling, 485-491 NC-NUMA (see No Cache NUMA multiprocessor) Multimedia server, 492 Near video on demand, 494-497 Multiple-processor system research, 602-603 Network device, 774 Multiple queue scheduling, 154-156 Network file system, 288,792-798 Multiplexed Information and Computing Service architecture, 793 implementation, 796-798 12-13,47,236-240,716 Multiplexing, 6-7 protocols, 793-796 Multiprocessor, 82,524-546 version 4,798 Multiprocessor hardware, 524-532 Network hardware, 581-584 Multiprocessor operating system Network interface, 549-551 34-35,532-546 Network operating system, 16 o Object, 594,623,820,838, 844,848 849,850, 851,852,853 Object adapter, 595 Object-based middleware, 594-595 Object cache, Linux, 763 1060 INDEX Operating system design {continued) hints, 988-989 implementation, 967-982 interfaces, 959-966 paradigms, 961-964 performance optimization, 983-990 principles, 959-961 reentrancy, 981 space-time tradeoffs, 984-987 trends, 994-999 why is it hard?, 957-959 Operating system structure, 60-70 client-server, 65 layered, 61-62 microkernel, 62-65 monolithic, 60-61 virtual machine, 65-69 Optimal page replacement algorithm, 200-201 Optimization, goals, 984 Optimizing the common case, 989 Orange book, 369 ORB (see Object Request Broker) Organ-pipe algorithm, 505 Orthogonality, 972-973 OS/2,811 OS/360, 11-12 Ostrich algorithm, 439 Output software, 397-412 Overlapped seek, 359 Overlay, 186 Overview of Linux, 724-735 Overwriting virus, 672 P P operation, 126 -2,720 Packet sniffer, 644 PAE (see Physical Address Extension) Page, 186-190 Page allocator, 762 Page daemon, 765 Page descriptor, Linux, 759 INDEX Page directory, 243 Symbian, 939 Page fault, 189 Page fault frequency algorithm, 215-216 Page-fault handling, 226-227 Linux, 764-767 Vista, 882-886 Page frame, 188 Page frame number database Vista, 887 Page frame reclaiming algorithm, 764-767 Page replacement algorithm, 199-214, 765 aging, 206 clock, 203-204 ftrst-in first-out, 202 global, 214-215 least recently used, 204-205 Linux, 764-767 local, 214-215 not frequently used, 205-206 not recently used, 201-202 optimal, 200-201 page fault frequency, 215-216 second-chance, 202-203 summary of, 213-214 Vista, 886-887 working set, 207-211 WSclock, 211-212 Page size, 217-218 Page table, 190-192 inverted, 198-199 multilevel, 196-198 Page table, large memory, 196 Page table entry, 191-192 Pagefile, Vista, 877-879 Paging, 187-190 copy-on-write, 221 implementation, 225-232 instruction backup, 227-228 locking pages, 228-229 optimization, 192-196 separation of policy and mechanism, 231-232 shared pages, 219-221 Paging daemon, 224 Paging in Linux, 764-767 Paging systems, design issues, 214-225 Parallel systems, 997 Parasitic vims, 673 Paravirt ops, 574 Paravirtualization, 69, 572-574 Parent process, 736 Partition, 12,31, 56,229,286,310,317, 318 377, 675, 765,786 Password, 261, 624, 640-651, 655, 656 Password security, UNIX, 645-646 Paterson, Tim, 14 Path name, 40,267-270 absolute, 267 relative, 268 Payload, virus, 671 PCI bus, 29 PCI Express, 29 PDA (see Personal Digital Assistant) PDP-1, 14 PDP-11, 717, 718 PDP-11 UNIX, 717-718 PEB (see Process Environment Block) Pentium, 15 Pentium, segmentation, 240-235 Perceptual coding, 482 Perfect shuffle, 527 Performance, 983-990 Periodic real-time system, 159 Peripheral component interconnect, 29 Personal computer operating system, 33 Personal digital assistant, 33 Personal firewall, 693 Peterson, G.L., 121 Peterson's solution, 121 PFF (see Page fault frequency algorithm) PFN database (see Page Frame Number database) PFRA (see Page Frame Reclaiming Algorithm) Physical address extension, 763, 884 Physical dump, 298 Physical memory management Linux, 758-762 Vista, 887-890 PID (see Process IDentifier) Pidgin Pascal, 136-138 Pinned page, 228-229, 759 Pipe, 41,737 1061 Pipe symbol, 729 Pipeline, 18-19,730 Pit, CD-ROM, 365-366 Pixel, 473 PKI (see Public Key Infrastructure) Plaintext, 615 Play point, 496 Plug and play, 30, 839, 893 Pointer, in C, 70-71 POLA (see Principle of Least Authority) Policy vs mechanism, 65, 159-160 231-232,971-972 Polling, 344 Polymorphic virus, 696 Pop-up thread, 112-114,556 Port, 644 Portable C compiler, 718 Portable UNIX, 718-719 Port number, 692 Port scan, 644 Position-independent code, 223 POSIX, 12,48-57, 720 POSIX threads, 104-106 Power management, 415-423 application issues, 422-423 battery, 421-422 CPU, 419-420 disk, 418-419 display, 417-418 hardware issues, 416-417 memory, 420 operating system issues, 417 thermal, 421 wireless communication, 420-421 Power manager Vista, 901 PowerShell, 826 Preamble, 330 Precise interrupt, 339-340 Preemptable resource, 432-433 Preemptive scheduling, 147 Prepaging, 208, 882, 885 Present/absent bit, 189 Primary volume descriptor, 311 Principal, 623,76 Principle of least authority, 621 Printer daemon, 116 1062 Priority inversion, 124, 874 Priority scheduling, 153-154 Privacy, 612 Privilege escalation attack, 665 Privileged instruction, 569 Process, 36-38, 81-15,89-91 compute-bound, 145 implementation in Linux, 741-748 input/output-bound, 145 IPC Linux, 735-753 IPC Symbian, 932, 933-937 IPC Vista, 857-875, 858-859 Process behavior, 147-148 Process control block, 89 Process creation, 84-86 Process environment block, Vista, 858 Process group, 737 Process hierarchy, 87 Process ID, 52 Process identifier, 736 Process management, Linux, 737-741 Process manager Vista, 839 Process model, 82-84 Process scheduling, Linux, 748-751 multimedia, 485-491 Process state, 88-89 Process switch, 152 Process table, 36, 89 Process termination, 86-87 Processor, 17-21 Processor allocation algorithm, 564 graph-theoretic, 564-565 receiver-initiated, 566 sender-initiated, 565-566 Processor sharing, 170 Producer-consumer problem, 124 with Java, 139-141 with message passing, 142-144 with monitors, 137-139 with Pthreads, 133 with semaphores, 129-130 Program counter, 18 Program status word, 18 Programmed input/output, 342-344 Programming Vista, 815-827 Progressive video, 473 INDEX INDEX Project management, 990-994 bad-news diode, 992 chief programmer team, 992 mythical man month, 990 no silver bullet, 994 role of experience, 993 second-system effect, 993 team structure, 991-993 Prompt, 43 shell, 728 Proportionality, 149 Protection, 42 Protection command, 631 Protection domain, 620-622 Protection hardware, 45-46 Protection mechanism, 611,620-639 Protection ring, 244 Protocol, 585 BFS, 794 communication, 456 Symbian, 951-952 Protocol stack, 586 PRT module, Symbian, 952 Pseudoparallelism, 82 Psion, 926-927 PSW, 18 Psychoacoustics, 482 Pthreads, 104-106,132-134 Public-key cryptography, 616-617 Public key infrastructure, 619 Publish/subscribe, 598,599 Publish/Subscribe system, 598-599 Pull server, multimedia, 492 Pulse code modulation, 475 Push server, multimedia, 492 Q Quality of service, 469,584 Quantization, 477 Quantization noise, 475 Quantum, 152 Quick-fit algorithm, 185 Quota, 295,296,846 R R-node, 797 NFS, 797 Race condition, 117-119,125 RAID (see Redundant Array of Inexpensive Disks) RAM (see Random Access Memory) Random access file, 260 Random access memory, 23 Rate monotonic scheduling, 488-489 Raw block file, Linux, 774 Raw mode, 394 Read ahead, 308 NFS, 798 Read-only memory, 23 Readers and writers problem, 165-166 Readyboost, Vista, 892 Readyboot, Vista, 892 Real time, 388 Real-time operating system, 34-35 Real-time scheduling, 158-161,486-491 Recovery console Vista, 844 Recovery from deadlock, 445-446 through killing processes, 446 through preemption, 445 through rollback, 445-446 Recycle bin, 297 Red book, CD-ROM, 365 Redundant array of inexpensive disks 361-365 Reed-Solomon code, 368 Reentrancy, 981 Reentrant device driver, 350 Reference monitor, 706 Referenced pointer, 846 Regedit, 826 Registry, Windows, 825 Regular file, 258 Reincarnation server, 64 Relative path, 777 Relative path name, 268 Remote access model, 589-590 Remote procedure call, 556-558 implementation, 557-558 Removable media, Symbian, 944 1063 Rendezvous, 142 Reparse point Vista, 904,907,911 Replication, 561 Request matrix, 442 Request-reply service, 585 Research deadlock, 459 file system, 322 input/output, 423-424 memory management, 245 multimedia operating system, 514-515 multiple-processor system, 602-603 operating systems in general, 74-75 processes and threads, 166-167 security, 709-710 Reserved page Vista, 877 Resource, 402,432-435 nonpreemptable, 432-433 preemptable, 432-433 Resource acquisition, 433-435 Resource deadlock, 435-436 Resource trajectories, 447-448 * Response time, 149 Restricted token, Vista, 859 Return to Hoc attack, 662-663 Reusability, 980-981 Right, 620 RMS (see Rate Monotonic Scheduling) Rock ridge extensions, 314-315 Role, 624 Role of experience, 993 Root, 800 Root directory, 40, 266 Root file system, 40 Rootktt, 686-690 Sony, 689-690 types, 686-687 Rootkit detection, 687-689 Round, 511 Round robin scheduling, 152-153 Router, 457,583 RFC (see Remote Procedure Call) RSA (Rivest-Shamir-Adelman) algorithm, 617 Run time for C programs, 73 Runqueue, Linux, 749 RWX bits, 42 1064 s SACL (see System Access Control List) Safe-boot, Vista, 843 Safe state, 448-449 Salt, 646 Sandboxing, 704-706 SATA disk (see Serial ATA disk) Scan code, 393 Scan-EDF algorithm, 513 Schedulable real-time system, 159 Scheduler, 143 Linux disk, 774-775 Scheduler activations, 111-112 Scheduling, when to do, 148-149 Scheduling algorithm, 145-161 affinity, 543 batch system, 149-148,150-152 categories, 147 earliest-deadline-first, 489-491 fair-share, 158 first-come first-served, 150-151 gang, 544-546 goals, 148-150 guaranteed, 156-157 interactive system, 148-149, 152-158 introduction, 145-150 Linux, 748-751 lottery, 157 multicomputer, 563 multimedia, 485-491 multiple-queue, 154-156 multiprocessor, 540-546 nonpreemptive, 147 preemptive, 147 priority, 153-154 rate-monotonic, 488-489 real-time, 148,150,158-161,486-491 round-robin, 152-153 shortest-job-first, 151-152 shortest-process-next, 156 shortest-remaining-time-next, 152 smart, 542 thread, 160-161 two-level, 543 Vista, 870-875 INDEX INDEX Scheduling mechanism, 159 Scheduling policy, 159 Script kiddy, 645 SCSI (see Small Computer System Interface) Second-chance algorithm, 202-203 Second-generation computer, Second-system effect, 993 Secret-key cryptography, 615-616 Section, 819 Secure hash algorithm-1, 618 Secure hash algorithm-256,618 Secure hash algorithm-512,618 Secure system, formal model, 630-632 Secure virtual machine, 569 Security, 609-711 Linux, 799-802 Symbian, 945-949 Vista, 914-920 Security by obscurity, 615 Security descriptor Vista, 819,916 Security identifier, 915 Security in Symbian, 946-949 Security in Vista, 914-920 Security reference monitor, Vista, 840 Security research, 709-710 Security system calls Linux, 801 Vista, 917-918 Segment, 233 data, 53-54 stack, 53-54 text, 53-54 Segmentation, 232-244 implementation, 235-236 Segmentation with paging, 236-245 MULTICS 238-242 Pentium, 240-245 Self-map, Vista, 868,885 Semantics of file sharing, 592-594 Semaphore, 128-130 binary, 127 Send and receive primitives, 553 Sensitive instruction, 569 Sensor node, 999 Sensor node operating system, 34 Separate instruction and data space, 219 Separation of policy and mechanism, 231-232 Sequential access, 260 Sequential consistency, 562-563, 592 Sequential process, 82 Serial ATA disk, 359 Server, 65 Server operating system, 32 Server stub, 557 Session, CD-ROM, 370 Session semantics, 593 Set-top box, 468 SETUID bit, 800 SHA-I (see Secure Hash Algorithm-1) SHA-256 (see Secure Hash Algorithm-256) SHA-512 (see Secure Hash Algorithm-512) Shadow page table, 575 Shared fde, 281-283 Shared hosting, 67 Shared library, 221-223 Shared lock, 780 Shared-memory multiprocessor, 524-546 Shared page, 219-221 Shared text segment, 756 Shell, 36, 1,42-44,727-730 Shell script, 730 Shellcode, 662 Short name, Vista, 906 Shortest-job-first scheduling, 151-152 Shortest-process-next, 156 Shortest-remaining-time-next scheduling, 152 Shortest-seek-first algorithm, 378 SID (see Security Identifier) Side-by-side versions, Vista, 856 Side-channel, 651 Signal, 737 Signals, in multithreaded code, 114 Signature block, 618 Simple security property, 633 Single-indirect block, 320,791 Single-interleaved disk, 376 Single large expensive disk, 361 Single-level directory system, 266 Skeleton, 594 SLED (see Single Large Expensive Disk) Sleep and wakeup, 125-126 Small computer system interface, 30 1065 Smart card, 649-651 Smart card operating system, 35 Smart scheduling, 542 SMP (see Symmetric Multiprocessor) Snooping, 531 Socket, 769, 864 Symbian, 936-937 Soft fault, Vista, 877,885 Soft real time, 158 Soft real-time operating system, 34-35 Soft timer, 391-392 Sony rootkit, 689-690 Source code virus, 677-678 Space sharing,543 Space-time trade-offs, 984-987 Sparse file Vista, 908 Special file, 41 Special file, Linux, 768 Spin lock, 120,537 Spinning vs switching, 539-540 Spooler directory, 117-118 Spooling, 11,357 Spooling directory, 357 Spyware, 682-686 actions taken, 685-686 Square-wave mode, 387 Stable storage, 383-386 Stack pointer, 18 Stack segment, 53-54 Standard error, 729 Standard input, 729 Standard output, 729 Standard UNIX, 720-721 Standby list, Vista, 878 Standby mode, Vista, 902 Star property, 633 Starvation, 163,459 Stateful firewall, 693 Stateful server, 798 Stateless firewall, 692Stateless server, 795 Static disk scheduling, multimedia, 511-513 Static relocation, 177 Static vs dynamic structures, 975-976 Steganography, 637-639 Storage allocation, Vista, 908-911 1066 INDEX Store-and-forward packet switching, 548 Stored value card, 649 Strict alternation, 121-122 Striping, disk, 362 Structure, operating system, 967-971 Stub, 557, 558, 594 Subject, 623 Superblock, 272,785 Linux, 786 Superfetch, Vista, 882 Superscalar CPU, 18-19 Superuser, 37, 800 Supervisor mode, Svchost.exe, 857 SVID (see System V Interface Definition) SVM (see Secure Virtual Machine) Swap area, 765 Swapper process, 764 Swappiness, 766 Swapping, 179-182 Symbian, 925-100 history, 926-928 overview, 928-933 Symbian active object, 935-936 Symbian application engine, 926 Symbian communication, 933, 949-953 Symbian device driver, 941-942 Symbian DMA, 942-943 Symbian features, 932-933 Symbian file system, 932,944-949 Symbian handle, 929 Symbian history, 926-93 Symbian input/output, 941-944 Symbian kernel layer, 931 Symbian memory management, 933, 937-941 Symbian microkernel, 930 Symbian modules, 951-952 Symbian multimedia, 933 Symbian nanokernel, 931 Symbian nanothread, 934-935 Symbian networking, 932 Symbian object orientation, 929-930 Symbian process, 932,933-937 Symbian security, 946-949 Symbian thread, 934-935 Symbolic link.^pL.281 INDEX Symmetric-key cryptography, 615-616 Symmetric multiprocessor, 534-536 Synchronization, 128 barrier, 144-145 Vista, 865-867 Synchronization event, 866 Synchronization object, 837 Synchronized method, java, 137 Synchronous call, 553-556 Synchronous input/output, 342 System access control list, 916 System availability, 612 System call, 19 directory management, 55-57 file management, 54 Linux file system, 781-784 Linux input/output, 771-775 Linux memory management, 757-758 Linux process management, 737-741 Linux security, 801-802 miscellaneous, 56-57 process management, 50-54 Vista input/output, 894-896 Vista memory management, 880-881 Vista process management, 865-867 Vista security, 917-918 System call interface, 964-966 System calls, 47-59 System on a chip, 532 System process, Vista, 862 System structure, 967-971 System V, 12 System V interface definition, 720 T Tagged architecture, 626 Tape, 25 Task, Linux, 742 TCB (see Trusted Computing Base) TCP (see Transmission Control Protocol) TCP/IP, 720 Team structure, 991-993 TEB (see Thread Environment Block) Template, Linda, 597 Temporal masking, 484 Termcap, 398 Terminal, 392 Text segment, 53-54,754 Text window, 398 Thermal management, 421 Thin client, 413-415 THINC (see THIN Client) Third generation computer, 10-13 Thompson, Ken, 12 Thrashing, 207 Thread environment block Vista, 858 Thread local storage, Vista, 858 Thread model, classical, 100-104 Thread scheduling, 160 Thread usage, 93-10 Threads, 93-11 hybrid implementation, 110-111 kernel space implementation, 109-110 Linux, 744-748 POSIX, 104-106 Symbian, 934-935 user space implementation, 106-109 Vista, 860-875 Threat, 6II-6I2 Throughput, 149 Tightly coupled system, 523 Time bomb, 655 Time-space tradeoffs, 984-987 Timer, 386-392 Timesharing, 11-13 multiprocessor, 541-543 TLB (see Translation Lookaside Buffer) Token, 824 Top-Down implementation, 976-977 TPM (see Trusted Platform Module) Transactional memory, 859 Transfer model, 589-590 remote access model, 589-590 upload/download model, 589 Translation lookaside buffer, 193-195, 194 195-196, 881 hard miss, 196 soft miss, 196 Translation table base register, 939 1067 Transmission control protocol, 586, 770 Transparency location, 591-592 naming, 591-592 Trap, 19-20,655 Trap door, 655 TRAP instruction, 49-50 Trends in operating system design, 994-999 distributed systems, 997 embedded systems, 998 large address spaces, 996 mobile devices, 998 multicore chips, 995-100 multimedia, 997 networking, 996-997 parallel systems, 997 sensors, 999 virtualization, 995 Triple-indirect block, 320, 791 Trojan horse, 668-670 Trusted computing base, 629-630 Trusted platform module, 619 Trusted system, 628-629 TSL instruction, 124-125 TSY module, Symbian, 952 TTBR (see Translation Table Base Register) Tuple, 596-597 Tuple space, 596-597 Turnaround time, 149 Two-level scheduling, 543 Two-Phase locking, 455-456 Type hypervisor, 568, 569-570 Type hypervisor, 568, 570-571 u UAC (see User Account Control) UDF (see Universal Disk Format) UDP (see User Datagram Protocol) UID (see User ID) UMA multiprocessor bus-based, 524-525 crossbar switched, 525-527 with multistage switching, 527-529 1068 INDEX UMA multiprocessor (see Uniform Memory Access multiprocessor) UMDF (see User-Mode Driver Framework) Unbuffered input/output, Vista, 891 Undefined external, 221 Unicode, 820 UNICS.716-717,721 FONT Uniform memory access multiprocessor 524-529 Uniform naming, 341 Uniform resource locator, 588-589 Universal coordinated time, 387 Universal disk format, 274 Universal serial bus, 30 UNIX, 16 (see also Linux) Berkeley, 719-720 history, 717-721 PDP-11, 717-718 portable, 718-719 standard, 720-721 UNIX Password Security, 645-646 UNIX V7 File system, 319 Unsafe state, 448-449 Upcall, 110 Upload/download model, 589-590 URL (see Uniform Resource Locator) USB (see Universal Serial Bus) User account control, 919 User datagram protocol, 770 User-friendly system, 14 User ID, 37 Linux, 799 User interface paradigms, 961 User mode, User-mode driver framework, 897 User shared data, Vista, 858 UTC (see Universal Coordinated Time) V V-node, 288,797 V-node, NFS, 796 V operation, 126 INDEX VAD (see Virtual Address Descriptor) Vampire tap, 581 VCR Control Functions, 492 VFS (see Virtual File System) Video compression, 476-482 Video decoding, 476 Video encoding, 471-474,476-482 Video on demand, 466 Video RAM, 404 Video server, 467 Virtual address, 187-190 Virtual address allocation, Vista, 877 Virtual address descriptor, 881 Virtual address space, 187-190 Linux, 763-764 Virtual appliance, 577 Virtual disk, 571 Virtual file system, 286 Linux, 784-785 Virtual kernel mode, 569 Virtual machine, 568,65-69 rediscovery, 67-69 Virtual machine interface, 573 Virtual machine monitor, 66-68, 568 Virtual memory, 24-25,47, 180,186-245 design issues, 214-225 MULTICS, 236-240 page replacement algorithms, 199-214 paging, 187-190 Pentium, 240-245 Virtual memory interface, 224-225 Virtualization, 566-578,995 input/output, 576-577 licensing issues, 578 memory, 574-575 requirements, 568-569 Virtualization technology, 569 Virus, 670 boot sector, 675-676 cavity, 674 companion, 671 device driver, 676-677 executable program, 672-674 macro, 677 memory resident, 674-675 operation of, 671 Virus (continued) overwriting, 672 parasitic, 673 polymorphic, 696 source code, 677-678 Virus avoidance, 698-699 Virus dropper, 671 Virus pay load, 671 Virus scanner, 693-697 Vista, 3,809-922 history, 814-815 Vista access control list, 824 Vista access token, 915 Vista access violation, 884 Vista afUnitized thread, 85S Vista alternate data stream, 908 Vista and large memories, 879-880 Vista API call AddAccessAllowedAce, 917 AddAccessDeniedAce, 918 CreateDirectory, 59 CreateFile, 823,853,917 CreateFileMapping, 881 CreateProcess, 58,86, 817, 862, 867, 868 869,917,965 CreateSemaphore, 847,865 DeleteAce, 918 DupIicateHandle, 865 EnterCriticalSection, 866,989 ExceptPortHandle, 819 ExitProcess, 58, 86 FlushFileBuffers, 307 GetFileAttributesEx, 59 GetLocalTime, 59 GetTokenlnformation, 915 InitiaiizeAcI,917 InitializeSecurityDescriptor, 917 loCallDriver, 897,898 IoCompleteRequest, 897,911 lopParseDevice, 851,852 LeaveCriticalSection, 866 Lookup AccountSid, 917 NtAllocateVirtualMemory, 820 NtCancelloFile, 896 NtClose, 849, 850 NtCreateFile, 820, 849, 851, 895, 896 1069 NtCreateProcess, 817, 819, 849,863 NtCreateThread, 820, 863 NtCreateUserProcess, 868, 869 NtDeviceloControIFile, 896 NtDuplicateObject, 820 NtFlushBuffersFile, 896 NtFsControlFile, 896,913 NtLockFile, 896 NtMapViewOfSection, 820 NtNotifyChangeDirectoryFile, 896,913 NtQueryDirectoryFile, 895 NtQuerylnformationFile, 896 NtQueryVolumelnformationFile, 895 NtReadFile, 895 NeReadVirtualMemory, 820 NtResumeThread, 869 NtSetlnformationFile, 896 NtSetVolumelnformationFile, 895 NtUnlockFile, 896 NtWriteFile, 895 NtWriteVirtualMemory, 820 ObCreateObjeefType, 853 ObOpenObjectByName, 851 OpenSemaphore, 847 ProcHandle, 820 PulseEvent, 866 QueueUserAPC, 836 ReadFile,911 ReleaseMutex, 866 Releases emaphore, 865 RemoveDirectory, 59 ResetEvent, 866 SectionHandle, 819 SetCurrentDirectory, 59 SetEvent, 866 SetFilePointer, 59 SetPriorityCIass, 871 SetSecurityDescriptorDacl, 918 SetThreadPriority, 871 SwitchToFiber, 860 ' TerminateProcess, 87 ValidDataLength, 891 WaitForMuItipIeObjects, 837,844,865, 922 WaitForSingleObject, 58, 865,866 Vista application verifier, 848 Vista balance set manager, 887 INDEX 1070 Vista bandwidth reservation, 894 Vista bank switching, 879 Vista base priority, 871 Vista base record, 904 Vista boot drivers, 843 Vista cache manager, 840 Vista class driver, 843 Vista committed page, 877 Vista configuration manager, 840 Vista context data structure, 861 Vista current priority, 871 Vista default data stream, 908 Vista device driver, 897-898 Vista device drivers, 841-843 Vista device object, 841 Vista device stack, 841,900-902 Vista discretionary acl, 915 Vista driver object, 893 Vista driver verifier, 897 Vista dynamic disk, 893 Vista executive, 832 Vista executive layer, 837-841 Vista file compression, 912-913 Vista file encryption, 913-914 Vista file system, 902-914 Vista file system structure, 904-908 Vista filter, 841 Vista filter driver, 900 Vista handle, 846-848 Vista hard fault, 885 Vista hibernation, 901 Vista hive, 825 Vista ideal processor, 872 Vista immediate file, 908 Vista impersonation, 916 Vista import address table, 855 Vista input/output API calls, 894 Vista input/output completion port, 896 Vista input/output manager, 838 Vista interprocess communication, 864-865 Vista invalid page, 877 Vista jobs and fibers, 859-860 Vista journaling, 913 Vista kernel -828r832-834" • Vista key, 844 Vista mapped page writer, 889 ; Vista master file table, 904 Vista memory manager, 840 Vista memory pressure, 887 Vista mini-port, 843 Vista modified page writer, 889 Vista nonresident attribute, 906 Vista object manager, 838 Vista object name space, 848-854 Vista page fault handling, 882-886 Vista page frame number database, 887 Vista page replacement algorithm, 886-887 Vista pagefile, 877-879 Vista physical memory management, 887-890 Vista power manager, 901 Vista process, 857-875, 858-859 Vista process API calls, 862-867 Vista process environment block, 858 Vista process manager, 839 Vista readyboost, 892 Vista readyboot, 892 Vista recovery console, 844 Vista reparse points, 904,911 Vista restricted token, 859 Vista safe-boot, 843 Vista scheduling, 870-875 Vista security API calls, 917-918 Vista security descriptor, 916 Vista security reference monitor, 840 Vista self-map, 868, 885 Vista short name, 906 Vista side-by-side versions, 856 Vista soft fault, 877, 885 Vista sparse files, 908 Vista standby list, 878 Vista standby mode, 902 Vista storage allocation, 908-911 Vista structure, 827-857 Vista superfetch, 882 Vista synchronization, 865-867 Vista system process, 862 Vista thread environment block, 858 Vista thread local storage, 858 Vista threads, 860-875 : Vista unbuffered input/output, 891 Vista user shared data, 858 Vista virtual address allocation, 877 1071 INDEX Vista volume shadow copy, 893 Vista zeropage thread, 889 VM/370, 66-67 VMI (see Virtual Machine Interface) VMS, 15 VMware, 68, 570 Volume shadow copy, Vista, 893 Volume table of contents, 370 VT {see Virtualization Technology) VTOC (see Volume Table Of Contents) W WaitForMultipieObject, 837 Waitqueue, Linux, 751 VVakeup, 126 Wakeup-waiting bit, 126 WAN (see Wide Area Network) War dialer, 642 Watchdog timer, 390 Waveform coding, 482 WDF (see Windows Driver Foundation) WDM (see Windows Driver Model) Web browser, 588 Web page, 588 Web server, multithreaded, 95-97 When to schedule, 148-149 White-hat hacker, 640 Wide area network, 581 Wide striping, 508 Widgets, 400 Wild card, 624, 728 Win32 API, 57-59,812, 821-827 Window, 404 Window manager, 401 Windows 3.0,812 Windows 95,3,811 Windows 98, 3,811 Windows 2000,15, 3,813 Windows 2003, 814 Window_s^river^undation 892, —, Windows NT 4.0, 813 Windows NT API, 818-821 Windows on Windows, 821-822 Windows registry, 825 Windows server 2008, 809 Windows subsystem, 816 Windows Vista (see Vista) Windows XP, 15,3,813 Wireless communication, 420 WndProc, 407 Worker thread, 96 Working directory, 40, 268-269,777 Working set, 207 Working set algorithm, 207-211 Working set model, 208 Worm, 680-682 Wormhole routing, 549 Worst-fit algorithm, 185 WOW (see Windows on Windows) Write-through cache, 307 Wsclock,211 WSclock,2I3 WSClock algorithm, 211 X X (see X Window System) X client, 399 X intrinsics, 400 X resource, 402 X server, 399 X widget, 400 X window manager, 401 X window system, 5,16,398-402,722 -2 -2, 15 Xenix, 14 Xlib, 400 Winff6ws^nver^r3eTf^%^^^ Y Windows Me, 15, , 1 " " " Windows NT, 3,15 Yellow book, CD-ROM, 366-367 1072 Z Z/VM, 66 ZeroPage thread, Vista, 889 Zipf, George, 504 Zipfslaw, 504 Zombie, 612,666 Zombie state, 740 ZSeries, IBM, 11 , INDEX ... Computer Operating Systems 33 1.4.6 Embedded Operating Systems 33 1.4.7 Sensor Node Operating Systems 34 1.4.8 Real-Time Operating Systems 34 1.4.9 Smart Card Operating Systems 35 1.5 OPERATING. .. distributed shared memory, distributed file systems, and distributed real-time systems The principles are illustrated using four chapter-long examples: distributed object-based systems, distributed... distributed file systems, distributed Web-based systems, and distributed coordination-based systems PEARSON | PEARSON EDUCATION INTERNATIONAL If you purchased this book within the United States or

Ngày đăng: 27/03/2014, 21:32

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan