操作系统:英文版

操作系统:英文版
作 者: 加里·J 纳特
出版社: 机械工业出版社
丛编项: 经典原版书库
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 计算机/网络 操作系统/系统开发
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  加里J.纳特,任教于科罗拉多大学计算机系。他曾在著名的施乐PARC研究中心和贝尔实验室担任研究员。他的研究领域包括操作系统、分布式系统和协作技术。

内容简介

本书是目前国际上采用率最高的操作系统教科书之一,因为在介绍现代操作系统的基本原理和使用来自Linux、UNIX和Windows的实例进行实践上取得了极佳的平衡,而广受好评。本书有助于深化读者对现代操作系统的理解和应用。在第3版中,作者对操作系统的原理的介绍覆盖面更广,并让读者有更多的机会来实践现实世界的例子。本书内容包括: ●使用最通用的操作系统作为原理举例及上机环境,包括Linux、UNIX和Windows的机会。 ●包含了更多的实验!比前一版本的例子要多一倍,给了学生很多实际操作Linux、UNIX和Windows的机会。 ●加入或更新了以下信息: ■手持和无线系统 ■安全 ■线程,包括UNIX和Windows线程 ■SMP/多处理机 ■存储媒体,包括DVD和其他ISO 9000设备

图书目录

Chapter1INTRODUCTION1

1.1COMPUTERSANDSOFTWARE3

GeneralSystemSoftware4

ResourceAbstraction7

Example:AnAbstractionofaDiskDrive9

ResourceSharing11

AbstractMachinesandTransparentResourceSharing11

ExplicitResourceSharing16

1.2OPERATINGSYSTEMSTRATEGIES18

BatchSystems20

TheUser'sPerspective20

BatchProcessingTechnology22

Example:BatchFiles23

TimesharingSystems23

TheUser'sPerspective24

TimesharingTechnology24

Example:TheUNIXTimesharingSystem26

PersonalComputersandWorkstations27

TheUser'sPerspective28

OSTechnology28

ContributionstoModemOSTechnology29

Example:TheMicrosoftWindowsOSFamily29

EmbeddedSystems31

TheUser'sPerspective31

OSTechnology32

ContributionstoModemOSTechnology33

Example:VxWorks33

Small,CommunicatingComputers34

TheUser'sPersepective34

OSTechnology34

Example:WindowsCE(PocketPC)36

Chapter2Networks37

TheGenesisofModernOperatingSystems38

1.3SUMMARY38

1.4EXERCISES39

USINGTHEOPERATINGSYSTEM42

2.1THEPROGRAMMER'SABSTRACTMACHINE42

SequentialComputation44

MultithreadedComputation46

2.2RESOURCES47

UsingFiles48

Example:POSIXFiles48

Example:WindowsFiles50

UsingOtherResources52

2.3PROCESSESANDTHREADS52

CreatingProcessesandThreads55

FORK(),JOIN(),andQUIT():TheHistoricalPerspective55

Example:UsingFork(),JOIN(),andQUIT()56

ClassicProcessCreation57

CreatingModemProcessesandThreads58

2.4WRITINGCONCURRENTPROGRAMS58

MultipleSingle-ThreadedProcesses:TheUNIXModel58

Example:ExecutingCommandsinUNIX61

MultipleProcessesandMultipleThreadsPerProcess:TheWindowsModel65

Example:LaunchingWindowsProcesses68

2.5OBJECTS72

2.6SUMMARY74

2.7EXERCISES74

LabExercise2.1ASIMPLESHELL76

Background76

AttackingtheProblem81

LabExercise2.2AMULTITHREADEDAPPLICATION83

Background83

AttackingtheProblem86

Chapter3OPERATINGSYSTEMORGANIZATION89

3.1BASICFUNCTIONS9O

DeviceManagement90

Process,Thread,andResourceManagement92

MemoryManagement93

FileManagement94

3.2GENERALIMPLEMENTATIONCONSIDERATIONS94

Performance95

ExclusiveUseofResources95

ProcessorModes96

Kernels98

RequestingServicesfilomtheOperatingSystem99

SoftwareModularizafion101

3.3CONTEMPORARYOSKERNELS103

UNIXKernels104

Example:Linux106

TheWinmdowsNTExecutiveandKernel107

3.4SUMMARY110

3.5EXERCISES1lO

LabExercise3.1OBSERVINGOSBEHAVIOR112

Background113

AttackingtheProblem113

