书籍详情
操作系统:英文版
作者:(美)加里·J.纳特(Gary J.Nutt)著
出版社:机械工业出版社
出版时间:2005-03-14
ISBN:9787111158943
定价:¥79.00
购买这本书可以去
内容简介
本书是目前国际上采用率最高的操作系统教科书之一,因为在介绍现代操作系统的基本原理和使用来自Linux、UNIX和Windows的实例进行实践上取得了极佳的平衡,而广受好评。本书有助于深化读者对现代操作系统的理解和应用。在第3版中,作者对操作系统的原理的介绍覆盖面更广,并让读者有更多的机会来实践现实世界的例子。本书内容包括: ●使用最通用的操作系统作为原理举例及上机环境,包括Linux、UNIX和Windows的机会。 ●包含了更多的实验!比前一版本的例子要多一倍,给了学生很多实际操作Linux、UNIX和Windows的机会。 ●加入或更新了以下信息: ■手持和无线系统 ■安全 ■线程,包括UNIX和Windows线程 ■SMP/多处理机 ■存储媒体,包括DVD和其他ISO 9000设备
作者简介
加里J.纳特,任教于科罗拉多大学计算机系。他曾在著名的施乐PARC研究中心和贝尔实验室担任研究员。他的研究领域包括操作系统、分布式系统和协作技术。
目录
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
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
猜您喜欢