圖書簡介
本書是作者在清華大學計算機系多年教學經驗和科研成果的基礎上,配合清華大學計算機系列教材之一的《計算機作業系統教程》(第4版)而編寫的相關習題解答和實驗指導。全書分為兩大部分: 第一部分是《計算機作業系統教程》(第4版)中各章習題的參考解答和部分碩士研究生入學考試用題及解答;第二部分為清華大學計算機系作業系統課程教學用實驗指導及相應的程式設計與原始碼分析。實驗主要設計在Linux環境下用C語言編程完成,也可在UNIX系統Ⅴ或其他更高版本的UNIX環境下完成。
本書既可作為計算機專業和其他相關專業作業系統課程的補充教材,也可供有關人員自學,或供作業系統等系統設計人員閱讀和參考。
目錄
第一部分習題解答1
第1章緒論3
第2章作業系統用戶界面5
第3章進程管理9
第4章處理機調度21
第5章存儲管理27
第6章進程與存儲管理示例33
第7章Windows的進程與記憶體管理37
第8章檔案系統43
第9章設備管理49
第10章Linux檔案系統53
第11章Windows的設備管理和檔案系統56
第12章嵌入式作業系統簡介59
綜合試題61
作業系統綜合練習試題161
作業系統綜合練習試題1解答62
作業系統綜合練習試題264
作業系統綜合練習試題2解答65
作業系統綜合練習試題368
作業系統綜合練習試題3解答68
第二部分實驗指導71
系統調用函式說明、參數值及定義73
實驗1進程管理80
實驗2進程間通信82
實驗3存儲管理83
實驗4檔案系統設計85
實驗1指導86
實驗2指導94
實驗3指導98
實驗4指導107
第1章實驗0:作業系統實驗準備1
1.1實驗目的1
1.2準備知識1
1.2.1了解OS實驗1
1.2.2設定實驗環境2
1.2.3了解編程開發調試的基本工具14
1.2.4基於硬體模擬器實現源碼級調試23
1.2.5了解處理器硬體31
1.2.6了解ucore編程方法和通用數據結構34
第2章實驗1:系統軟體啟動過程41
2.1實驗目的41
2.2實驗內容41
2.2.1練習41
2.2.2項目組成45
2.3從機器啟動到作業系統運行的過程48
2.3.1BIOS啟動過程48
2.3.2bootloader啟動過程48
2.3.3作業系統啟動過程57
2.4實驗報告要求66
輔助材料A關於A20Gate66
輔助材料B啟動後第一條執行的指令68
第3章實驗2:物理記憶體管理70
3.1實驗目的70
3.2實驗內容70
3.2.1練習70
3.2.2項目組成71
3.3物理記憶體管理概述73
3.3.1實驗執行流程概述73
3.3.2探測系統物理記憶體布局75
3.3.3以頁為單位管理物理記憶體75
3.3.4物理記憶體頁分配算法實現78
3.3.5實現分頁機制81
3.3.6自映射機制88
3.4實驗報告要求90
輔助材料A探測物理記憶體分布和大小的方法90
輔助材料B實現物理記憶體探測91
輔助材料C連結地址、虛擬地址、物理地址、載入地址
以及edata/end/text的含義92
第4章實驗3:虛擬記憶體管理96
4.1實驗目的96
4.2實驗內容96
4.2.1練習96
4.2.2項目組成97
4.3虛擬記憶體管理概述98
4.3.1基本原理概述98
4.3.2實驗執行流程概述99
4.3.3關鍵數據結構和相關函式分析100
4.4PageFault異常處理102
4.5頁面置換機制的實現104
4.5.1頁替換算法104
4.5.2頁面置換機制105
4.6實驗報告要求108
輔助材料A:正確輸出的參考109
第5章實驗4:核心執行緒管理111
5.1實驗目的111
5.2實驗內容111
5.2.1練習111
5.2.2項目組成112
5.3核心執行緒管理114
5.3.1實驗執行流程概述114
5.3.2設計關鍵數據結構——進程控制塊115
5.3.3創建並執行核心執行緒117
5.4實驗報告要求122
輔助材料A實驗4的參考輸出123
輔助材料B“原理”進程的屬性與特徵解析124
第6章實驗5:用戶進程管理127
6.1實驗目的127
6.2實驗內容127
6.2.1練習127
6.2.2項目組成128
6.3用戶進程管理130
6.3.1實驗執行流程概述130
6.3.2創建用戶進程131
6.3.3進程退出和等待進程136
6.3.4系統調用實現137
6.4實驗報告要求141
輔助材料A“原理”用戶進程的特徵141
第7章實驗6:調度器145
7.1實驗目的145
7.2實驗內容145
7.2.1練習145
7.2.2項目組成146
7.3調度框架和調度算法設計與實現147
7.3.1實驗執行流程概述147
7.3.2計時器的原理和實現147
7.3.3進程狀態148
7.3.4進程調度實現149
7.3.5調度框架和調度算法150
7.3.6StrideScheduling154
7.4實驗報告要求158
輔助材料A執行priority大致的顯示輸出158
第8章實驗7:同步互斥160
8.1實驗目的160
8.2實驗內容160
8.2.1練習160
8.2.2項目組成161
8.3同步互斥的設計與實現162
8.3.1實驗執行流程概述162
8.3.2同步互斥的底層支撐163
8.3.3信號量165
8.3.4管程和條件變數167
8.4實驗報告要求171
輔助材料A執行makerunmatrix大致的顯示輸出171
第9章實驗8:檔案系統173
9.1實驗目的173
9.2實驗內容173
9.2.1練習173
9.2.2項目組成173
9.3檔案系統的設計與實現176
9.3.1ucore檔案系統總體介紹176
9.3.2通用檔案系統訪問接口179
9.3.3SimpleFS檔案系統179
9.3.4檔案系統抽象層——VFS183
9.3.5設備層檔案I/O層185
9.3.6實驗執行流程概述189
9.3.7檔案操作實現190
9.4實驗報告要求193