Modern Operating Systems Andrew S Tanenbaum & Herbert Bos Solutions
Modern operating systems
The widely anticipated revision of this worldwide best-seller incorporates the latest developments in operating systems (OS) technologies. The fourth edition includes up-to-date materials on relevant OS. Tanenbaum also provides information on current research based on his experience as an operating systems researcher
Available at all branches.
-
National College Library – Four available in Main Lending 005.43
Details
Edition statement: Andrew S. Tanenbaum, Herbert Bos.
Copyright: 2015
ISBN: 1292061421, 9781292061429
Intended audience: Specialized.
Note: Includes Internet access.
Note: Includes bibliographical references and index.
Physical Description: xxvi, 1101 pages : illustrations (black and white) ; 24 cm
Subject: Computers and IT.; Operating systems (Computers)
Contents
- "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
- 1.2.4
- The Fourth Generation (1980-Present): Personal Computers
- 1.2.5
- The Fifth Generation (1990-Present): Mobile Computers
- 1.3
- COMPUTER HARDWARE REVIEW
- 1.3.1
- Processors
- 1.3.2
- Memory
- 1.3.3
- Disks
- 1.3.4
- I/O Devices
- 1.3.5
- Buses
- 1.3.6
- Booting the Computer
- 1.4
- THE OPERATING SYSTEM ZOO
- 1.4.1
- Mainframe Operating Systems
- 1.4.2
- Server Operating Systems
- 1.4.3
- Multiprocessor Operating Systems
- 1.4.4
- Personal Computer Operating Systems
- 1.4.5
- Handheld Computer Operating Systems
- 1.4.6
- Embedded Operating Systems.
- 1.4.7
- Sensor-Node Operating Systems
- 1.4.8
- Real-Time Operating Systems
- 1.4.9
- Smart Card Operating Systems
- 1.5
- OPERATING SYSTEM CONCEPTS
- 1.5.1
- Processes
- 1.5.2
- Address Spaces
- 1.5.3
- Files
- 1.5.4
- Input/Output
- 1.5.5
- Protection
- 1.5.6
- The Shell
- 1.5.7
- Ontogeny Recapitulates Phylogeny
- 1.6
- SYSTEM CALLS
- 1.6.1
- System Calls for Process Management
- 1.6.2
- System Calls for File Management
- 1.6.3
- System Calls for Directory Management
- 1.6.4
- Miscellaneous System Calls
- 1.6.5
- The Windows Win32 API
- 1.7
- OPERATING SYSTEM STRUCTURE
- 1.7.1
- Monolithic Systems
- 1.7.2
- Layered Systems
- 1.7.3
- Microkernels
- 1.7.4
- Client-Server Model
- 1.7.5
- Virtual Machines
- 1.7.6
- Exokernels
- 1.8
- THE WORLD ACCORDING TO C
- 1.8.1
- The C Language
- 1.8.2
- Header Files
- 1.8.3
- Large Programming Projects
- 1.8.4
- The Model of Run Time
- 1.9
- RESEARCH ON OPERATING SYSTEMS
- 1.10
- OUTLINE OF THE REST OF THIS BOOK
- 1.11
- METRIC UNITS
- 1.12
- SUMMARY
- 80CHAPTER 2 "PROCESSES AND THREADS"
- 2.1
- PROCESSES
- 2.1.1
- The Process Model
- 2.1.2
- Process Creation
- 2.1.3
- Process Termination
- 2.1.4
- Process Hierarchies
- 2.1.5
- Process States
- 2.1.6
- Implementation of Processes
- 2.1.7
- Modeling Multiprogramming
- 2.2
- THREADS
- 2.2.1
- Thread Usage
- 2.2.2
- The Classical Thread Model
- 2.2.3
- POSIX Threads
- 2.2.4
- Implementing Threads in User Space
- 2.2.5
- Implementing Threads in the Kernel
- 2.2.6
- Hybrid Implementations
- 2.2.7
- Scheduler Activations
- 2.2.8
- Pop-Up Threads
- 2.2.9
- Making Single-Threaded Code Multithreaded
- 2.3
- INTERPROCESS COMMUNICATION
- 2.3.1
- Race Conditions
- 2.3.2
- Critical Regions
- 2.3.3
- Mutual Exclusion with Busy Waiting
- 2.3.4
- Sleep and Wakeup
- 2.3.5
- Semaphores
- 2.3.6
- Mutexes
- 2.3.7
- Monitors
- 2.3.8
- Message Passing
- 2.3.9
- Barriers
- 2.3.10
- Avoiding Locks: Read-Copy-Update
- 2.4
- SCHEDULING
- 2.4.1
- Introduction to Scheduling
- 2.4.2
- Scheduling in Batch Systems
- 2.4.3
- Scheduling in Interactive Systems
- 2.4.4
- Scheduling in Real-Time Systems
- 2.4.5
- Policy Versus Mechanism
- 2.4.6
- Thread Scheduling
- 2.5
- CLASSICAL IPC PROBLEMS
- 2.5.1
- The Dining Philosophers Problem
- 2.5.2
- The Readers and Writers Problem
- 2.6
- RESEARCH ON PROCESSES AND THREADS
- 2.7
- SUMMARY
- 173CHAPTER 3 "MEMORY MANAGEMENT"
- 3.1
- NO MEMORY ABSTRACTION
- 3.2
- A MEMORY ABSTRACTION: ADDRESS SPACES
- 3.2.1
- The Notion of an Address Space
- 3.2.2
- Swapping
- 3.2.3
- Managing Free Memory
- 3.3
- VIRTUAL MEMORY
- 3.3.1
- Paging
- 3.3.2
- Page Tables
- 3.3.3
- Speeding Up Paging
- 3.3.4
- Page Tables for Large Memories
- 3.4
- PAGE REPLACEMENT ALGORITHMS
- 3.4.1
- The Optimal Page Replacement Algorithm
- 3.4.2
- The Not Recently Used Page Replacement Algorithm
- 3.4.3
- The First-In, First-Out (FIFO) Page Replacement Algorithm
- 3.4.4
- The Second-Chance Page Replacement Algorithm
- 3.4.5
- The Clock Page Replacement Algorithm
- 3.4.6
- The Least Recently Used (LRU) Page Replacement Algorithm
- 3.4.7
- Simulating LRU in Software
- 3.4.8
- The Working Set Page Replacement Algorithm
- 3.4.9
- The WSClock Page Replacement Algorithm
- 3.4.10
- Summary of Page Replacement Algorithms
- 3.5
- DESIGN ISSUES FOR PAGING SYSTEMS
- 3.5.1
- Local versus Global Allocation Policies
- 3.5.2
- Load Control
- 3.5.3
- Page Size
- 3.5.4
- Separate Instruction and Data Spaces
- 3.5.5
- Shared Pages
- 3.5.6
- Shared Libraries
- 3.5.7
- Mapped Files
- 3.5.8
- Cleaning Policy
- 3.5.9
- Virtual Memory Interface
- 3.6
- IMPLEMENTATION ISSUES
- 3.6.1
- Operating System Involvement with Paging
- 3.6.2
- Page Fault Handling
- 3.6.3
- Instruction Backup
- 3.6.4
- Locking Pages in Memory
- 3.6.5
- Backing Store
- 3.6.6
- Separation of Policy and Mechanism
- 3.7
- SEGMENTATION
- 3.7.1
- Implementation of Pure Segmentation
- 3.7.2
- Segmentation with Paging: MULTICS
- 3.7.3
- Segmentation with Paging: The Intel x86
- 3.8
- RESEARCH ON MEMORY MANAGEMENT
- 3.9
- SUMMARY
- 253CHAPTER 4 "FILE SYSTEMS"
- 4.1
- FILES
- 4.1.1
- File Naming
- 4.1.2
- File Structure
- 4.1.3
- File Types
- 4.1.4
- File Access
- 4.1.5
- File Attributes
- 4.1.6
- File Operations
- 4.1.7
- An Example Program Using File-System Calls
- 4.2
- DIRECTORIES
- 4.2.1
- Single-Level Directory Systems
- &p;nbsp
- 9.9
- MALWARE
- 9.9.1
- Trojan Horses
- 9.9.2
- Viruses
- 9.9.3
- Worms
- 9.9.4
- Spyware
- 9.9.5
- Rootkits
- 9.10
- DEFENSES
- 9.10.1
- Firewalls
- 9.10.2
- Antivirus and Anti-Antivirus Techniques
- 9.10.3
- Code Signing
- 9.10.4
- Jailing
- 9.10.5
- Model-Based Intrusion Detection
- 9.10.6
- Encapsulating Mobile Code
- 9.10.7
- Java Security
- 9.11
- RESEARCH ON SECURITY
- 9.12
- SUMMARYCHAPTER 10 "CASE STUDY 1: UNIX, LINUX, AND ANDROID"
- 10.1
- HISTORY OF UNIX AND LINUX
- 10.1.1
- UNICS
- 10.1.2
- PDP-11 UNIX
- 10.1.3
- Portable UNIX
- 10.1.4
- Berkeley UNIX
- 10.1.5
- Standard UNIX
- 10.1.6
- MINIX
- 10.1.7
- Linux
- 10.2
- OVERVIEW OF LINUX
- 10.2.1
- Linux Goals
- 10.2.2
- Interfaces to Linux
- 10.2.3
- The Shell
- 10.2.4
- Linux Utility Programs
- 10.2.5
- Kernel Structure
- 10.3
- PROCESSES IN LINUX
- 10.3.1
- Fundamental Concepts
- 10.3.2
- Process Management System Calls in Linux
- 10.3.3
- Implementation of Processes and Threads in Linux
- 10.3.4
- Scheduling in Linux
- 10.3.5
- Booting Linux
- 10.4
- MEMORY MANAGEMENT IN LINUX
- 10.4.1
- Fundamental Concepts
- 10.4.2
- Memory Management System Calls in Linux
- 10.4.3
- Implementation of Memory Management in Linux
- 10.4.4
- Paging in Linux
- 10.5
- INPUT/OUTPUT IN LINUX
- 10.5.1
- Fundamental Concepts
- 10.5.2
- Networking
- 10.5.3
- Input/Output System Calls in Linux
- 10.5.4
- Implementation of Input/Output in Linux
- 10.5.5
- Modules in Linux
- 10.6
- THE LINUX FILE SYSTEM
- 10.6.1
- Fundamental Concepts
- 10.6.2
- File System Calls in Linux
- 10.6.3
- Implementation of the Linux File System
- 10.6.4
- NFS: The Network File System
- 10.7
- SECURITY IN LINUX
- 10.7.1
- Fundamental Concepts
- 10.7.2
- Security System Calls in Linux
- 10.7.3
- Implementation of Security in Linux
- 10.8
- ANDROID
- 10.9
- SUMMARYCHAPTER 11 "CASE STUDY 2: WINDOWS 8"
- 11.1
- HISTORY OF WINDOWS THROUGH WINDOWS 8.1
- 11.1.1
- 1980s: MS-DOS
- 11.1.2
- 1990s: MS-DOS-based Windows
- 11.1.3
- 2000s: NT-based Windows
- 11.1.4
- Windows Vista
- 11.1.5
- 2010s: Modern Windows
- 11.2
- PROGRAMMING WINDOWS
- 11.2.1
- The Native NT Application Programming Interface
- 11.2.2
- The Win32 Application Programming Interface
- 11.2.3
- The Windows Registry
- 11.3
- SYSTEM STRUCTURE
- 11.3.1
- Operating System Structure
- 11.3.2
- Booting Windows
- 11.3.3
- Implementation of the Object Manager
- 11.3.4
- Subsystems, DLLs, and User-Mode Services
- 11.4
- PROCESSES AND THREADS IN WINDOWS
- 11.4.1
- Fundamental Concepts
- 11.4.2
- Job, Process, Thread, and Fiber Management API Calls
- 11.4.3
- Implementation of Processes and Threads
- 11.5
- MEMORY MANAGEMENT
- 11.5.1
- Fundamental Concepts
- 11.5.2
- Memory Management System Calls
- 11.5.3
- Implementation of Memory Management
- 11.6
- CACHING IN WINDOWS
- 11.7
- INPUT/OUTPUT IN WINDOWS
- 11.7.1
- Fundamental Concepts
- 11.7.2
- Input/Output API Calls
- 11.7.3
- Implementation of I/O
- 11.8
- THE WINDOWS NT FILE SYSTEM
- 11.8.1
- Fundamental Concepts
- 11.8.2
- Implementation of the NT File System
- 11.9
- WINDOWS POWER MANAGEMENT
- 11.10
- SECURITY IN WINDOWS
- 11.10.1
- Fundamental Concepts
- 11.10.2
- Security API Calls
- 11.10.3
- Implementation of Security
- 11.10.4
- Security Mitigations
- 11.11
- SUMMARYCHAPTER 13 "OPERATING SYSTEM DESIGN"
- 13.1
- THE NATURE OF THE DESIGN PROBLEM
- 13.1.1
- Goals
- 13.1.2
- Why Is It Hard to Design an Operating System?
- 13.2
- INTERFACE DESIGN
- 13.2.1
- Guiding Principles
- 13.2.2
- Paradigms
- 13.2.3
- The System Call Interface
- 13.3
- IMPLEMENTATION
- 13.3.1
- System Structure
- 13.3.2
- Mechanism versus Policy
- 13.3.3
- Orthogonality
- 13.3.4
- Naming
- 13.3.5
- Binding Time
- 13.3.6
- Static versus Dynamic Structures
- 13.3.7
- Top-Down versus Bottom-Up Implementation
- 13.3.8
- Useful Techniques
- 13.4
- PERFORMANCE
- 13.4.1
- Why Are Operating Systems Slow?
- 13.4.2
- What Should Be Optimized?
- 13.4.3
- Space-Time Trade-offs
- 13.4.4
- Caching
- 13.4.5
- Hints
- 13.4.6
- Exploiting Locality
- 13.4.7
- Optimize the Common Case
- 13.5
- PROJECT MANAGEMENT
- 13.5.1
- The Mythical Man Month
- 13.5.2
- Team Structure
- 13.5.3
- The Role of Experience
- 13.5.4
- No Silver Bullet
- 13.6
- TRENDS IN OPERATING SYSTEM DESIGN
- 13.6.1
- Virtualization
- 13.6.2
- Multicore Chips
- 13.6.3
- Large Address Space Operating Systems
- 13.6.4
- Networking
- 13.6.5
- Parallel and Distributed Systems
- 13.6.6
- Multimedia
- 13.6.7
- Battery-Powered Computers
- 13.6.8
- Embedded Systems
- 13.6.9
- Sensor Nodes
- 13.7
- SUMMARYCHAPTER 14 "READING LIST AND BIBLIOGRAPHY"
- 14.1
- SUGGESTIONS FOR FURTHER READING
- 14.1.1
- Introduction and General Works
- 14.1.2
- Processes and Threads
- 14.1.3
- Memory Management
- 14.1.4
- Input/Output
- 14.1.5
- File Systems
- 14.1.6
- Deadlocks
- 14.1.7
- Virtualization and the CLoud
- 14.1.8
- Multiple Processor Systems
- 14.1.9
- Security
- 14.1.10
- UNIX, Linux, and Android
- 14.1.11
- Windows
- 14.1.12
- Design Principles
- 14.2
- ALPHABETICAL BIBLIOGRAPHY
Description
Modern Operating Systems Andrew S Tanenbaum & Herbert Bos Solutions
Source: https://library.ncirl.ie/items/19377?query=subject%3A%28Computers+and+IT%29&resultsUri=items%3Fquery%3Dsubject%253A%2528Computers%2Band%2BIT%2529%26offset%3D0