面向设计方法的操作系统

面向设计方法的操作系统 pdf epub mobi txt 电子书 下载 2026

出版者:世界图书出版公司
作者:C.Crowley
出品人:
页数:844
译者:
出版时间:1999-04
价格:100.00
装帧:平装
isbn号码:9787506241182
丛书系列:
图书标签:
  • 操作系统
  • 操作系统
  • 面向设计
  • 计算机科学
  • 系统编程
  • 底层原理
  • 教学教材
  • 实践教学
  • 软件工程
  • 计算机体系结构
  • 设计方法
想要找书就要到 小哈图书下载中心
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

作者简介

目录信息

CONTENTS
Introduction 1
1.1 Where Doe an Operating System
Fit in?
1.1.1 System Levels
1.2 What Does an Operating System Do?
2.1 Hardware Resources
2.2 Resource Management
2.3 Vinual Computers
A Virtual Computer
3.1 Virtual Processor
3.2 Vinual Primary Memory
3.3 Virtual Secondary Memory 10
3.4 Vinual 1/0
Do We Need an Operating System?
Summary
1.5.1 Terminotogy
1.5.2 Review Questions
1.5.3 Further Reading
1.6 Problems
2 The Hardware Interface
TheCPU
2.2 General-Purpose Register
2.3 Control Registers
2.4 Processor Modes
Instruction Set
Machine Instructions in C
Code
Memory andAddressing
Interrupts
1/0 Devices
2.4.1 Disk Controlle
Summary
2.5.1 Terminotogy
2.5.2 Review Questions
2.5.3 Further Reading
2.6 Problems
3 The Operating System Interface
3.1 What Are System Calls?
3.1.1 How to Make a System Call
3.1.2 What Is a System Call Interface?
3.2 An Example System Call Interface
3.2.1 Syslem Call Overview
3.2.2 Hierarchical File Naming
Syslems
3.2.3 File and 1/o Svstem Calls
3.2.4 Open Files
3.3
3.4
3.5
3.2.5 Examples of File 1/0
Infonnation and Meta-Information
Naming Operating System Objects
3.5 Devices as Files
3.5.1 Unificalion of the Fil and Devi
Concepts
3.6 The Process Concept
3.6.1 Processes and Programs
3.6.2 Process Management System
Calls
3.7
3.6.3 Process Hierarchy
Communication between Processes
3.7.1 Communication-Related System
Calls :
3.7.2 Example of Inlerproces.-
3.8 UNIX-Style Process Creation
3.9 Standard Input and Standard Output
Communication
3.10 Communicating with Pipes
3.10.1 Naming of Pipes and Message
Queues
3.11 Summary of System Call Interface
3.12 Operating System Exampies
3.12.1 UNIX
3.12.2 Mach
3.12.3 MS/DOS
3.12.4 Windows NT
3.12.5 os/2
3.12.6 Macinlosh OS
3.13 The User Interface to an Operating
System*
3.13.1 Why You Need a Shell
3.13.2 TheSpecificationoftheShell
3.13.3 Implementing the Shell
3.14 Summary
3.14.1 Terminology
3.14.2 Review Questions
3.14.3 Further Reading
3.15 Problems
Design Techniques 1
4.1 Operating Systems and Design
4.1.1 The Design Process
4.1.2 Relationship to Software
Engineering
4.1.3 A Design Example
4.1.4 Leaming Design through Operating
Systems
4.2 Design Problems
4.2.1 DesignSkills
4.2.2 Design Space
4.2.3 Design Levels
4.3 Design Techniques
4.4 Two-Level Implementation
4.4.1 Overview
4.4.2 Motivation
4.4.3 Operating System Examples
4.4.4 Computer Science Examples
4.4.5 Applicability
4.4.6 Consequences
4.4.7 Implementation Issue and
Variations
4.4.8 Related Design Techniques
4.5 Interface Design
4.5.1 Overview
4.5.2 Motivatior
4.5.3 Applicability
4.5.4 Consequences
4.5.5 Related Design Technique
4.6 Connection in Protocols
4.6.1 Overview
4.6-2 Motivation
4.6.3 Operating System Exampies
4.6.4 Computer Science Examples
4-6.5 Applicabilily
4.6.6 Consequences
4.6.7 Implementation Issue and
Variations 102
4.6.8 Related Design Technique
4.7 Interactive and Programming
Interfaces
4.7.1 Overview
4.7.2 Motivation
4.7.3 Operating Syslem Examples
4.7.4 Compucer Science Examples
4.7.5 Applicability
4.7.6 Consequences
4.7.7 Implementation Issue -and
Variations
4.7.8 Related Design Techniques
4.8 Decomposition Pattems
4.8.1 Overview
4.8.2 Mocivalion
4.8.3 Operating System Examples
4.8.4 Computer Science Examples
4.8.5 Applicability
4.8.6 Consequences
4.8.7 Implementation Issue. and
Varialions
4.8.8 Related Design Technique
4.9 Summary
4.9.1 Terminology
4.9.2 Review Question
4.10 Problems
Implementing Processes
5.1 The System Call Interface
5.2 Implementation of a Simple Operating
System 119
5.2.1 Guide to the Code
5.2.2 The Architecture
5.2.3 System Constants
5.2.4 Global Data
5.3 Implementation of Processes
5.3.1 Process Creation
5.3.2 Process States
5.3.3 Process Dispatching
5.3.4 The System Stack
5.3.5 Timer Intemupts
5.4 System Initialization
5.4.1 The Initial Process
5.5 Process Switching
5.5.1 Swilching between Processe
5.5.2 Flow of Conlrol
System Call Interrupt Handling
5.6.1 Copying Messages between Addres
Spaces
5.7 Program Brror Interrupts
5.8 Disk Driver Subsystem
5.8.1 Communicating with the Disk
5.9 Conlroller
Implementation of Waiting
5.9.1 Waiting for Messages
5.9.2 Waiting inside a System Call
5.9.3 Suspending System Calls
Flow of Control through the Operating
5.10 System
5.11 Signaling in an Operating System
5.12 Interupts in the Operating System
5.13 Operating Systems as Event and Table
Managers
5.14 Process Implementation
5.14.1 The Process Table and Proces
5.15 Descriptors
5.16 Examples ofProcess Implementation
Monoprogramming*
5.16.1 BatchSystems
5.16.2 Multiprogramming and 1/o
Overlap
5.16.3 Personal Computer System
5.17Summary
5.17.1 Tenninology
5.17.2 Review Questions
5.17.3 Further Reading
Problems
Parallel Systems
6.1 Parallel Hardware
6.2 An Operaling System fo a Two-Processo
System
6.2.1
Using Two Separate Operating
Syslems
6.2.2 Sharing the Operating Syslem
6.3 Race Conditions with a Shared Proces.
Table
6.4 Atomic Actions
6.4. i Hardware ImDlementation of Atomic
Actions
6.5 A Multiprocessor Operating System
6.5.1 The Current Process Variable
6.5.2 Dispatching With a Shared Process
Table
6.5.3 Busy Waiting
6.5.4 Handling the Queues
6.5.5 Grouping of Shared Variables
6.5.6 A General Solution
6.5.7 Using Two Process Tables
Examples of Multiprocessor Operating
6.6 Systems
6.7. Threads
6.7.1 The Thread Concept
6.7.2 Thread Syslem Calls
6.7.3 Advantages ofThreads
6.7.4 U.sesofThreads
6.7.5 Thread Implementation*
6.7.6 Splitting Ihe Process Concepl
6.7.7 Lightweight Processes and Use
Threads
6.7.8 Examples of Threads
6.8 Kernel-mode Processes*
6.8.1 Data Struclures for Kernel-Mod
Processes
6.8.2 Process Creation with Kemel-Mode
Processes
6.8.3 Interrupt Handler for Kemel-Mod
Processes
6.8.4 Switching Processe for Kernel-Mod
Processes
6.8.5 How the System Slack is Used
6.8.6 Wailing wilh Kemel-Mode
Processes
6.8.7 Dispatching with Kernel-Mod
Processes
6.8.8 Kemel-Mode only Processe,
6.8.9 Trade-Ofts otKemel-Mode
Processes
6.8.10 Examples uf Kemel-Mode
Processes
6.9 Implementation of Mutual Exclusion
6.9.1 First Solulion: Disabling
Interrupts
6.9.2 Second Solution: Usinc
ExchungeWord
6.9 3 Third Solulion: Sottware
Solutions
6.9.4 When to Use Each Solution
6.9.5 Examples ot' Implemenling Mulual
Exclusiun
Varieties ofComputer Model
6.10.1 Multiprogramming
6.10.2 Mulliprocessing
Summary
6.11.1 Tcrminoiogy
6.11.2 Review Questions
6.11.3 Furher Reading
Problems
Interprocess Communication
Pattems
7.1 Using Interprocess Communication
7.2 Pattems of Interprocess
Communication
7.2.1 Competing and Cooperating
7.3 Problems When Processes Compete
7.4 Race Conditions and Atomic Actions
7.5 New Message-Passing System Calls
7.6 IPC Pattem: Mutual Exclusion
7.6.1 N Process Mutual Exclusion
7.6.2 Voluntary Cooperation in Mutual
Exclusion
7.7 IPC Pattem: Signaling
7.8 IPC Pattem: Rendezvous
7.8.1 Many Process Rendezvous
7.9 IPC Pattem: Producer-Consumer
7.9.1 The Basic Producer-Consumer
Pattem
7.9.2 Limiting the Numbe of Buffer
LIsed
7.9.3 Multiple Producer and
Consumers
7.10 IPC Pattem: Client-Server
7.11 IPC Pattem: Multiple Servers and
Clients*
7.12 IPC Pattem: Database Acces. and
Update
7.12.1 Scheduling
7.12.2 Priorily
7-12.3 Scheduling Queues
7.13 Review of Interprocess Communication
Pattems
7.13.1 Mutual Exclusion
7.13.2 Signaling
7.13.3 Rendezvous
7.13.4 Producer-Consume
7.13.5 Clienl-Server 264
7.13.6 Multiple Servers and Clients
7.13.7 Database Access and Update
7.14 A Physical Analogy
7.15 Failure of Processes
7.15.1 Recovery from Failure
7.16 Summary
7.16.1 Terminology
7.16.2 Review Questions
7.16.3 Funher Reading
7.17 Problems
Processes
8.1 Everyday Scheduling
8.1.1 First-Come, First-Served
Scheduling
Shortest-Job-First Scheduling
Highest-Response-Ratio-Next
Scheduling
Priority Scheduling
Deadline Scheduling
8.1.6 Round-Robin Scheduling
8.1.7 Summary
8.2 Preemptive Scheduling Methods
8.2.1 Scheduling Overview
8.2.2 Round-Robin Scheduling
8.2.3 Heavily Loaded Systems
8.2.4 Two Queues
8.2.5 Multiple Queues
8.3 Policy versus Mechanism in
Scheduling
8.4 A Scheduling Example
8.5 Scheduling in Real Operating
Systems
8.5.1 Scheduling in UNIX SVR4
8.5.2 Scheduling in Solaris
8.5.3 Scheduling in 0S/22.0
8.5.4 Schedu]inginWindowsNT3.51
8.5.5 Scheduiing in Other Operating
Systems
8.6 Deadlock
8.7 Why Deadlock Is a Problem
8.8 Conditions for Deadlock to Occur
8.9 How to Deal with Deadlock
8.9.1 Deadlock Prevention
8.9.2 Deadlock Avoidance
8.9.3 Deadlock Recovery
8.10 A Sequence ofApproache to the Deadlock
Problem
8.11 Two-Phase Locking
Starvation
8.12 Message Passing Variations
8.13.1 Using PIDs as Message
Addresses
8.13.2 Message Passing with Nonblocking
Receives
8.13.3 Message Passing with Blocking
Sends
8.13.4 Remole Procedure Call,
8.14 Synchronization
8.14.1 DeftnitionofSynchronization
8.14.2 Review of Synchronization
8.15 Separating Data Transfer and
8.16 Synchronization
Semaphores
8.16.1 Specification ot' Semaphore
Operations
8.16.2 Implementation ot Semaphore
8.16.3 AnAnalogy
8.16.4 Mutual Exctusion with
Semaphores
8.16.5 Rendezvous with Semaphores
8.16.6 Producer-Consumer (one buffer) wilh
Semaphores
8.16.7 Counting Semaphores
8.16.8 Producer-Consumer(N buffers) wiih
Semaphore.s
8.16.9 Semaphores and Message.
8.17 Implementing Semaphores*
8.17.1 Sy.stem Constants
Using Semaphores in the Simple Operaling
System
8.18 Programming-Language-Based
8.19 Synchronization Primitives
8.19.1 Monilors
8.19.2 Synchronizalion Primitives in
Ada 95
8.20 Message Passing Design Issues
8.20.1 Copying Messages
8.20.2 Longer Messages
8.21IPC in Mach 337
8.21.1 Tasks and Threads
8.21.2 Ports and Messages
8.21.3 Objects
8.22 IPC and Synchronizalion Example.
8.22.1 Signals 338
8.22.2 SVR4 UNIX
8.22.3 Windows NT
8.22.4 0S/2
8.22.5 Solaris
8.23 Summary
8.23.1 Terminology
8.23.2 ReviewOuestions
8.23.3 Funher Reading
8.24 Problems
Design Techniques 11
Indirection
Overview
9.1 Motivation
9.1.1 Operating System Examples
9.1.2 Computer Science Examples
9.1.3 Discussion
9.1.4 Applicability
Consequences
9.2 Using State Machines
9.2.1 Overview
9.2.2 Operating System Example .
9.2.3 Computer Science Example
9.2.4 Applicabilily
9.2.5 Consequences
9.2.6 Implementation Issue, and
Variations
9.3 Win Big. Then Give Some Back
9.3.1 Overview
9.3.2 Motivation
9.3.3 Operating System Examples
9.3.4 Computer Science Examples
9.3.5 Applicability
9.4 Consequences
Separation ot Concepts
9.4.1 Overview
9.4.2 Molivation
9.4.3 Operating Syslem Examples
9.4.4 Computer Science Examples
9.4.5 Applicability
9.4.6 Consequences
9.4.7 Implementation Issue and
9.4.8 Related Design Techniques .
Variations
9.5 Reducing a Problem to a Specia'. Case
9.5.1 Overview
9.5.2 Motivation
9.5.3 Operating System Examples
9.5.4 Computer Science Examples
9.5.5 Applicability
9.5.6 Consequences
9.5.7 Implementation Issue and
Variations
9.6 Reentrant Programs
9.6.1 Overview
9.6.2 Motivacion
9.6.3 Operaling System Examples
9.6.4 Computer Science Examples
9.6.5 Applicability
9.6.6 Consequences
9.6.7 Implementation Issue and
Variations
9.6.8 Related Design Techniques
9.7 Using Models for Inspiration
9.7.1 Overview
9.7.2 Motivation
9.7.3 Operating System Examples
9.7.4 Computer Science Examples
9.7.5 Applicability
9.7.6 Consequences
9.8 Adding a New Facility to a System
9.8.1 Overview
9.8.2 Motivation
9.8.3 Operating System Examples
9.8.4 Computer Science Examples
9.8.5 Applicability
9.8.6 Consequences
9.8.7 Related Design Technique.
9.9 Summary
9.9.1 Tenninology
9.9.2 Review Question
9.10 Problems
Memory Management
10.1 Levels of Memory Management
10.2 Linking and Loading a Process
10.2.1 Creating a Load Module
10.2.2 Loading a Load Module
10.2.3 Allocating Memory in a Running
PTocess
10.3 Variations in Program Loading
10.3.1 Load Time Dynamic Linking
10.3.2 Run Time Dynamic Linking
10.4 Why Use Dynamic Memory
Allocation?
10.5 The Memory Management Design
Problem*
10.6 Solutions to the Memory Management
Design Problem*
10.6.1 Static Division into a Fixed Numbe
of Blocks
10.6.2 Buddy Syslems
10.6.3 Powers-of-two Allocation
10.7 Dynamic Memory Allocation*
10.8 Keeping Track of the Blocks*
10.8.1 The List Method
10.8.2 Keeping Allocated Blocks on the
Block List
10.8.3 Where Is che Block List Kept?
10.8.4 Using Block Headers as Free List
Nodes
10.8.5 The Bitmap Method
10.8.6 Comparing Free List Methods
10.9 Which Free Block to Allocate?*
10.10 Examples of Dynamic Memory
Allocalion
10.11 Logical and Physical
Memory
10.12 Allocating Memory to
Processes
10.12.1 Static Memory Management
10.12.2 Handling Variable-Sized
Processes
10.13 Multiprogramming Issues
10.14 Memory Protection
10.15 Memory Management System Calls
10.15.1 Static Allocation of Memory lo
Processes
10.15.2 Dynamic Allocation of Memory to
Processes
10.15.3 What about New and Malloc?
10.15.4 Freeing Memory at Each
Leve
10.15.5 ADifferent Memory Management
System Call
10.16 Example Code for Memory
Allocation*
10.17 Summary
10.17.1 Terminology
10.17.2 Review Question
10.17.3 Funher Reading
10.18 Problems
Virtual Memory
11.1 Fragmentation and Compaction*
11.2 Dealing with Fragmentation
11.2.1 Separate Code and Data Spac
11.2.2 Segments
11.2.3 Noncontiguous Logieal Addres
Spaces
11.2.4 Page Tables in Hardwar
Registers
11.2-5 Page Tables in Memory
11.2.6 Using a Page Table Cache
11.2.7 Analysis Models of Paging with
Caching
11.2.8 Memory Allocation with Paging
11.2.9 Tenninology: Page and Page
Frame
11.2.10 PageTahles
11.2.11 Paging Summary
11.3 Memory Allocalion Code wilh Page.
11.4 Sharing the Processor and Sharing
Memory*
11.5 Swapping*
11.5.1 Efficient Resource Use and Vse
Needs
11.6 Overlays*
11.6.1 Overlays in PCs
11.7 Implemenling Virtual Memory
11.7.1 Hardware Required to Supporl Virtal
Memory
11.7.2 Software Required to Support Virtual
Memory
11.8 What is the Cost of Virtual Memory'?
11.8.1 Paging More Than One Process
11.8.2 Locality
11.9 Virtual Memory Management
11.10 Daemons and Events
11.11 File Mapping
11.11.1 The System Call Intert'ace
11.11.2 An Example of Using File
Mapping
11.11.3 Advanfages of File Mapping
11.11.4 Memory and File Mapping on the
IBM 801
11.11.5 File Mapping Example.
11.12 Summary
11.12.1 Tenninology
11.12.2 Review Questions
11.12.3 Further Reading
11.13 Problems
12 Virtual Memory Systems
12.1 Page Replacement
12.2 Global Page Replacement Algorithms
12 2.1 easuring the Performance of a Page
12.2.2 Replacement Algorithm
12.2.3 Optimal Page Replacement
12.2.4 Theories of Program Paging
12.2.5 Behavior
Random Page Replacement
First-In. First-Out FIFO Page
Replacernenl
Least Recenlly Used Pag
Replacement
12.2.7 Approximations ot'LRU
12.2.8 Clock Algorithms
12.3 Page Replacement Examples
12.4 Local Page Replacement Algorithm.
12.4.1 What Is a Working Set?
12.4.2 Program Phases
12.4.3 Varlable Resident Set Size.
12.4.4 The Working Sel Paging
Algorilhm
12.4.5 Approximating ine working Set
12.4.6 WSCIock Paging Algorithm
12.5 Evaluating Paging Algorithms*
12.5.1 Methodology for Paging
Simulation
12.5.2 Some Page Simulation Result
12.6 Thrashing and Load Control
12.6.1 How Thrashing Occurs
12.6.2 Load control
12.6.3 Swapping
12.6.4 Scheduling and Swapping
12.6.5 Load Control and Paging
Algorithms
12.6.6 Predictive Load Control
12.6.7 Preloading of Pages
12.7 Dealing with Large Page Tables
12.7.1 What Is the Problem?
12.7.2 Two-Level Paging
12.7.3 Benefits of Two-LevelPaging
12.7.4 Problems with Two-Level
Paging
12.7.5 Software Page Table Lookup.
12.8 Recursive Address Spaces*
12.9 Paging the Operating System Addres.
Space
12.9.1 Locking Pages in Memory
12.10 PageSize*
12.10.1 Reasons for a Large Page Size
12.10.2 Reasons for a Small Page Size
12.10.3 Clustering Pages
12.11 Segmentation
12.11.1 What Is a Segment?
12.11.2 Vinual Memory with
Segmentation
12.11.3 Segmentation with Paging
12.11.4 History of Segmenlation
12.11.5 Segment Tenninology
12.12 Sharing Memory
12.12.1 Reasons for Sharing Memory
12.12.2 Shared Memory Sysiem Calls
12.13 Examples of Virtual Memory Systems
12.13.1 SwapArea
12.13.2 Page Initialization
12.13.3 PageSharing
12.13.4 Double-Handed Clock
Algorithm
12.13.5 Standby Page Lists
12.13.6 Clustering Pages
12.13.7 FileMapping
12.13.8 Portable Virtual Memory
Systems
12.13.9 Sparse Address Space
12.13.10 OS/2 Version 2.0
12.13.11 WindowsNT
12.13.12 Mach and OSF/1
12.13.13 System V Release 4
12.13.14 Other Systems
12.14 Very Large Address Spaces
12.15 Summary
12.15.1 Terminology
12.15.2 Review Queslions
12.15.3 Funher Reading
12.16 Problems
13Design Techniques III
13.1 Multiplexing
13.1.1 Overview
13.1.2 Motivation
13.1.4
Operatmg System Examples
Computer Science Examples
Applicability
Consequences
13.2 Late Binding
13.2.1 Overview
13.2.2 Motivation
13.2.3 Operating System Examples
13.2.4 Computer Science Examples
13.2.5 Applicability
13.2.6 Consequences
13.2.7 Implementation Issue. and
Variations
13.2.8 Related Design Technique
13.3 Static Versus Dynamic
13.3.1 Overview
13.3.2 Molivation
13.3.3 Operating System Examples
13.3.4 Computer Science Examples
13.3.5 Applicabilily
13.3.6 Consequences
13.3.7 Implementation Issue and
Variations
13.3.8 Related Design Technique
Space-Time Tradeoffs
13.4
13.4.1 Overview
13.4.2 Motivation
13.4.3 Computer Science Example
13.4.4 Applicability
13.4.5 Consequences
13.4.6 Implemenlation Issue and
Variations
13.4.7 Related Design Technique
13.5 Simple Analytic Models
13.5.1 Overview
13.5.2 Molivation
13.5.3 Operating System Example.
13.5.4 Applicability
13.5.5 Consequences
13.5.6 Implementation Issue and
Variations
13.6 Surnmary
13.6.1 Terminology
13.6.2 Review Queslion.
Problems
1/0 Devices
14.1 Devices and Controllers
14.1.1 Device Conlrollers
14.2 Terminal Devices*
14.2.1 Basic Terminals
14.2.2 Di.splay Commaius
14.2.3 Example Disptay Command.
14.2.4 Keyboard Event.s
14.2.5 Terminal Capability Database.
14.2.6 Vinual Tenninals
14.2.7 Terminal Intertaces
14.2.8 MouseDevices
14.2.9 Event Streams
14.2.10 Varieties ol'Two-
Proecsing
14.2.11 Graphics Terminals
14.2.12 Color and Color Maps
14.2.13 Command Oriented Graphic
14.2.14 X Temnals
14.2.15 Terminai Emulators
14.2.16 Virlual Terminals and Termina!
Emulators
14.2.17 PPP; a Nelwork EmulatDr
14.2.18 Modems
14.3 Communicalion Devices*
14.3.1 Serial Pons
14.3.2 Parallel Ports
14.3.3 Elhemef Devices
14.3.4 Other NetworkDevices
14.4 DiskDevices
14.4.1 Timing ot' a Disk Access
14.4.2 Floppy Dislts
14.4.3 RAIDDevices
14.5 Disk Controllers
14.6 SCSI Interfaces*
14.7 Tape Devices*
14.8 CDDevices*
14.9 Summary
14.9.1 Temiinology
14.9.2 Review Question
14.9.3 Funher Reading
14.10 Problems 613
15 1/0 Systems
15.1 1/0 System Software
15.1.1 Device Drivers
15-1.2 Device Driver Interfaces
15-1,3 The Two Categorie.s of Device
Drivers
15.1.4 The Block Device Inlert'ace
15.1.5 The Character Devicc Inlerface
15 1.6 Disk Device Driver Access Slrategies
15.2 Handling Disk Requests
15.2.1 Efficienily
15.2.2 Double Buffering -- An Aside
15.2.3 A Disk Scheduling Example
15.2.4 Sector Scheduling within Cylinder
Scheduling
15.2.5 Comhined Sectorand Cylinde
Schcduling
15.2.6 Real-Life Disk Head Scheduling

