How does Fishpond Work?

Shop over 1.5 Million Toys in our Huge New Range

Modern Operating Systems

New or Used: $249.00
For Introductory Courses in Operating Systems in Computer Science, Computer Engineering, and Electrical Engineering programs. The widely anticipated revision of this worldwide best-seller incorporates the latest developments in operating systems (OS)technologies. The Third Edition includes up-to-date materials on relevant. OS such as Linux, Windows, and embedded real-time and multimedia systems. Tanenbaum also provides information on current research based on his experience as an operating systems researcher. Student Resources?Include:Online Exercises - Provide hands-on experience with building as well as analyzing the performance of OS. In particular, these exercises have been designed to provide experience with analyzing the resource consumptions in Windows and Linux. Simulation Exercises - Designed to provide experience with building some key components of an OS, including process scheduling, main memory allocation, paging algorithms and virtual memory, and file systems. Lab Experiments Please note, GOAL is no longer available with this book.Password-Protected Instructor Resources (Select the Resources Tab to View Downloadable Files):Power Point Lecture Slides Figures in both .jpeg and .eps file format Solutions to Exercises Please note, GOAL is no longer available with this book.Modern Operating Systems, 3e is the recipient of the Text and Authors Association (TAA) 2010 McGuffey Longevity Award. The McGuffey Longevity Award recognizes textbooks whose excellence has been demonstrated over time.
Product Details

Table of Contents