Chapter4COMPUTERORGANIZATION115

4.1THEVONNEUMANNARCHITECTURE115

EvolvingtotheyonNeumannArchitecture116

TheBasicIdea116

4.2THECENTRALPROCESSINGUNIT119

TheArithinetica!-LogicalUnit119

TheConUolUnit121

ImplementingtheProcessor122

4.3THEPRIMARY(EXECUTABLE)MEMORY124

4.4I/ODEVICES125

DeviceControllers126

DirectMemoryAccess128

Memory-MappedI/O129

4.5INTERRUPTS131

TheTrapInstructionRevisited135

4.6CONVENTIONALCONTEMPORARYCOMPUTERS136

BootstrappingtheMachine137

4.7MOBILECOMPUTERS139

System-on-a-ChipTechnology140

PowerManagement141

Example:TheItsyMobileComputer142

4.8MULTIPROCESSORSANDPARALLELCOMPUTERS143

ParallelInstructionExecution143

ArrayProcessors145

SharedMemoryMulfiprocessors146

DistributedMemoryMultiprocessors146

NetworkofWorkstations147

4.9SUMMARY147

4.10EXERCISES148

Chapter5DEVICEMANAGEMENT152

5.1THEI/OSYSTEM152

DeviceManagerAbstraction153

FO-ProcessorOverlapwithinanApplication155

I/O-ProcessorOverlapacrossThreads157

5.2I/OSTRATEGIES158

DirectFOwithPolling159

Interrupt-DrivenFO160

PollingVersusInterrupt-DrivenFOPerformance162

5.3DEVICEMANAGERDESIGN163

Device-dependentDriverInfrastructureFramework164

ServicingInterrupts165

Example:LinuxDeviceI/O168

5.4BUFFERING170

5.5DEVICECLASSCHARACTERISTICS174

CommunicationDevices175

Example:AsynchronousSerialDevices177

SequentiallyAccessedStorageDevices178

Example:TraditionalMagneticTape179

RandomlyAccessedStorageDevices179

Example:MagneticDisk180

Example:OptimizingAccessonMagneticDisks182

Example:CD-ROMandDVD186

5.6SUMMARY188

5.7EXERCISES188

LabExercise5.1AFLOPPYDISKDRIVER190

Background191

AttackingtheProblem194

Chapter6IMPLEMENTINGPROCESSES,THREADS,AND

RESOURCES197

6.1THETASKATHAND197

TheAbstractMachineforClassicProcesses199

SupportingModemProcessesandThreads200

Resources202

TheProcessAddressSpace203

OSFamilies204

ProcessManagerResponsibilities205

6.2THEHARDWAREPROCESS206

6.3THEABSTRACTMACHINEINTERFACE208

6.4THEPROCESSABSTRACTION211

Example:LinuxProcessDescriptor214

Example:WindowsNT/2000/XPProcessDescriptors215

6.5THETHREADABSTRACTION216

Example:LinuxThreadDescriptor217

Example:WindowsNT/2000/XPThreadDescriptors218

6.6STATEDIAGRAMS219

Example:UNIXStateDiagram221

6.7RESOURCEMANAGERS222

6.8GENERALIZINGPROCESSMANAGEMENTPOLICIES226

RefiningtheProcessManager227

SpecializingResourceAllocationStrategies228

6.9SUMMARY228

6.10EXERCISES229

LabExercise6.1KERNELTIMERS232

Background232

AttackingtheProblem235

LabExercise6.2MANIPULATINGKERNELOBJECTS240

PartA240

PartB240

PartC240

Background240

PassingHandlestoOtherProcesses245

AttackingtheProblem249

Chapter7SCHEDULING251

7.1OVERVIEW251

7.2SCHEDULINGMECHANISMS253

TheProcessSchedulerOrganization253

SavingtheContext254

VoluntaryCPUSharing256

InvoluntaryCPUSharing258

Performance259

7.3STRATEGYSELECTION260

SchedulerCharacteristics260

AModeltoStudyScheduling261

Example:PartitioningaProcessintoSmallProcesses263

7.4NONPREEMPTIVESTRATEGIES264

First-come-first-served265

Example:PredictingWaitTunesforFCFS267

ShortestJobNext267

Example:AppmximatingSystemLoad264

PriorityScheduling268

DeadlineScheduling270

7.5PREEMPTIVESTRATEGIES271

RoundRobin272

Multiple-LevelQueues274

