圖書詳細信息
ISBN:9787302172765
定價:69元
印次:1-1
裝幀:平裝
印刷日期:2008-5-4
作者:Andrew S. Tanenbaum
圖書簡介
本書是著名作者Andrew S. Tanenbaum關於作業系統的權威教材。
多數作業系統的教材只重理論而輕實踐,本書力圖實現這兩者之間的平衡。本書首先詳細探討了作業系統的基本原理,如進程、進程間通信、信號量、訊息傳遞、調度算法、輸入/輸出、死鎖、設備驅動程式、存儲管理、調頁算法、檔案系統設計、安全和保護機制等,然後詳細討論了一個具體的作業系統MINIX3的實現,並給出了該系統的完整原始碼,以便於讀者仔細研究。這樣不僅可以讓讀者掌握作業系統的基本原理,而且可讓讀者明白這些基本原理如何套用到實際作業系統設計中去,從而提供讀者的實際設計和實現能力。
本書可以作為高等院校計算機及相關專業“作業系統”的雙語教材,對程式開發人員、工程技術人員、系統架構師等專業人員也具有很高的參考價值。
目錄
1INTRODUCTION1
I.IWHATISANOPERATJNGSYSTEM?4
1.1.ITheOperatingSystemasallExte17dcdMachine4
1,12TheOperatingSystemasaRcsollrceManager5
1.2HISTORYOFOPERATINGSYSTEMS6
l.2.1TheFirstGeneration(194555)VacuumTubesandPlugboards7
l.2.2TheSecondGeneration(1955to5)TransistorsandBatchSystems7
123TheThirdGeneration(19651980)ICSandMuItIVrogramming9
1.24TheForthGeneration(1980--Present)PersonalComputers13
I.2.5HistoryofMINce314
I.3OPERATINGSYSTEMCONCENS17
1.3.1Processes18
1.3.2FileS20
I.3.3TheShell23
].4SYSTEMCALLS24
14.1SystemCallsforPIDccssManagement25
I42SystemCa]IS,orS]gnaIing29
].43SystemCa]]s[orFileManagement31
1.44SystemCa]]starDirectoryManagement36
l.4.5SystemCallsforProtection38
1,46SystemCallsF()rTirncManagement40
'vCONTENTS
15OPER-ATINGSYSTEMSTRUCTURE40
1.5.IMonolithicSyslems40
1,5,2LayeredSystems43
1,5,3VirtualMachines44
1.5.4Exokernels47
I.5.5C]ientServerMOdel47
16OUTLINEOFTINRESTOFTHISBOOK49
I.7SUMMARY49
2PROCESSES53
2.1INTRODUCTIONTOPROCESSES53
2.1.ITheProcessModel54
2.1.2Pr'>ccssCreation55
2,l.3ProcessTermination57
2.l.4ProcessIJierarchies58
2.l.5ProcessStates58
2.1.6lmplementahonorPr(wesses60
2.1.7Threads62
22INTERPROCESSCOMMUNICATION
2.2]RaceCOndihons67
2.22CrIticalSechons68
223MutualExclusionwithBusyWaitillg69
2.2.4SleepandWateup74
2.2.5Semaphores76
2.2.6Mutexes79
2.2.7MnIIItI)rs79
2.2.8MessagePassing83
2.3CLASSICALIPCPROBLEMS86
2.3.1TheDiningroiIOSOpIIersProbICm87
2.3.2TheReadersandWritersPI.oblelll90
24SCHEDULING91
2.4.]IIIiroductIOntoSCneduIing92
2.4.2Schedu]]nginbatchSystems97
243SchedulingininleractiveSystems100
244SchedlllillginRealTimeSystems107
245POlICyvirtueMechaIIism108
246ThreadSChedII]Ing108
CONTENTSV
2.5OVERVIEWOFPROCESSESINMINIX3110
2.5.1TheInternalStructureofMINIX3110
25.2ProcessManagementinMINIs3114
2.5.3InterprocessC()mmunlcationinMINIX3118
2.5.4DOCedsSChedulinginMIDIs3120
2.6IMPLEMENTAnONOFPROCESSESINMINIX3123
26.Iorgamzationof[heMINIX3S',urccCOde123
2.6.2COmpilingandAnnulingMINix3126
2.6.3TheCommonHeaderFiles128
2.6.4TheMINIX3Headerr.IIes136
2.6.5ProcessDataSrtucturesandHeaderFJles144
26.6BOOtstrappingMIN]X3154
26.7SysteminitiaIIZation158
2.68InterrIIptHanoIinginMINce3]65
2.6.9InterprocessColnmunlcatloninaleX3176
2.6.10SChedulinginMINIX3180
2.6.11HardwareDependentKernelSllpport183
26.]2UtilitiesandlhcKernelLibl+ary188
27THESYSTEMTASKINMINIX3190
2.7.1Overviewof'theSystemTask192
2.7.2Implementationot'theSyslernTask195
2.7.3hoplemelltaiionoftheSystemLibarary198
2.9THECLOCKTASKINMINIX3202
2.8.1ClockHardware202
28.2ClOCkSOftwareZOo
2.8.3OverviewoftheClockDriverinMINix3206
2.8.4Implementat)onoftheClOckDiverinMINIX3210
2.9SUMMARY212
3INPUTIOUTPUT219
3.1PRINC]PLESOFCOHARDWARE220
31.1I/oDevices221
31.2DeviceCOntrollers221
313MeInory-MappedI/o223
3.].4Interrupts224
3.1.5DirectMemoryAccess225
3.2PRINCIPLESOFI/OSOFTWARE227
3.2.]CoalsoftheUOSoftware227
3.22InterruptIJandlers229
3.2.3DeviceDnvers220
3.2.4Device-independentl/OSot'lware231
3.2.>UserSpaceilOSoftware234
3.3DEADLOCKS235
3.3.1Resources236
3.3.2PrinciplesofDCadIOCk237
3.3.3TheOstrichAlgorlthln240
3.3.4DetectionandRccovery242
3.3.5DCadIOCkWevenIIOn243
3.36DeadlOCkAVOIdance245
34OVERVIEWOFI/OINMINIX3250
3.4.1InterruptHandIersinMINIX3250
3.4.2DCVice13riversinM]N]X3254
3.4.3Device-IndependentCOSOftwareinMINIX3257
3.4.4USCr]eveIWSOftwareinMINX3258
345DeauIOCkHandlInginMINIX3258
3.5BLOCKDEVICESINMINIX3259
35.1OVerviewofBlOCkDeviceDnt/crsinMINix3260
35.2CommonBlockDeviceDriverSoltwure263
3.5.3TheDnaalLibrmp267
36~DISKS269
3.6.]RAMDiskHardwtireandSol'twarc269
3.62OVCrviewofmeAMDiskDriverinMINIX3271
3.6.3I]nplemental]onoftheRAMD]skDnverinMIN]X3272
3.7DISKS276
3.7.1D]skHaTdware276
3.7.2RAID278
3.7.3DISkSO,tware279
3.7.4OverylewoftheHa]+dDiskDnverinMINce3285
3.75Inlplemcntationot'theHadDiskDTiverinMINIX3288
3.76FIOnpyDISkHandling298
38TErmINALS30U
38.1TerminalHaTdwarc301
3.8.2Temlina]Software305
3.8.3OverviewoftheTerminalDnver111MINIX3314
3.8.4ImplementationoftheDevice-independentTerminalaliver329
CON~TSVii
3.8.5IruplemeotationoftheKeyboardDriver348
3.8.6imPlementationoftheD]splnyDnver355
3.9SUMMARY364
4MEMORYMANAGEMENT371
4.]BASICMEMORYMANAGEMENT372
4.l.lMonoprogrammingwithoutSwappingorPaging372
4.l.2MultiprograrnmingwithFixedParutions373
4.l.3RelocationandPr(,tectlon375
4.2SWAPPING376
4.2.1MemoryManagementwithBlimaps378
4.2.2MemoryManagementwithLinkedLists379
4.3VIRTUALMEMORY381
4.3.1PagIng382
4.3.2PageTabbIed386
43.3TLBS--TranslationLOOkasideBull.ers390
4.3.4InvertedPageTables393
4.4PAGEREPLACEMENTALGORITHMS394
44.ITheOptinmlPageReplacementAlgorithms395
4.4.2TheNc)tRecentlyUsedPageReplacementAlgorithm396
4.4.3TheFirst-in.FITSt-Ollt(FIFO)PageRcplaccmcntAlgorithm397
4.4.4TheSecondChancePaceReplacementAlgorithm397
4.4.5TheClockPageRcplaccmcntA]gorithm398
446TheLeastRecentlyUsed(LRU)PageReplacementAlgorithm399
447SimulatingLRUinSoftware399
4.5DESIGNISSUESFORPAGINCSYSTEMS402
451TheWOrkingSetMOdel402
4.5.2LocalvereusGlobalAllocationPOlicies404
4.53PangsSize406
4.5.4VirtualMemoryIntcrfMc408
4.6SEGMENTAnON405
4.6.]ImplementationofporeSegmentation412