15.3 Modeling of Disks*
15.3.1 A Disk Scheduling Anomaly
15.3.2 Cylinder Correlations
15.3.3 A More Accurate Disk Model
15.4 Device numbers
15.5 Unification of Files and I/O Devices
15.6 Generalized Disk Device Drivers
15.6.1 Parlilioning Large Disks
15.6.2 romhining Disks into a Large
Logical Disk
15.6.3 RAMDisks
15.6.4 Memory as a Devic
15.6.5 Pseudo-ttys
15.7 DiskCaching
15.8 Two-Level Structure of Device
Drivers
15.9 SCSl Device Drivers
15.10 Examples of 1/0 Systems
15.11 Summary
15.11.1 Temlinology
15.11.2 Review Questions
15.11.3 Funher Reading
l.12 Problems
19.8.2 System Authentication
19.8.3 Other Methods ofAuthentication
19.8.4 Password Varianls
19.8.5 Identifying Objects
19.8.6 Identifying a Person
Mechanisms for Protecting Hardware
19.9 Resources
19.9.1 Processor Modes
19.9.2 Prolecting Hardware Resource
Representation of Protection
19.10Information
19.10.1 ObjectTypes
19.10.2 Operations On Objects
19.10.3 The Protection Database
19.10.4 Access Control Lists
19.10.5 Capability Lists
19.10.6 Modifying the Protection
Database
19.10.7 Protection Domains
19.10.8 Protection in Distributed Systpm
19.10.9 Caching Protection Data
19.10.10 Operations on Protection Objects
19.11Mechanisms for Software Protection
19.11.1 File Protection Example
19. i 1.2 Implementation of Protection
19.11.3 Protection Mechanisms and Securit
Policies 799
19.11.4 Variations in File Security
19.12 Examples of Protection Attacks
19.12.1 Browsing for Infonnation
19.12.2 Wiretapping of Communication
Lines
19.12.3 Trial and Error
19.12.4 Password Guessing
19.12.5 Searching Trash
19.12.6 TrapDoors
19.12.7 Running Other Peopl
Programs
Govemment Security Level
19.14 Protection Examples
19.14.1 Protection In Windows NT
19.14.2 Protection In OSF/l
19.14.3 Protection In UNIX
19.15 Extemal Security
19.15.1 Physical Security
19.15.2 Operational Security
19.15.3 NonTechnical Security Threats
The Use of Cryptography in Computer
19.16 Security
19.16.1 What Is Cryptography?
19.16.2 Some Basic Definition
19.16.3 Public and Private Key
Cryptosystems
19.16.4 Using Cryptography for Privac
19.16.5 Using Cryptography for
Authentication
19.16.6 Authenticating Public Key
19.17 Summary
19.17.1 Terminiogy
19.17.2 Review Questions
19.17.3 Further Reading
19.18 Problems
20 The Client-Server Model
20.1 Three Modes of Communication
20.2 System Processes
20.2.1 Overview
20.2.2 The Initial Process
20.2.3 System Constants
20.2.4 Initialization
20.2.5 Inlerrupt Handling
20.2.6 Handling System Calls
20.2.7 The System Call Handling Code
20.2.8 User Knowledge of Message Queu
Identifiers
20.2.9 Protection of Resources
20.2.10 Disk Intemupt Handler
20.2.11 Disk 1/0 System Process
20.2.12 Server Data Structures
20.3 Micro-Kemel Operating Systems
20.3.1 Tradeoffs of the Client Server
Model
20.3.2 Object-Oriented Operating
Systems
20.4 The Developments toward a Distributed
System
20.4.1 Networked Operating Systems
20.4.2 Distributed Operating Systems
20.5 Summary
20.5.1 Terminology
20.5.2 Review Questions
20.5.3 Funher Reading
20.6 Problems
Glossary G-l
References R-1
Index 1-1
· · · · · · (收起)