7.6IMPLEMENTINGTHESCHEDULER275

Example:TheLinuxSchedulingMechanism276

Example:BSDUNIXSchedulingPolicy278

Example:WindowsNT/2000/XPThreadScheduling279

7.7SUMMARY279

7.8EXERCISES280

LabExercise7.1ANALYZINGTHEROUNDROBIN

SCHEDULING283

Background284

AttackingtheProblem288

chapter8BASICSYNCHRONIZATIONPRINCIPLES290

8.1COOPERATINGPROCESSES290

CriticalSections295

Deadlock300

ResourceSharing303

8.2EVOLVINGFROMTHECLASSICSOLUTION303

8.3SEMAPHORES:THEBASISOFMODERNSOLUTIONS306

PrinciplesofOperation307

Es,ample:UsingSemaphores309

PracticalConsiderations315

8.4SYNCHRONIZATIONINSHAREDMEMORY

MULTIPROGESSORS320

8.5SUMMARY321

8.6EXERCISES321

LabExercise8.1BOUNDEDBUFFERPROBLEM326

Background326

AttackingtheProblem334

chapter9HIGH-LEVELSYNCHRONIZATIONAND

INTERPROCESSCOMMUNICATION335

9.1ALTERNATIVESYNCHRONIZATIONPRIMITIVES335

ANDSynchronization337

Example:UsingANDSynchronizationtoSolvetheDining

PhilosophersProblem339

Events340

Example:UsingGenericEvents341

Example:WindowsNT/2000/XPDispatcherObjects342

9.2MONITORS344

PrinciplesofOperation344

ConditionVariables345

Example:UsingMonitors348

SomePracticalAspectsofUsingMonitors352

9.3INTERPROCESSCOMMUNICATION352

ThePipeModel353

MessagePassingMechanisms354

Mailboxes354

MessageProtocols355

Usingthesend()andreceive()Operations356

Example:SynchronizedIPC358

DeferredMessageCopying358

9.4SUMMARY359

9.5EXERCISES360

LabExercise9.1USINGPIPES363

Background364

AttackingtheProblem369

LabExercise9.2REFININGTHESHELL371

Background371

AttackingtheProblem373

Chapter10DEADLOCK374

1O.1BACKGROUND374

Prevention378

Avoidance379

DetectionandRecovery379

ManualDeadlockManagement380

10.2ASYSTEMDEADLOCKMODEL380

Example:SingleResourceType382

10.3PREVENTION384

HoldandWait385

CircularWait386

AllowingPreemption388

10.4AVOIDANCE389

TheBanker'sAlgorithm392

Example:UsingtheBanker'sAlgorithm393

10.5DETECTIONANDRECOVERY395

SeriallyReusableResources396

Fa'ample:SeriallyReusableResourceGraphs401

ConsumableResources403

GeneralResourceSystems408

Recovery408

10.6SUMMARY410

10.7EXERCISES410

Chapter11MEMORYMANAGEMENT414

11.1THEBASICS415

11.2THEADDRESSSPACEABSTRACTION419

ManagingtheAddressSpace419

Example:StaticAddressBinding422

DynamicMemoryforDataStructures427

ModemMemoryBinding427

11.3MEMORYALLOCATION429

Fixed-PartitionMemoryStrategies430

Variable-PartitionMemoryStrategies431

Example:TheCostofMovingPrograms433

ContemporaryAllocationStrategies436

11.4DYNAMICADDRESSSPACEBINDING436

RuntimeBoundChecking:TheIsolationMechanism440

11.5MODERNMEMORYMANAGERSTRATEGIES441

Swapping442

VirtualMemory444

Example:UsingCacheMemory446

Shared-MemoryMultiprocessors447

11.6SUMMARY450

11.7EXERCISES451

LabExercise11.1USINGSHAREDMEMORY454

Background454

AttackingtheProblem458

Chapter12VIRTUALMEMORY460

12.1THETASKATHAND460

12.2ADDRESSTRANSLATION462

AddressSpaceMapping462

SegmentationandPaging464

12.3PAGING466

PagingVirtualAddressTranslation468

Example:ContemporaryPageTableImplementations472

12.4STATICPAGINGALGORITHMS473

TheFetchPolicy474

DemandPagingAlgorithms475

StackAlgorithms479

ImplementingLRU480

PagingPerformance481

12.5DYNAMICPAGINGALGORITHMS483

