操作系統(tǒng)實(shí)驗(yàn)教程(第二版)
本書結(jié)合操作系統(tǒng)原理,分析了一個(gè)面向教學(xué)的操作系統(tǒng)--EOS操作系統(tǒng)的源代碼。本書從EOS操作系統(tǒng)中引用了豐富的代碼實(shí)例,并配有大量的圖示和圖表,一步步的引導(dǎo)讀者分析EOS操作系統(tǒng)的源代碼。本書與其它操作系統(tǒng)理論書籍最明顯的不同是,配有若干個(gè)精心設(shè)計(jì)的實(shí)驗(yàn)。讀者可以親自動(dòng)手完成這些實(shí)驗(yàn),在實(shí)踐的過程中循序漸進(jìn)的學(xué)習(xí)EOS操作系統(tǒng),進(jìn)而加深對操作系統(tǒng)原理的理解。全書共8章,配有12個(gè)實(shí)驗(yàn)。
更多科學(xué)出版社服務(wù),請掃碼獲取。
目錄
第1章 EOS概述 1
1.1 EOS操作系統(tǒng) 1
1.2 集成實(shí)驗(yàn)環(huán)境 1
1.3 從源代碼到可運(yùn)行的操作系統(tǒng) 3
第2章 EOS編程基礎(chǔ) 8
2.1 EOS內(nèi)核源代碼的結(jié)構(gòu) 8
2.2 預(yù)定義的C數(shù)據(jù)類型 9
2.3 鏈表的使用 10
2.4 NASM匯編 13
2.5 C和匯編的相互調(diào)用 15
2.6 原語操作 18
2.7 錯(cuò)誤處理 19
2.8 條件編譯 22
2.9 C語言中變量的內(nèi)存布局 24
2.10 使用工具閱讀EOS源代碼 30
第3章 EOS的啟動(dòng)過程 33
3.1 BIOS程序的執(zhí)行過程 33
3.2 Boot程序的執(zhí)行過程 35
3.3 Loader程序的執(zhí)行過程 35
3.4 內(nèi)核的初始化過程 35
第4章 對象管理 37
4.1 對象類型 37
4.2 對象 38
4.3 對象類型和對象組成的鏈表 39
4.4 對象的方法 40
4.5 對象的生命周期 41
4.6 對象的句柄 41
第5章 進(jìn)程管理 43
5.1 進(jìn)程的描述與控制 43
5.1.1 進(jìn)程和程序 43
5.1.2 進(jìn)程控制塊 44
5.1.3 進(jìn)程的創(chuàng)建 45
5.1.4 進(jìn)程的終止 48
5.2 線程的描述與控制 49
5.2.1 線程控制塊 49
5.2.2 線程的創(chuàng)建和終止 50
5.2.3 線程的狀態(tài)和轉(zhuǎn)換 51
5.2.4 線程的掛起狀態(tài) 52
5.3 進(jìn)程的同步與通信 55
5.3.1 基本概念 55
5.3.2 EOS內(nèi)核提供的同步對象 55
5.4 線程調(diào)度 59
5.4.1 就緒隊(duì)列和就緒位圖 60
5.4.2 線程調(diào)度執(zhí)行的時(shí)機(jī) 61
5.4.3 調(diào)度程序 63
5.4.4 時(shí)間片輪轉(zhuǎn)調(diào)度 64
第6章 內(nèi)存管理 68
6.1 i386處理器的工作模式和
內(nèi)存管理方式 68
6.2 EOS內(nèi)存管理概述 70
6.3 物理存儲(chǔ)器的管理 71
6.4 進(jìn)程地址空間 72
6.5 頁目錄和頁表的邏輯地址 73
6.6 虛擬地址描述符鏈表 74
6.7 系統(tǒng)內(nèi)存池 75
6.8 進(jìn)程地址空間的內(nèi)存分布 76
第7章 I/O管理 78
7.1 驅(qū)動(dòng)程序?qū)ο笈c設(shè)備對象 78
7.2 文件對象及其操作 79
7.3 設(shè)備驅(qū)動(dòng)的安裝與工作原理 82
7.4 文件系統(tǒng)驅(qū)動(dòng) 84
7.5 塊設(shè)備的讀寫 84
7.5.1 磁盤調(diào)度算法 87
7.5.2 讀寫緩沖區(qū) 90
第8章 FAT12文件系統(tǒng) 91
8.1 文件系統(tǒng)是一個(gè)邏輯層 91
8.2 系統(tǒng)區(qū) 92
8.2.1 根目錄 92
8.2.2 文件分配表 94
8.3 操作文件 98
8.3.1 打開文件與關(guān)閉文件 99
8.3.2 讀文件 102
8.3.3 寫文件 104
8.4 引導(dǎo)扇區(qū) 107
第9章 綜合實(shí)驗(yàn) 110
實(shí)驗(yàn)1 實(shí)驗(yàn)環(huán)境的使用 110
實(shí)驗(yàn)2 操作系統(tǒng)的啟動(dòng) 122
實(shí)驗(yàn)3 進(jìn)程的創(chuàng)建 131
實(shí)驗(yàn)4 線程的狀態(tài)和轉(zhuǎn)換 145
實(shí)驗(yàn)5 進(jìn)程的同步 153
實(shí)驗(yàn)6 時(shí)間片輪轉(zhuǎn)調(diào)度 162
實(shí)驗(yàn)7 物理存儲(chǔ)器與進(jìn)程邏輯地址空間的管理 169
實(shí)驗(yàn)8 分頁存儲(chǔ)器管理 181
實(shí)驗(yàn)9 頁面置換算法與動(dòng)態(tài)內(nèi)存分配 190
實(shí)驗(yàn)10 串口設(shè)備驅(qū)動(dòng)程序 199
實(shí)驗(yàn)11 磁盤調(diào)度算法 207
實(shí)驗(yàn)12 基本輸入輸出 218
實(shí)驗(yàn)13 掃描FAT12文件系統(tǒng)管理的軟盤 225
實(shí)驗(yàn)14 讀文件和寫文件 230
附錄 238
附錄A Bochs虛擬機(jī) 238
附錄B 字節(jié)順序Little-endian與Big-endian 239
附錄C EOS核心源代碼協(xié)議 240
附錄D 課程設(shè)計(jì)實(shí)驗(yàn)題目 241
參考文獻(xiàn) 247