读后感

评分

评分

评分

评分

评分

用户评价

评分

这本书的排版和装帧真是让人眼前一亮,纸张的质感摸起来就很扎实,翻阅起来有一种沉静的仪式感。内容上,作者对系统底层原理的剖析极其深入,尤其是在内存管理和并发控制这两个核心领域,他没有满足于教科书式的描述,而是深入挖掘了现代操作系统在面对多核、异构计算等新挑战时所采取的工程决策背后的权衡取舍。我特别欣赏他引入的那些经典的、经过时间检验的算法范例,并辅以清晰的伪代码和流程图,这使得即便是初次接触这些复杂概念的读者,也能顺畅地跟上思路。阅读过程中,我感觉自己像是在一位经验极其丰富的系统架构师的指导下,一步步拆解一个庞大而精密的机器。对于那些希望从“会用”操作系统转向“理解和设计”操作系统的进阶读者来说,这本书无疑提供了一个极佳的、高屋建瓴的视角。它不只关注“是什么”,更着力于“为什么会这样设计”的深层逻辑,这在同类书籍中是极为难得的。

评分

这本书在对现代分布式系统的集成方面做得尤为出色,它并没有将分布式理论与内核理论割裂开来,而是将它们编织成了一个连续的、相互影响的整体。作者非常敏锐地捕捉到了现代云原生应用对传统操作系统模型提出的挑战,并在讨论虚拟化和容器化技术时,清晰地展示了宿主机操作系统如何通过新的机制(如cgroups和namespaces)来重新定义资源隔离和调度的边界。这种与时俱进的视角,让这本书在浩瀚的技术丛书中显得格外有生命力。它没有停留在过去某一个特定操作系统的代码实现上,而是提炼出了那些可以跨越技术栈、代代相传的设计原则。对于希望构建下一代高性能、高弹性的计算平台的技术人员来说,这本书提供的理论基础和前瞻性观点,是搭建坚实地基不可或缺的材料。