TheWorkingSetAlgorthm483

Example:WorkingSetAlgorithm485

ImplementingtheWorkingSetAlgorithm487

Example:TakingAdvantageofPagingwithIPC489

Example:WindowsNT/2000/XPVirtualMemory489

Example:LinuxVirtualMemory493

12.6SEGMENTATION495

AddressTranslation495

Implementation497

Example:TheMulticsSegmentationSystem500

12.7MEMORY-MAPPEDFILES502

12.8SUMMARY504

12.9EXERCISES505

LabExercise12.1MEMORY-MAPPEDFILES508

Background508

AttackingtheProblem511

Chapter13FILEMANAGEMENT514

13.1THETASKATHAND514

13.2FILES516

Low-levelFiles520

StructuredFiles521

DatabaseManagementSystems527

MultimediaStorage528

13.3LOW-LEVELFILEIMPLEMENTATIONS528

TheOPEN()andCLOSE()Operations529

Example:UNIXOpenandClose532

BlockManagcmcnt534

Example:UNIXFileStructure537

Example:TheDOSFATFileSystem539

ReadingandWritingtheByteStream541

13.4SUPPORTINGHIGH-LEVELFILEABSTRACTIONS544

StructuredSequentialFiles545

IndexedSequentialFiles545

DatabaseManagementSystems546

MultimediaDocmnants546

13.5DIRECTORIES546

DirectoryStructures547

Example:SomeDirectoryApproaches549

13.6IMPLEMENTINGDIRECTORIES551

DirectoryEntries551

OpeningaFile552

13.7FILESYSTEMS552

Example:TheISO9660FileSystem553

MountingFileSystems556

HeterogeneousFileSystems557

13.8SUMMARY558

13.9EXERCISES559

LabExercise13.1ASIMPLEFILEMANAGER561

Background562

AttackingtheProblem564

Chapter14PROTECTIONANDSECURITY568

14.1THEPROBLEM568

TheGoal570

PolicyandMechanism571

ContextforProtectionandSecurity573

TheCostofProtectionMechanisms575

14.2AUTHENTICATION575

ExternalUserAuthentication576

Example:WindowsNT/2000/XPUserAuthentication579

InternalThread/ProcessAuthentication583

AuthenticationintheNetwork583

SoftwareAuthentication586

14.3AUTHORIZATION588

AdHocAuthorizationMechanisms590

AGeneralModelforAuthorization592

ImplementingSecurityPolicies595

ImplementingGeneralAuthorizationMechanisms597

ProtectionDomains598

ImplementingtheAccessMatrix600

14.4CRYPTOGRAPHY604

TheBigPicture605

PrivateKeyEncryption606

PublicKeyEncryption609

Example:PGPEncryption610

InternetContentDelivery610

14.5SUMMARY612

14.6EXERCISES612

Chapter15NETWORKS615

15.1FROMCOMPUTERCOMMUNICATIONSTONETWORKS616

SwitchedNetworks616

NetworkHardwareRequirements618

NetworkSoftwareRequirements619

15.2THEISOOSINETWORKARCHITECTUREMODEL621

TheEvolutionofNetworkProtocols621

TheISOOSIModel622

15.3MEDIAACCESSCONTROL(MAC)PROTOCOLS625

ThePhysicalLayer626

Example:FastPhysicalLayers628

TheDataLinkLayer629

ContemporaryNetworks630

15.4THENETWORKLAYER632

InternetAddresses635

Routing636

UsingtheNetworkLayer638

Example:LatencyintheIntemet639

15.5THETRANSPORTLAYER640

CormmunicationPorts640

DataTypes641

ReliableCommunication642

Example:DatagramsandVirtualCircuits643

1S.6USINGTHETRANSPORTLAYER644

NamingandAddresses644

Example:TheDomainNameService646

TheClient-ServerModel646

15.7NETWORKSECURITY648

TransportLayerSecurity:Firewalls649

NetworkLayerSecurity:IPSEC651

15.8SUMMARY651

15.9EXERCISES652

LabExercise15.1USINGTCP/IP655

Background655

Example:TheWinSoekPackage656

AttackingtheProblem661

Chapter16REMOTEFILES662

16.1SHARINGINFORMATIONACROSSTHENETWORK662

ExplicitFileCopyingSystems665

ASeamlessFileSystemInterface667

DistributingtheWork669

16.2REMOTEDISKSYSTEMS671

RemoteDiskOperation672