1 INTRODUCTION1.1 WHAT IS AN OPERATING SYSTEM?1.1.1 The Operating System as an Extended Machine1.1.2 The Operating System as a Resource Manager1.2 HISTORY OF OPERATING SYSTEMS1.2.1 The First Generation1.2.2 The Second Generation1.2.3 The Third Generation1.2.4 The Fourth Generation1.3 COMPUTER HARDWARE REVIEW1.3.1 Processors1.3.2 Memory1.3.3 Disks1.3.4 Tapes1.3.5 I/O Devices1.3.6 Buses1.3.7 Booting the Computer1.4 THE OPERATING SYSTEM ZOO1.4.1 Mainframe Operating Systems1.4.2 Server Operating Systems1.4.3 Multiprocessor Operating Systems1.4.4 Personal Computer Operating Systems1.4.5 Handheld Computer Operating Systems1.4.6 Embedded Operating Systems.1.4.7 Sensor Node Operating Systems1.4.8 Real-Time Operating Systems1.4.9 Smart Card Operating Systems1.5 OPERATING SYSTEM CONCEPTS1.5.1 Processes1.5.2 Address Spaces1.5.3 Files1.5.4 Input/Output1.5.5 Protection1.5.6 The Shell1.5.7 Ontogeny Recapitulates Phylogeny1.6 SYSTEM CALLS1.6.1 System Calls for Process Management1.6.2 System Calls for File Management1.6.3 System Calls for Directory Management1.6.4 Miscellaneous System Calls1.6.5 The Windows Win32 API1.7 OPERATING SYSTEM STRUCTURE1.7.1 Monolithic Systems1.7.2 Layered Systems1.7.3 Microkernels1.7.4 Client-Server Model1.7.5 Virtual Machines1.7.6 Exokernels1.8 THE WORLD ACCORDING TO C1.8.1 The C Language1.8.2 Header Files1.8.3 Large Programming Projects1.8.4 The Model of Run Time1.9 RESEARCH ON OPERATING SYSTEMS1.10 OUTLINE OF THE REST OF THIS BOOK1.11 METRIC UNITS1.12 SUMMARY 2 PROCESSES AND THREADS2.1 PROCESSES2.1.1 The Process Model2.1.2 Process Creation2.1.3 Process Termination2.1.4 Process Hierarchies2.1.5 Process States2.1.6 Implementation of Processes2.1.7 Modeling Multiprogramming2.2 THREADS2.2.1 Thread Usage2.2.2 The Classical Thread Model2.2.3 POSIX Threads2.2.4 Implementing Threads in User Space2.2.5 Implementing Threads in the Kernel2.2.6 Hybrid Implementations2.2.7 Scheduler Activations2.2.8 Pop-Up Threads2.2.9 Making Single-Threaded Code Multithreaded2.3 INTERPROCESS COMMUNICATION2.3.1 Race Conditions2.3.2 Critical Regions2.3.3 Mutual Exclusion with Busy Waiting2.3.4 Sleep and Wakeup2.3.5 Semaphores2.3.6 Mutexes2.3.7 Monitors2.3.8 Message Passing2.3.9 Barriers2.4 SCHEDULING2.4.1 Introduction to Scheduling2.4.2 Scheduling in Batch Systems2.4.3 Scheduling in Interactive Systems2.4.4 Scheduling in Real-Time Systems2.4.5 Policy versus Mechanism2.4.6 Thread Scheduling2.5 CLASSICAL IPC PROBLEMS2.5.1 The Dining Philosophers Problem2.5.2 The Readers and Writers Problem2.6 RESEARCH ON PROCESSES AND THREADS2.7 SUMMARY 3 MEMORY MANAGEMENT3.1 NO MEMORY ABSTRACTION3.2 A MEMORY ABSTRACTION: ADDRESS SPACES3.2.1 The Notion of an Address Space3.2.2 Swapping3.2.3 Managing Free Memory3.3 VIRTUAL MEMORY3.3.1 Paging3.3.2 Page Tables3.3.3 Speeding Up Paging3.3.4 Page Tables for Large Memories3.4 PAGE LACEMENT ALGORITHMS3.4.1 The Optimal Page Replacement Algorithm3.4.2 The Not Recently Used Page Replacement Algorithm3.4.3 The First-In, First-Out3.4.4 The Second Chance Page Replacement Algorithm3.4.5 The Clock Page Replacement Algorithm3.4.6 The Least Recently Used3.4.7 Simulating LRU in Software3.4.8 The Working Set Page Replacement Algorithm3.4.9 The WSClock Page Replacement Algorithm3.4.10 Summary of Page Replacement Algorithms3.5 DESIGN ISSUES FOR PAGING SYSTEMS3.5.1 Local versus Global Allocation Policies3.5.2 Load Control3.5.3 Page Size3.5.4 Separate Instruction and Data Spaces3.5.5 Shared Pages3.5.6 Shared Libraries3.5.7 Mapped Files3.5.8 Cleaning Policy3.5.9 Virtual Memory Interface3.6 IMPLEMENTATION ISSUES3.6.1 Operating System Involvement with Paging3.6.2 Page Fault Handling3.6.3 Instruction Backup3.6.4 Locking Pages in Memory3.6.5 Backing Store3.6.6 Separation of Policy and Mechanism3.7 SEGMENTATION3.7.1 Implementation of Pure Segmentation3.7.2 Segmentation with Paging: MULTICS3.7.3 Segmentation with Paging: The Intel Pentium3.8 RESEARCH ON MEMORY MANAGEMENT3.9 SUMMARY 4 FILE SYSTEMS4.1 FILES4.1.1 File Naming4.1.2 File Structure4.1.3 File Types4.1.4 File Access4.1.5 File Attributes4.1.6 File Operations4.1.7 An Example Program Using File System Calls4.2 DIRECTORIES4.2.1 Single-Level Directory Systems4.2.2 Hierarchical Directory Systems4.2.3 Path Names4.2.4 Directory Operations4.3 FILE SYSTEM IMPLEMENTATION4.3.1 File System Layout4.3.2 Implementing Files4.3.3 Implementing Directories4.3.4 Shared Files4.3.5 Log-Structured File Systems4.3.6 Journaling File Systems4.3.7 Virtual File Systems4.4 FILE SYSTEM MANAGEMENT AND OPTIMIZATION4.4.1 Disk Space Management4.4.2 File System Backups4.4.3 File System Consistency4.4.4 File System Performance4.4.5 Defragmenting Disks4.5 EXAMPLE FILE SYSTEMS4.5.1 CD-ROM File Systems4.5.2 The MS-DOS File System4.5.3 The UNIX V7 File System4.6 RESEARCH ON FILE SYSTEMS4.7 SUMMARY 5 INPUT/OUTPUT5.1 PRINCIPLES OF I/O HARDWARE5.1.1 I/O Devices5.1.2 Device Controllers5.1.3 Memory-Mapped I/O5.1.4 Direct Memory Access5.1.5 Interrupts Revisited5.2 PRINCIPLES OF I/O SOFTWARE5.2.1 Goals of the I/O Software5.2.2 Programmed I/O5.2.3 Interrupt-Driven I/O5.2.4 I/O Using DMA5.3 I/O SOFTWARE LAYERS5.3.1 Interrupt Handlers5.3.2 Device Drivers5.3.3 Device-Independent I/O Software5.3.4 User-Space I/O Software5.4 DISKS5.4.1 Disk Hardware5.4.2 Disk Formatting5.4.3 Disk Arm Scheduling Algorithms5.4.4 Error Handling5.4.5 Stable Storage5.5 CLOCKS5.5.1 Clock Hardware5.5.2 Clock Software5.5.3 Soft Timers5.6 USER INTERFACES: KEYBOARD, MOUSE, MONITOR5.6.1 Input Software5.6.2 Output Software5.7 THIN CLIENTS5.8 POWER MANAGEMENT5.8.1 Hardware Issues5.8.2 Operating System Issues:5.8.3 Application Program Issues5.9 RESEARCH ON INPUT/OUTPUT5.10 SUMMARY 6 DEADLOCKS6.1 RESOURCES6.1.1 Preemptable and Nonpreemptable Resources6.1.2 Resource Acquisition6.2 INTRODUCTION TO DEADLOCKS6.2.1 Conditions for Resource Deadlocks6.2.2 Deadlock Modeling6.3 THE OSTRICH ALGORITHM6.4 DEADLOCK DETECTION AND RECOVERY6.4.1 Deadlock Detection with One Resource of Each Type6.4.2 Deadlock Detection with Multiple Resources of Each Type6.4.3 Recovery from Deadlock6.5 DEADLOCK AVOIDANCE6.5.1 Resource Trajectories6.5.2 Safe and Unsafe States6.5.3 The Banker's Algorithm for a Single Resource6.5.4 The Banker's Algorithm for Multiple Resources6.6 DEADLOCK PREVENTION6.6.1 Attacking the Mutual Exclusion Condition6.6.2 Attacking the Hold and Wait Condition6.6.3 Attacking the No Preemption Condition6.6.4 Attacking the Circular Wait Condition6.7 OTHER ISSUES6.7.1 Two-Phase Locking6.7.2 Communication Deadlocks6.7.3 Livelock6.7.4 Starvation6.8 RESEARCH ON DEADLOCKS6.9 SUMMARY 7 MULTIMEDIA OPERATING SYSTEMS7.1 INTRODUCTION TO MULTIMEDIA7.2 MULTIMEDIA FILES7.2.1 Video Encoding7.2.2 Audio Encoding7.3 VIDEO COMPRESSION7.3.1 The JPEG Standard7.3.2 The MPEG Standard7.4 AUDIO COMPRESSION7.5 MULTIMEDIA PROCESS SCHEDULING7.5.1 Scheduling Homogeneous Processes7.5.2 General Real-Time Scheduling7.5.3 Rate Monotonic Scheduling7.5.4 Earliest Deadline First Scheduling7.6 MULTIMEDIA FILE SYSTEM PARADIGMS7.6.1 VCR Control Functions7.6.2 Near Video on Demand7.6.3 Near Video on Demand with VCR Functions7.7 FILE PLACEMENT7.7.1 Placing a File on a Single Disk7.7.2 Two Alternative File Organization Strategies7.7.3 Placing Files for Near Video on Demand7.7.4 Placing Multiple Files on a Single Disk7.7.5 Placing Files on Multiple Disks7.8 CACHING7.8.1 Block Caching7.8.2 File Caching7.9 DISK SCHEDULING FOR MULTIMEDIA7.9.1 Static Disk Scheduling7.9.2 Dynamic Disk Scheduling7.10 RESEARCH ON MULTIMEDIA7.11 SUMMARY 8 MULTIPLE PROCESSOR SYSTEMS8.1 MULTIPROCESSORS8.1.1 Multiprocessor Hardware8.1.2 Multiprocessor Operating System Types8.1.3 Multiprocessor Synchronization8.1.4 Multiprocessor Scheduling8.2 MULTICOMPUTERS8.2.1 Multicomputer Hardware8.2.2 Low-Level Communication Software8.2.3 User-Level Communication Software8.2.4 Remote Procedure Call8.2.5 Distributed Shared Memory8.2.6 Multicomputer Scheduling8.2.7 Load Balancing8.3 VIRTUALIZATION8.3.1 Requirements for Virtualization8.3.2 Type 1 Hypervisors8.3.3 Type 2 Hypervisors8.3.4 Paravirtualization8.3.5 Memory Virtualization8.3.6 I/O Virtualization8.3.7 Virtual Appliances8.3.8 Virtual Machines on Multicore CPUs8.3.9 Licensing Issues8.4 DISTRIBUTED SYSTEMS8.4.1 Network Hardware8.4.2 Network Services and Protocols8.4.3 Document-Based Middleware8.4.4 File System-Based Middleware8.4.5 Object-Based Middleware8.4.6 Coordination-Based Middleware8.5 RESEARCH ON MULTIPLE PROCESSOR SYSTEMS8.6 SUMMARY 9 SECURITY9.1 THE SECURITY ENVIRONMENT9.1.1 Threats9.1.2 Intruders9.1.3 Accidental Data Loss9.2 BASICS OF CRYPTOGRAPHY9.2.1 Secret-Key Cryptography9.2.2 Public-Key Cryptography9.2.3 One-Way Functions9.2.4 Digital Signatures9.2.5 Trusted Platform Module9.3 PROTECTION MECHANISMS9.3.1 Protection Domains9.3.2 Access Control Lists9.3.3 Capabilities9.3.4 Trusted systems9.3.5 Trusted Computing Base9.3.6 Formal Models of Secure Systems9.3.7 Multilevel Security9.3.8 Covert Channels9.4 AUTHENTICATION9.4.1 Authentication Using Passwords9.4.2 Authentication Using a Physical Object9.4.3 Authentication Using Biometrics9.5 INSIDER ATTACKS9.5.1 Logic Bombs9.5.2 Trap Doors9.5.3 Login Spoofing9.6 EXPLOITING CODE BUGS9.6.1 Buffer Overflow Attacks9.6.2 Format String Attacks9.6.3 Return to libc Attacks9.6.4 Integer Overflow Attacks9.6.5 Code Injection Attacks9.6.6 Privilege Escalation Attacks9.7 MALWARE9.7.1 Trojan Horses9.7.2 Viruses9.7.3 Worms9.7.4 Spyware9.7.5 Rootkits9.8 DEFENSES9.8.1 Firewalls9.8.2 Antivirus and Anti-Antivirus Techniques9.8.3 Code Signing9.8.4 Jailing9.8.5 Model-Based Intrusion Detection9.8.6 Encapsulating Mobile Code9.8.7 Java Security9.9 RESEARCH ON SECURITY9.10 SUMMARY 10 OPERATING SYSTEMS DESIGN10.1 THE NATURE OF THE DESIGN PROBLEM10.1.1 Goals10.1.2 Why is it Hard to Design an Operating System?10.2 INTERFACE DESIGN10.2.1 Guiding Principles10.2.2 Paradigms10.2.3 The System Call Interface10.3 IMPLEMENTATION10.3.1 System Structure10.3.2 Mechanism versus Policy10.3.3 Orthogonality10.3.4 Naming10.3.5 Binding Time10.3.6 Static versus Dynamic Structures10.3.7 Top-Down versus Bottom-Up Implementation10.3.8 Useful Techniques10.4 PERFORMANCE10.4.1 Why Are Operating Systems Slow?10.4.2 What Should Be Optimized?10.4.3 Space-Time Trade-offs10.4.4 Caching10.4.5 Hints10.4.6 Exploiting Locality10.4.7 Optimize the Common Case10.5 PROJECT MANAGEMENT10.5.1 The Mythical Man Month10.5.2 Team Structure10.5.3 The Role of Experience10.5.4 No Silver Bullet10.6 TRENDS IN OPERATING SYSTEM DESIGN10.6.1 Virtualization10.6.2 Multicore Chips10.6.3 Large Address Space Operating Systems10.6.4 Networking10.6.5 Parallel and Distributed Systems10.6.6 Multimedia10.6.7 Battery-Powered Computers10.6.8 Embedded Systems10.6.9 Sensor Nodes10.7 SUMMARY 11 CASE STUDY 1: LINUX11.1 HISTORY OF UNIX AND LINUX11.1.1 UNICS11.1.2 PDP-11 UNIX11.1.3 Portable UNIX11.1.4 Berkeley UNIX11.1.5 Standard UNIX11.1.6 MINIX11.1.7 Linux11.2 OVERVIEW OF LINUX11.2.1 Linux Goals11.2.2 Interfaces to Linux11.2.3 The Shell11.2.4 Linux Utility Programs11.2.5 Kernel Structure11.3 PROCESSES IN LINUX11.3.1 Fundamental Concepts11.3.2 Process Management System Calls in Linux11.3.3 Implementation of Processes and Threads in Linux11.3.4 Scheduling in Linux11.3.5 Booting Linux11.4 MEMORY MANAGEMENT IN LINUX11.4.1 Fundamental Concepts11.4.2 Memory Management System Calls in Linux11.4.3 Implementation of Memory Management in Linux11.4.4 Paging in Linux11.5 INPUT/OUTPUT IN LINUX11.5.1 Fundamental Concepts11.5.2 Networking11.5.3 Input/Output System Calls in Linux11.5.4 Implementation of Input/Output in Linux11.5.5 Modules in Linux11.6 THE LINUX FILE SYSTEM11.6.1 Fundamental Concepts11.6.2 File System Calls in Linux11.6.3 Implementation of the Linux File System11.6.4 NFS: The Network File System11.7 SECURITY IN LINUX11.7.1 Fundamental Concepts11.7.2 Security System Calls in Linux11.7.3 Implementation of Security in Linux11.8 SUMMARY 12 CASE STUDY 2: WINDOWS VISTA12.1 HISTORY OF WINDOWS VISTA12.1.1 1980s: MS-DOS12.1.2 1990s: MS-DOS-based Windows12.1.3 2000s: NT-based Windows12.1.4 Windows Vista12.2 PROGRAMMING WINDOWS VISTA12.2.1 The Native NT Application Programming Interface12.2.2 The Win32 Application Programming Interface12.2.3 The Windows Registry12.3 SYSTEM STRUCTURE12.3.1 Operating System Structure12.3.2 Booting Windows Vista12.3.3 Implementation of the Object Manager12.3.4 Subsystems, DLLs, and User-mode Services12.4 PROCESSES AND THREADS IN WINDOWS VISTA12.4.1 Fundamental Concepts12.4.2 Job, Process, Thread and Fiber Management API Calls12.4.3 Implementation of Processes and Threads12.5 MEMORY MANAGEMENT12.5.1 Fundamental Concepts12.5.2 Memory Management System Calls12.5.3 Implementation of Memory Management12.6 CACHING IN WINDOWS VISTA12.7 INPUT/OUTPUT IN WINDOWS VISTA12.7.1 Fundamental Concepts12.7.2 Input/Output API Calls12.7.3 Implementation of I/O12.8 THE WINDOWS NT FILE SYSTEM12.8.1 Fundamental Concepts12.8.2 Implementation of the NT File System12.9 SECURITY IN WINDOWS VISTA12.9.1 Fundamental Concepts12.9.2 Security API Calls12.9.3 Implementation of Security12.10 SUMMARY 13 READING LIST AND BIBLIOGRAPHY13.1 SUGGESTIONS FOR FURTHER READING13.1.1 Introduction and General Works13.1.2 Processes and Threads13.1.3 Memory Management13.1.4 Input/Output13.1.5 File Systems13.1.6 eadlocks13.1.7 Multimedia Operating Systems13.1.8 Multiple Processor Systems13.1.9 ecurity13.1.10 Linux13.1.11 Windows Vista13.1.12 The Symbian OS13.1.13 Design Principles13.2 ALPHABETICAL BIBLIOGRAPHY INDEX

How Fishpond Works
Fishpond works with suppliers all over the world to bring you a huge selection of products, really great prices, and delivery included on over 25 million products that we sell. We do our best every day to make Fishpond an awesome place for customers to shop and get what they want — all at the best prices online.
Webmasters, Bloggers & Website Owners
You can earn a 5% commission by selling Modern Operating Systems: Pearson New International Edition on your website. It's easy to get started - we will give you example code. After you're set-up, your website can earn you money while you work, play or even sleep! You should start right now!
Authors / Publishers
Are you the Author or Publisher of a book? Or the manufacturer of one of the millions of products that we sell. You can improve sales and grow your revenue by submitting additional information on this title. The better the information we have about a product, the more we will sell!
Item ships from and is sold by, Inc.
Back to top