评分

我以一个软件工程师的身份来评价这本书,坦率地说,它在某些章节的理论深度上,几乎达到了可以作为研究生课程教材的水平,但它的叙述方式却保持了极高的可读性。作者擅长通过构建具体的、贴近现实工作场景的案例来阐释抽象的理论,这极大地降低了学习曲线。比如,在讨论I/O子系统的调度策略时,作者不仅仅罗列了各种调度算法的优劣,而是详细分析了在数据中心级别负载均衡情境下,特定算法如何通过减少尾部延迟来优化整体用户体验的。这种将纯理论与实际性能指标紧密结合的写法,对于我们日常进行性能调优和系统优化工作的人员来说,具有极高的参考价值。我合上书本时,脑海中已经自动生成了好几张关于如何重构我们现有服务间通信机制的草图,这证明了这本书的启发性远远超出了单纯的知识传授范畴,它真正激发了读者的创造性思维。

评分

作为一名对计算机底层架构抱有浓厚兴趣的爱好者,我发现这本书的价值不仅在于它所教授的知识,更在于它所构建的思维模型。它构建了一个非常清晰的层级结构,从最底层的硬件交互,到中间的调度和资源分配,再到顶层的应用接口,每一步的逻辑递进都无懈可击。作者对历史上的经典操作系统设计错误和成功经验进行了精彩的对比分析,这使得学习过程充满了戏剧性和故事性,完全没有传统技术书籍那种枯燥感。比如,在讲解系统调用接口设计时,作者花了很大篇幅回顾了早年UNIX和Plan 9在这一问题上的哲学差异,这种跨越时空的对话,让读者对“什么是好的抽象”有了更深刻的体悟。这本书是那种需要耐下心来,逐句研读,并时不时停下来回味的著作,它更像是一趟深入机器灵魂的朝圣之旅,而非快速扫过的信息流。

评分

这本书的叙事风格,如果用一个词来形容,那就是“务实的理想主义”。它在追求对操作系统核心概念的完备性和优雅性的同时,从未脱离工程实践的土壤。我特别喜欢作者在章节末尾设置的“设计抉择点”回顾,这些小节精炼地总结了在设计一个特定模块(比如虚拟化层或文件系统)时,面临的多重矛盾——性能与安全、抽象与效率、向前兼容与技术革新——作者公正地展示了每种选择的长期后果。这种成熟、不偏不倚的论述,让人避免了陷入非黑即白的误区,培养了一种更具韧性和洞察力的系统观。我感觉这本书更像是一本高级工程师的“心法秘籍”,它传授的不是固定的API调用,而是一套面对未知技术难题时,可以被复用的、健全的决策框架。对于我这种习惯了快速迭代、但偶尔会迷失在技术细节中的开发者来说,这本书提供了必要的锚点和方向感。

评分

评分

评分

评分

评分

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 qciss.net All Rights Reserved. 小哈图书下载中心 版权所有