PerformanceConsiderations674

Reliability675

TheFutureofRemoteDisks678

16.3REMOTEFILESYSTEMS678

TheGeneralArchitecture679

BlockCaching680

CrashRecovery683

16.4PILE-LEVELCACHING686

TheAndrewFileSystem687

TheLOCUSFileSystem688

16.5DIRECTORYSYSTEMSAND

THEIRIMPLEMENTATIONS690

Filenames690

OpeningaFile692

16.6SUMMARY69:3

16.7EXERCISES694

Chapter17DISTRIBUTEDCOMPUTING696

17.1DISTRIBUTEDOSMECHANISMS696

17.2DISTRIBUTEDPRIMARYMEMORY699

RemoteMemory703

Example:TheLindaProgrammingLanguage704

DistributedSharedMemory706

17.3REMOTEPROCEDURECALL708

HowDoesRPCWork?708

ImplementingRPC710

17.4REMOTEOBJECTS714

ThcEmeraldSystem714

CORBA715

JavaRanoteObjects717

17.5DISTRIBUTINGPROCESSMANAGEMENT718

GeneralProcessManagement718

ProcessandThreadCreation719

Scheduling720

MigrationandLoadBalancing720

DistributedSynchronization721

17.6SUMMARY727

17.7EXERCISES728

LabExercise17.1USINGREMOTEPROCEDURECALL730

Background730

AttackingtheProblem738

Chapter18DISTRIBUTEDPROGRAMMING

RUNTIMESYSTEMS739

18.1SUPPORTINGDISTRIBUTEDSOFTWARE

WITHMIDDLEWARE739

18.2CLASSICDISTRIBUTEDAPPLICATIONPROGRAMS740

18.3MIDDLEWARESUPPORTFORCLASSIC

DISTRIBUTEDPROGRAMMING742

PVM743

TheBeowulfClusterEnvironment746

TheOSFDistributedComputingEnvironment747

18.4DISTRIBUTEDPROGRAMMING

ONTHEWEB7SS

18.5MIDDLEWARESUPPORTFORMOBILECODE756

JavaandtheJavaVirtualMachine757

TheECMA-335CommonLanguageInfrastructure763

18.6SUMMARY770

18.7EXERCISES771

Chapter19DESIGNSTRATEGIES772

19.1DESIGNCONSIDERATIONS772

Performance,Performance,Performance773

TrustedSoftware774

Modularization774

Portability778

19.2MONOLITHICKERNELS778

Example:TheUNIXKernel779

Example:MS-DOS779

19.3MODULARORGANIZATION781

Example:Choices:AnObject-OrientedOS781

19.4EXTENSIBLENUCLEUS,ORMIGROKERNEL,

ORGANIZATION784

Example:TheMACHOperatingSystem785

19.5LAYEREDORGANIZATIONS793

19.6OPERATINGSYSTEMSFORDISTRIBUTEDSYSTEMS795

NetworkOperatingSystems795

Example:BSDUNIX796

DistributedOperatingSystems797

Example:TheCHORUSOperatingSystem798

19.7SUMMARY802

19.8EXERCISES803

Chapter20THELINUXKERNEL804

20.1THELINUXKERNEL804

20.2KERNELORGANIZATION804

UsingKernelServices805

Daemons807

StartingtheKernel808

ControlIntheMachine808

20.3MODULESANDDEVICEMANAGEMENT809

ModuleOrganization809

ModuleInstallationandRemoval810

20.4PROCESSANDRESOURCEMANAGEMENT810

RunningtheProcessManager812

CreatingaNewTask813

IPCandSynchronization814

TheScheduler815

20.5MEMORYMANAGER817

THeVirtualAddressSpace819

ThePageFaultHandler819

20.6FILEMANAGEMENT821

20.7SUMMARY824

Chapter21THEWINDOWSNT/2OOO/XPKERNEL826

21.1INTRODUGTION826

21.2THENTKERNEL828

Objects828

Threads829

MultiprocessSynchronization829

Traps,Interrupts,andExceptions830

21.3THENTEXECUTIVE831

ObjectManager831

ProcessandThreadManager833

VirtualMemoryManager834

I/OManager835

TheCacheManager837

21.4KERNELLOCALPROCEDURECALLSANDIPC840

TheNativeAPl841

21.5SUBSYSTEMS841

21.6SUMMARY843

GLOSSARY844

BIBLIOGRAPHY873

INDEX878