书籍详情

面向设计方法的操作系统

面向设计方法的操作系统

作者:C.Crowley

出版社:世界图书出版公司

出版时间:1999-04-01

ISBN:9787506241182

定价:¥100.00

购买这本书可以去
内容简介
暂缺《面向设计方法的操作系统》简介
作者简介
暂缺《面向设计方法的操作系统》作者简介
目录
     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
   
猜您喜欢

读书导航