Operating Systems 3rd Edition Deitel Solutions Manual
Product details:
- ISBN-10 : 0131828274
- ISBN-13 : 978-0131828278
- Author: Deitel, Harvey M., Deitel, Paul J., Choffnes, David R
The third edition of Operating Systems has been entirely updated to reflect current core operating system concepts and design considerations. To complement the discussion of operating system concepts, the book features two in-depth case studies on Linux and Windows XP. The case studies follow the outline of the book, so readers working through the chapter material can refer to each case study to see how a particular topic is handled in either Linux or Windows XP. Using Java code to illustrate key points, Operating Systems introduces processes, concurrent programming, deadlock and indefinite postponement, mutual exclusion, physical and virtual memory, file systems, disk performance, distributed systems, security and more. New to this edition are a chapter on multithreading and extensive treatments of distributed computing, multiprocessing, performance, and computer security. An ideal up-to-date book for beginner operating systems readers.
Table contents:
- Introduction
- Where does an operating system fit in?
- System levels
- What does an operating system do?
- Hardware Resources
- Resource Management
- Virtual Computers
- A Virtual Computer
- Virtual Processor
- Virtual Primary Memory
- Virtual Secondary Memory
- Virtual I/O
- Do We Need an Operating System?
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- Where does an operating system fit in?
- The Hardware Interface
- The CPU
- General purpose registers
- Control Registers
- Processor Modes
- Instruction Set
- Machine instructions in C++ code
- Memory and Addressing
- Interrupts
- I/O Devices
- Disk controller
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- The CPU
- The Operating System Interface
- What Are System Calls?
- How to make a system call
- What is a system call interface?
- An Example System Call Interface
- System Call Overview
- Hierarchical File Naming Systems
- File and I/O System Calls
- Open Files
- Examples of File I/O
- Information and Meta-Information
- Naming Operating System Objects
- Devices as Files
- Unification of the File and Device Concepts
- The Process Concept
- Processes and Programs
- Process Management System Calls
- Process Hierarchy
- Communication Between Processes
- Communications Related System Calls
- Example of Interprocess Communication
- UNIX-style Process Creation
- Standard Input and Standard Output
- Communicating with Pipes
- Naming of Pipes and Message Queues
- Summary of System Call Interfaces
- Operating System Examples
- UNIX
- Mach
- MS/DOS
- Windows NT
- OS/2
- Macintosh OS
- *** The User Interface to an Operating System
- Why you need a shell
- The specification of the shell
- Implementing the shell
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- What Are System Calls?
- Design Techniques I
- Operating Systems and Design
- The Design Process
- Relationship to Software Engineering
- A Design Example
- Learning design through operating systems
- Design Problems
- Design skills
- Design space
- Design levels
- Design Techniques
- Two Level Implementation
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Related Design Techniques
- Interface Design
- Overview
- Motivation
- Applicability
- Consequences
- Related Design Techniques
- Connection in Protocols
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Related Design Techniques
- Interactive and Programming Interfaces
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Related Design Techniques
- Decomposition Patterns
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Related Design Techniques
- Summary
- Terminology
- Review Questions
- Problems
- Operating Systems and Design
- Implementing Processes
- The System Call Interface
- Implementation of a Simple Operating System
- Guide to the code
- The Architecture
- System Constants
- Global Data
- Implementation of Processes
- Process Creation
- Process States
- Process Dispatching
- The System Stack
- Timer Interrupts
- System Initialization
- The Initial Process
- Process Switching
- Switching Between Processes
- Flow of control
- System Call Interrupt Handling
- Copying Messages Between Address Spaces
- Program Error Interrupts
- Disk Driver Subsystem
- Communicating With the Disk Controller
- Implementation of Waiting
- Waiting For Messages
- Waiting Inside a System Call
- Suspending System Calls
- Flow of Control Through the Operating System
- Signaling in an Operating System
- Interrupts in the Operating System
- Operating Systems as Event and Table Managers
- Process Implementation
- The Process Table and Process Descriptors
- Examples of Process Implementation
- *** Monoprogramming
- Batch Systems
- Multiprogramming and I/O Overlap
- Personal Computer Systems
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- Parallel Systems
- Parallel Hardware
- An Operating System for a Two Processor System
- Using Two Separate Operating Systems
- Sharing the Operating System
- Race Conditions With a Shared Process Table
- Atomic Actions
- Hardware implementation of atomic actions
- A Multiprocessor Operating System
- The current process variable
- Dispatching With a Shared Process Table
- Busy Waiting
- Handling the Queues
- Grouping of Shared Variables
- A General Solution
- Using Two Process Tables
- Examples of Multiprocessor Operating Systems
- Threads
- The Thread Concept
- Thread System Calls
- Advantages of Threads
- Uses of Threads
- *** Thread Implementation
- Splitting the Process Concept
- Lightweight Processes and User Threads
- Examples of Threads
- *** Kernel-mode Processes
- Data structures for kernel-mode processes
- Process creation with kernel-mode processes
- Interrupt handlers for kernel-mode processes
- Switching processes for kernel-mode processes
- How the system stack is used
- Waiting with kernel-mode processes
- Dispatching with kernel-mode processes
- Kernel-mode only processes
- Trade-offs of kernel-mode processes
- Examples of kernel-mode processes
- Implementation of Mutual Exclusion
- First Solution: Disabling Interrupts
- Second Solution: Using ExchangeWord
- Third Solution: Software Solutions
- When To Use Each Solution
- Examples of implementing mutual exclusion
- *** Varieties of Computer Models
- Multiprogramming
- Multiprocessing
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- Interprocess Communication Patterns
- Using Interprocess Communication
- Patterns of Interprocess Communication
- Competing and Cooperating
- Problems When Processes Compete
- Race Conditions and Atomic Actions
- New Message Passing System Calls
- IPC Pattern: Mutual Exclusion
- N Process Mutual Exclusion
- Voluntary Cooperation in Mutual Exclusion
- IPC Pattern: Signaling
- IPC Pattern: Rendezvous
- Many Process Rendezvous
- IPC Pattern: Producer-Consumer
- The Basic Producer-Consumer Pattern
- Limiting the Number of Buffers Used
- Multiple Producers and Consumers
- IPC Pattern: Client-Server
- *** IPC Pattern: Multiple Servers and Clients
- IPC Pattern: Database Access and Update
- Scheduling
- Priority
- Scheduling queues
- Review of Interprocess Communication Patterns
- Mutual Exclusion
- Signaling
- Rendezvous
- Producer-Consumer
- Client-Server
- Multiple Servers and Clients
- Database Access and Update
- A Physical Analogy
- Failure of Processes
- Recovery from failure
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- Processes
- Everyday Scheduling
- First-come, First-served Scheduling
- Shortest Job First Scheduling
- Highest Response Ratio Next Scheduling
- Priority Scheduling
- Deadline Scheduling
- Round-robin Scheduling
- Summary
- Preemptive Scheduling Methods
- Scheduling Overview
- Round-robin Scheduling
- Heavily Loaded Systems
- Two Queues
- Multiple Queues
- Policy versus Mechanism in Scheduling
- A Scheduling Example
- Scheduling in Real Operating Systems
- Scheduling in UNIX SVR4
- Scheduling in Solaris
- Scheduling in OS/2 2.0
- Scheduling in Windows NT 3.51
- Scheduling in Other Operating Systems
- Deadlock
- Why Deadlock is a Problem
- Conditions for Deadlock to Occur
- How To Deal With Deadlock
- Deadlock Prevention
- Deadlock Avoidance
- Deadlock Recovery
- A Sequence of Approaches to the Deadlock Problem
- Two Phase Locking
- Starvation
- Message Passing Variations
- Using PIDs as message addresses
- Message Passing With Nonblocking Receives
- Message Passing With Blocking Sends
- Remote procedure calls
- Synchronization
- Definition of Synchronization
- Review of Synchronization
- Separating Data Transfer and Synchronization
- Semaphores
- Specification of Semaphore Operations
- Implementation of Semaphores
- An Analogy
- Mutual Exclusion with Semaphores
- Rendezvous with Semaphores
- Producer-Consumer (one buffer) with Semaphores
- Counting Semaphores
- Producer-Consumer (N buffers) with Semaphores
- Semaphores and Messages
- *** Implementing Semaphores
- System Constants
- Using Semaphores in the Simple Operating System
- Programming Language Based Synchronization Primitives
- Monitors
- Synchronization Primitives in Ada 95
- Message Passing Design Issues
- Copying Messages
- Longer Messages
- IPC in Mach
- Tasks and Threads
- Ports and Messages
- Objects
- IPC and Synchronization Examples
- Signals
- SVR4 UNIX
- Windows NT
- OS/2
- Solaris
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- Everyday Scheduling
- Design Techniques II
- Indirection
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Discussion
- Applicability
- Consequences
- Using State Machines
- Overview
- Operating System Example
- Computer Science Example
- Applicability
- Consequences
- Implementation Issues and Variations
- Win Big Then Give Some Back
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Separation of Concepts
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Related Design Techniques
- Reducing a Problem to a Special Case
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Reentrant Programs
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Related Design Techniques
- Using Models for Inspiration
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Adding a New Facility To a System
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Related Design Techniques
- Summary
- Terminology
- Review Questions
- Problems
- Indirection
- Memory Management
- Levels of Memory Management
- Linking and Loading a Process
- Creating a load module
- Loading a load module
- Allocating Memory in a Running Process
- Variations in Program Loading
- Load Time Dynamic Linking
- Run Time Dynamic Linking
- Why Use Dynamic Memory Allocation?
- *** The Memory Management Design Problem
- *** Solutions to the Memory Management Design Problem
- Static division into a fixed number of blocks
- Buddy Systems
- Powers of two allocation
- *** Dynamic Memory Allocation
- *** Keeping Track of the Blocks
- The List Method
- Keeping allocated blocks on the block list
- Where is the block list kept?
- Using Block Headers as Free List Nodes
- The Bitmap Method
- Comparing free list methods
- *** Which Free Block To Allocate?
- Examples of Dynamic Memory Allocation
- Logical and Physical Memory
- Allocating Memory to Processes
- Static Memory Management
- Handling Variable Sized Processes
- Multiprogramming Issues
- Memory Protection
- Memory Management System Calls
- Static Allocation of Memory to Processes
- Dynamic Allocation of Memory to Processes
- What about {\ptt new} and {\ptt malloc}?
- Freeing Memory At Each Level
- A Different Memory Management System Call
- *** Example Code for Memory Allocation
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- Virtual Memory
- *** Fragmentation and Compaction
- Dealing with Fragmentation
- Separate Code and Data Spaces
- Segments
- Noncontiguous Logical Address Spaces
- Page tables in hardware registers
- Page tables in memory
- Using a page table cache
- Analysis Models of Paging with Caching
- Memory Allocation with Paging
- Terminology: Page and Page Frame
- Page Tables
- Paging Summary
- *** Memory Allocation Code With Pages
- *** Sharing the Processor and Sharing Memory
- *** Swapping
- Efficient Resource Use and User Needs
- *** Overlays
- Overlays in PCs
- Implementing Virtual Memory
- Hardware Required to Support Virtual Memory
- Software Required to Support Virtual Memory
- What is the cost of virtual memory?
- Paging More Than One Process
- Locality
- Virtual Memory Management
- Daemons and Events
- File Mapping
- The System Call Interface
- An Example of Using File Mapping
- Advantages of File Mapping
- Memory and File Mapping on the IBM 801
- File Mapping Examples
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- Virtual Memory Systems
- Page Replacement
- Global Page Replacement Algorithms
- Measuring the Performance of a Page Replacement Algorithm
- Optimal Page Replacement
- Theories of Program Paging Behavior
- Random Page Replacement
- FIFO Page Replacement
- Least Recently Used Page Replacement
- Approximations of LRU
- Clock Algorithms
- Page Replacement Examples
- Local Page Replacement Algorithms
- Models of Program Behavior
- Local page replacement
- The development of program models
- What is a working set?
- Program Phases
- Variable Resident Set Sizes
- The working set paging algorithm
- Approximating the Working Set
- WSClock paging algorithm
- *** Evaluating Paging Algorithms
- Methodology for Paging Simulation
- Some Page Simulation Results
- Thrashing and Load Control
- How Thrashing Occurs
- Load control
- Swapping
- Scheduling and Swapping
- Load control and paging algorithms
- Predictive Load Control
- Preloading of pages
- Dealing with Large Page Tables
- What is the Problem?
- Two Level Paging
- Benefits of two level paging
- Problems with two level paging
- Software Page Table Lookups
- *** Recursive Address Spaces
- Paging the operating system address space
- Locking pages in memory
- *** Page Size
- Reasons for a large page size
- Reasons for a small page size
- Clustering pages
- Segmentation
- What is a segment?
- Virtual Memory with Segmentation
- Segmentation with Paging
- History of Segmentation
- Segment Terminology
- Sharing Memory
- Reasons for Sharing Memory
- Shared Memory System Calls
- Examples of Virtual Memory Systems
- Swap Area
- Page Initialization
- Page Sharing
- Double Handed Clock Algorithm
- Standby Page Lists
- Clustering Pages
- File Mapping
- Portable Virtual Memory Systems
- Sparse Address Space
- OS/2 Version 2.0
- Windows NT
- Mach and OSF/1
- System V Release 4
- Other Systems
- Very Large Address Spaces
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- Design Techniques III
- Multiplexing
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Late binding
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Related Design Techniques
- Static Versus Dynamic
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Related Design Techniques
- Space-Time Tradeoffs
- Overview
- Motivation
- Computer Science Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Related Design Techniques
- Simple Analytic Models
- Overview
- Motivation
- Operating System Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Summary
- Terminology
- Review Questions
- Problems
- Multiplexing
- I/O Devices
- Devices and Controllers
- Device Controllers
- *** Terminal Devices
- Basic Terminals
- Display Commands
- Example Display Commands
- Keyboard Events
- Terminal Capability Databases
- Virtual Terminals
- Terminal Interfaces
- Mouse Devices
- Event Streams
- Varieties of Two Stage Processing
- Graphics Terminals
- Color and Color Maps
- Command Oriented Graphics
- X Terminals
- Terminal Emulators
- Virtual Terminals and Terminal Emulators
- PPP: a network emulator
- Modems
- *** Communication Devices
- Serial ports
- Parallel ports
- Ethernet devices
- Other network devices
- Disk Devices
- Timing of a disk access
- Floppy Disks
- RAID devices
- Disk Controllers
- *** SCSI Interfaces
- *** Tape Devices
- *** CD Devices
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- Devices and Controllers
- I/O Systems
- I/O System Software
- Device Drivers
- Device Driver Interfaces
- The Two Categories of Device Drivers
- The Block Device Interface
- The Character Device Interface
- Disk Device Driver Access Strategies
- Handling Disk Requests Efficiently
- Double buffering — an aside
- A Disk Scheduling Example
- Sector Scheduling Within Cylinder Scheduling
- Combined Sector and Cylinder Scheduling
- Real Life Disk Head Scheduling
- *** Modeling of Disks
- A Disk Scheduling Anomaly
- Cylinder Correlations
- A More Accurate Disk Model
- Device numbers
- Unification of Files and I/O Devices
- Generalized Disk Device Drivers
- Partitioning Large Disks
- Combining Disks Into a Large Logical Disk
- RAM Disks
- Memory as a device
- Pseudo-ttys
- Disk Caching
- Two level structure of device drivers
- SCSI Device Drivers
- Examples of I/O Systems
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- I/O System Software
- File Systems
- The Need for Files
- Using Disks Directly for Persistent Storage
- Files
- Levels in the File System
- The File Abstraction
- Variations on the File Abstraction
- Logical File Structure
- File Size and Granularity
- File Meta-Data
- File Naming
- Component Names
- Directories
- Path Names
- Variations and Generalizations
- File Name Extensions
- Aliases
- File System Objects and Operations
- File System Implementation
- File System Data Structures
- File System Organization and Control Flow
- Connecting to Device Drivers
- Reading and Writing from Special Files
- Other File System Calls
- Avoiding Copying Data
- Directory Implementation
- *** An Example File System Implementation
- System Constants and Global Data
- Disk Cache
- File Descriptors
- Open Files
- Directories
- File System Initialization
- File Related System Calls
- System Call Procedures
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- The Need for Files
- File System Organization
- File System Organization
- What is a File System?
- File System Structure
- The File System Descriptor
- Variations in File System Layout
- File Systems in Disk Partitions
- Combining File Systems
- Network Mounting of File Systems
- File Descriptors
- Where to Keep File Descriptors
- How File Blocks Are Located On Disk
- The Block Mapping Problem
- Contiguous Files
- Interleaved Files
- Keeping a File in Pieces
- Where to keep the disk block pointers
- Disk block pointers in the file descriptor
- Disk block pointers contiguously on disk
- Disk block pointers in the disk blocks
- Index blocks in a chain
- Two levels of index blocks
- Large and small files
- Hybrid solutions
- Analogy with page tables
- Inverted disk block indexes
- Using larger pieces
- Variable sized pieces
- Disk Compaction
- Review of File Storage Methods
- *** Implementation of the Logical to Physical Block Mapping
- File Sizes
- *** Booting the Operating System
- *** File System Optimization
- Block Size
- Compressed Files
- Log Structured File Systems
- File System Reliability
- Backups
- Consistency checking
- File Security and Protection
- Examples of File Systems
- SVR4 and Solaris
- Windows NT
- MS/DOS
- OS/2
- Plan 9
- Other Operating Systems
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- File System Organization
- Design Techniques IV
- Caching
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Related Design Techniques
- Optimization and Hints
- Optimizing an Activity
- Hints
- Differences between caching and hinting
- When to use hinting instead of caching
- Hinting examples
- Hints in user interfaces
- Optimistic algorithms
- Versions of files
- Hierarchical Names
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Implementation Issues and Variations
- Related Design Techniques
- Naming of Objects
- What is a name?
- Types of names
- Generating Unique Names
- Unification of Concepts
- Overview
- Motivation
- Operating System Examples
- Computer Science Examples
- Applicability
- Consequences
- Related Design Techniques
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- Caching
- Resource Management
- Resources in an Operating System
- Hardware Resources
- Software Resources
- Resource Management Issues
- Model of Resource Management
- Resource Management Tasks
- Resource Management Goals
- Types of Resources
- Consumable Resources and Capital
- Preemption of Resources
- Integrated Scheduling
- Queuing Models of Scheduling
- Real-time Operating Systems
- Protection of Resources
- Users and Processes
- The Importance of Protection of Resources
- Resources That Need Protecting
- What We Are Protecting Against
- Authorization
- Authentication
- Security and Protection Analogies
- General Strategy for Protection
- Parts of a Protection System
- User Authentication
- Passwords
- System Authentication
- Other methods of authentication
- Password variants
- Identifying objects
- Identifying a person
- Mechanisms for Protecting Hardware Resources
- Processor Modes
- Protecting Hardware Resources
- Representation of Protection Information
- Object Types
- Operations On Objects
- The Protection Database
- Access Control Lists
- Capability Lists
- Modifying the Protection Database
- Protection Domains
- Protection in Distributed Systems
- Caching Protection Data
- Operations on Protection Objects
- Mechanisms For Software Protection
- File Protection Example
- Implementation of Protection
- Protection Mechanisms and Security Policies
- Variations in File Security
- Examples of Protection Attacks
- Browsing for Information
- Wiretapping of Communications Lines
- Trial and Error
- Password Guessing
- Searching Trash
- Trap Doors
- Running Other People’s Programs
- Government Security Levels
- Protection Examples
- Protection In Windows NT
- Protection In OSF/1
- Protection In UNIX
- External Security
- Physical Security
- Operational Security
- Non-Technical Security Threats
- The Use of Cryptography in Computer Security
- What is Cryptography?
- Some Basic Definitions
- Public and Private Key Cryptosystems
- Using Cryptography for Privacy
- Using Cryptography for Authentication
- Authenticating Public Keys
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- The Client Server Model
- Three Modes of Communication
- System Processes
- Overview
- The Initial process
- System Constants
- Initialization
- Interrupt Handling
- Handling System Calls
- The System Call Handling Code
- User Knowledge of Message Queue Identifiers
- Protection of Resources
- Disk Interrupt Handler
- Disk I/O System Process
- Server Data Structures
- Micro-Kernel Operating Systems
- Tradeoffs of the Client Server Model
- Object Oriented Operating Systems
- The Developments Towards a Distributed System
- Networked Operating Systems
- Distributed Operating Systems
- Summary
- Terminology
- Review Questions
- Further Reading
- Problems
- Resources in an Operating System
- Glossary
- References
- Index
People also search:
modern operating systems 3rd edition pdf
modern operating systems 3rd ed
what is operating system class 3
name 3 operating systems
what are 3 common operating systems