面向设计方法的操作系统

面向设计方法的操作系统
作 者: C.Crowley
出版社: 世界图书出版公司
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 设计
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《面向设计方法的操作系统》作者简介

内容简介

暂缺《面向设计方法的操作系统》简介

图书目录

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