日韩精品 中文字幕 动漫,91亚洲午夜一区,在线不卡日本v一区v二区丶,久久九九国产精品自在现拍

注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)LinuxLinux內(nèi)核設(shè)計的藝術(shù):圖解Linux操作系統(tǒng)架構(gòu)設(shè)計與實(shí)現(xiàn)原理預(yù)售商品

Linux內(nèi)核設(shè)計的藝術(shù):圖解Linux操作系統(tǒng)架構(gòu)設(shè)計與實(shí)現(xiàn)原理預(yù)售商品

Linux內(nèi)核設(shè)計的藝術(shù):圖解Linux操作系統(tǒng)架構(gòu)設(shè)計與實(shí)現(xiàn)原理預(yù)售商品

定 價:¥79.00

作 者: 新設(shè)計團(tuán)隊
出版社: 機(jī)械工業(yè)出版社
叢編項:
標(biāo) 簽: LINUX

ISBN: 9787111347446 出版時間: 2011-06-01 包裝: 平裝
開本: ` 頁數(shù): 444 字?jǐn)?shù):  

內(nèi)容簡介

  關(guān)于Linux內(nèi)核的書已經(jīng)不計其數(shù),但這本書卻是獨(dú)樹一幟的,它的內(nèi)容代表著Linux內(nèi)核研究成果的世界頂尖級水平,它在世界范圍內(nèi)首次提出并闡述了操作系統(tǒng)設(shè)計的核心指導(dǎo)思想——主奴機(jī)制,這是所有操作系統(tǒng)研究者的一筆寶貴財富。本書可能也代表著同類圖書的頂尖水平,是一本真正能引導(dǎo)我們較為容易地、極為透徹地理解Linux內(nèi)核的經(jīng)典之作,也可能是當(dāng)前唯一能從本質(zhì)上指引我們?nèi)ピO(shè)計和開發(fā)擁有自主知識產(chǎn)權(quán)的操作系統(tǒng)的著作。它的出版也許會成為Linux內(nèi)核研究領(lǐng)域的一個里程碑事件?!禠inux內(nèi)核設(shè)計的藝術(shù):圖解Linux操作系統(tǒng)架構(gòu)設(shè)計與實(shí)現(xiàn)原理》的最大特點(diǎn)是它的寫作方式和內(nèi)容組織方式,與同類書完全不同。它在深刻地分析了傳統(tǒng)講解方法的利弊之后,破舊立新,從認(rèn)知學(xué)的角度開創(chuàng)了一種全新的方式。以操作系統(tǒng)的真實(shí)運(yùn)行過程為主線,結(jié)合真實(shí)的內(nèi)核源代碼、349幅精確的內(nèi)核運(yùn)行時序圖和具有點(diǎn)睛之妙的文字說明,對操作系統(tǒng)從開機(jī)加電到系統(tǒng)完全準(zhǔn)備就緒的整個過程進(jìn)行了系統(tǒng)而完整地分析,深刻地揭示了其間每一個動作的設(shè)計意圖和實(shí)現(xiàn)原理,完美地再現(xiàn)了操作系統(tǒng)設(shè)計者的設(shè)計思路。閱讀本書就如同跟隨著操作系統(tǒng)設(shè)計者一起去思考,我們會在閱讀的過程中發(fā)現(xiàn)Linux內(nèi)核設(shè)計的精妙,會發(fā)現(xiàn)原來處處都“暗藏玄機(jī)”,哪怕是一行很短的代碼?!禠inux內(nèi)核設(shè)計的藝術(shù):圖解Linux操作系統(tǒng)架構(gòu)設(shè)計與實(shí)現(xiàn)原理》在所有細(xì)節(jié)上都力求完美。為了保證知識的準(zhǔn)確性,操作系統(tǒng)運(yùn)行過程中的每個動作都經(jīng)過了嚴(yán)格的考證;為了讓我們真正理解Linux內(nèi)核的原理,它突破傳統(tǒng),以Linux的真實(shí)運(yùn)行過程為主線進(jìn)行講解;為了做到真正易于理解,創(chuàng)新性地使用了圖解的方式,精心繪制了349幅分辨率600dpi的時序圖,圖中表現(xiàn)的運(yùn)行時結(jié)構(gòu)和狀態(tài)與操作系統(tǒng)實(shí)際運(yùn)行時的真實(shí)狀態(tài)完全吻合;為了提高閱讀體驗(yàn),本書采用了雙色印刷,以便于我們更清楚地觀察每一幅圖中的細(xì)節(jié)。

作者簡介

暫缺《Linux內(nèi)核設(shè)計的藝術(shù):圖解Linux操作系統(tǒng)架構(gòu)設(shè)計與實(shí)現(xiàn)原理預(yù)售商品》作者簡介

圖書目錄

前言
第1章 從開機(jī)加電到執(zhí)行main函數(shù)之前的過程1
1.1 啟動BIOS,準(zhǔn)備實(shí)模式下的中斷向量表和中斷服務(wù)程序1
1.1.1 BIOS的啟動原理2
1.1.2 BIOS在內(nèi)存中加載中斷向量表和中斷服務(wù)程序3
1.2 加載操作系統(tǒng)內(nèi)核程序并為保護(hù)模式做準(zhǔn)備4
1.2.1 加載第一部分代碼—引導(dǎo)程序(bootsect)5
1.2.2 加載第二部分代碼—setup7
1.2.3 加載第三部分代碼—system模塊12
1.3 開始向32位模式轉(zhuǎn)變,為main函數(shù)的調(diào)用做準(zhǔn)備16
1.3.1 關(guān)中斷并將system移動到內(nèi)存地址起始位置0x0000016
1.3.2 設(shè)置中斷描述符表和全局描述符表18
1.3.3 打開A20,實(shí)現(xiàn)32位尋址20
1.3.4 為在保護(hù)模式下執(zhí)行head.s做準(zhǔn)備21
1.3.5 head.s開始執(zhí)行24
1.4 本章小結(jié)41
第2章 從main到怠速42
2.1 開中斷之前的準(zhǔn)備工作43
2.1.1 復(fù)制根設(shè)備號和硬盤參數(shù)表 44
2.1.2 物理內(nèi)存規(guī)劃格局45
2.1.3 虛擬盤設(shè)置與初始化46
2.1.4 內(nèi)存管理結(jié)構(gòu)mem_map初始化47
2.1.5 異常處理類中斷服務(wù)程序掛接48
2.1.6 初始化塊設(shè)備請求項結(jié)構(gòu)50
2.1.7 與建立人機(jī)交互界面相關(guān)的外設(shè)的中斷服務(wù)程序掛接52
2.1.8 開機(jī)啟動時間設(shè)置55
2.1.9 系統(tǒng)開始激活進(jìn)程056
2.1.10 進(jìn)程相關(guān)事務(wù)初始化設(shè)置57
2.1.11 時鐘中斷設(shè)置59
2.1.12 系統(tǒng)調(diào)用服務(wù)程序掛接59
2.1.13 初始化緩沖區(qū)管理結(jié)構(gòu)61
2.1.14 初始化硬盤63
2.1.15 初始化軟盤65
2.1.16 開中斷66
2.2 進(jìn)程創(chuàng)建的最基本動作67
2.2.1 操作系統(tǒng)為進(jìn)程0創(chuàng)建進(jìn)程1做準(zhǔn)備67
2.2.2 在進(jìn)程槽中為進(jìn)程1 申請一個空閑位置并獲取進(jìn)程號71
2.2.3 復(fù)制進(jìn)程信息之前,先將一些數(shù)據(jù)壓棧73
2.2.4 初步設(shè)置進(jìn)程1管理結(jié)構(gòu)74
2.2.5 進(jìn)程0創(chuàng)建進(jìn)程1的過程中發(fā)生時鐘中斷76
2.2.6 從時鐘中斷返回78
2.2.7 調(diào)整進(jìn)程1管理結(jié)構(gòu)79
2.2.8 設(shè)置進(jìn)程1的線性地址空間及物理頁面81
2.2.9 繼續(xù)調(diào)整進(jìn)程1管理結(jié)構(gòu)84
2.2.10 操作系統(tǒng)如何區(qū)分進(jìn)程0和進(jìn)程187
2.2.11 進(jìn)程0準(zhǔn)備切換到進(jìn)程189
2.2.12 系統(tǒng)切換到進(jìn)程1執(zhí)行90
2.3 加載根文件系統(tǒng)92
2.3.1 進(jìn)程1如何開始執(zhí)行96
2.3.2 進(jìn)程1開始執(zhí)行98
2.3.3 進(jìn)程1開始以數(shù)據(jù)塊的形式操作硬盤99
2.3.4 將找到的緩沖塊與請求項掛接101
2.3.5 將請求項與硬盤處理函數(shù)掛接104
2.3.6 進(jìn)行硬盤讀盤前的準(zhǔn)備工作105
2.3.7 給硬盤下達(dá)讀盤指令106
2.3.8 進(jìn)程1由于等待讀盤操作掛起107
2.3.9 系統(tǒng)切換到進(jìn)程0執(zhí)行109
2.3.10 進(jìn)程0的執(zhí)行過程110
2.3.11 進(jìn)程0執(zhí)行過程中發(fā)生硬盤中斷111
2.3.12 硬盤中斷服務(wù)程序響應(yīng)后,進(jìn)程0繼續(xù)執(zhí)行113
2.3.13 再次響應(yīng)硬盤中斷并喚醒進(jìn)程1114
2.3.14 讀盤操作完成后,進(jìn)程1繼續(xù)執(zhí)行116
2.3.15 進(jìn)程1繼續(xù)設(shè)置硬盤管理結(jié)構(gòu)117
2.3.16 進(jìn)程1獲取軟盤超級塊,為加載根文件系統(tǒng)做準(zhǔn)備118
2.3.17 進(jìn)程1備份超級塊數(shù)據(jù)119
2.3.18 進(jìn)程1將根文件系統(tǒng)從軟盤拷貝到虛擬盤120
2.3.19 進(jìn)程1開始加載根文件系統(tǒng)122
2.3.20 進(jìn)程1準(zhǔn)備加載根文件系統(tǒng)超級塊123
2.3.21 進(jìn)程1加載根文件系統(tǒng)超級塊124
2.3.22 進(jìn)程1繼續(xù)加載根文件系統(tǒng)126
2.3.23 進(jìn)程1準(zhǔn)備讀取根目錄i節(jié)點(diǎn)127
2.3.24 進(jìn)程1加載根目錄i節(jié)點(diǎn)128
2.3.25 進(jìn)程1結(jié)束加載根文件系統(tǒng)的過程129
2.4 打開終端設(shè)備文件及復(fù)制文件句柄131
2.4.1 進(jìn)程1與內(nèi)核文件表掛接,為打開文件做準(zhǔn)備133
2.4.2 確定打開操作的起點(diǎn)135
2.4.3 獲得枝梢i節(jié)點(diǎn)—dev目錄文件的i節(jié)點(diǎn)136
2.4.4 確定dev目錄文件i節(jié)點(diǎn)為枝梢i節(jié)點(diǎn)137
2.4.5 繼續(xù)返回枝梢i節(jié)點(diǎn)138
2.4.6 查找tty0文件的i節(jié)點(diǎn)138
2.4.7 將tty0設(shè)備文件的i節(jié)點(diǎn)返回給sys_open系統(tǒng)調(diào)用 139
2.4.8 分析tty0文件i節(jié)點(diǎn)140
2.4.9 設(shè)置文件管理結(jié)構(gòu)并返回給用戶進(jìn)程141
2.4.10 進(jìn)程1復(fù)制tty0文件句柄142
2.4.11 進(jìn)程1繼續(xù)復(fù)制tty0文件句柄144
2.5 創(chuàng)建進(jìn)程2145
2.5.1 進(jìn)程1準(zhǔn)備創(chuàng)建進(jìn)程2145
2.5.2 復(fù)制進(jìn)程2管理結(jié)構(gòu)并進(jìn)行調(diào)整146
2.5.3 設(shè)置進(jìn)程2的頁目錄項并復(fù)制進(jìn)程2的頁表146
2.5.4 調(diào)整進(jìn)程2管理結(jié)構(gòu)中與文件有關(guān)的內(nèi)容146
2.5.5 進(jìn)程1執(zhí)行過程中發(fā)生時鐘中斷148
2.5.6 進(jìn)程1從時鐘中斷返回,準(zhǔn)備切換到進(jìn)程2150
2.6 進(jìn)程1等待進(jìn)程2退出150
2.6.1 進(jìn)程1查找它自己的子進(jìn)程151
2.6.2 對進(jìn)程2的狀態(tài)進(jìn)行處理151
2.6.3 切換到進(jìn)程2執(zhí)行153
2.7 shell程序的加載154
2.7.1 進(jìn)程2開始執(zhí)行156
2.7.2 為打開/etc/rc文件做準(zhǔn)備156
2.7.3 進(jìn)程2打開“/etc/rc”配置文件157
2.7.4 通過壓棧為加載shell文件做準(zhǔn)備158
2.7.5 為參數(shù)和環(huán)境變量設(shè)置做準(zhǔn)備159
2.7.6 得到shell文件的i節(jié)點(diǎn)160
2.7.7 為加載參數(shù)和環(huán)境變量做準(zhǔn)備161
2.7.8 根據(jù)i節(jié)點(diǎn),對shell文件進(jìn)行檢測162
2.7.9 檢測shell文件頭163
2.7.10 備份文件頭并進(jìn)行分析163
2.7.11 對shell文件進(jìn)行進(jìn)一步分析165
2.7.12 拷貝參數(shù)和環(huán)境變量166
2.7.13 調(diào)整進(jìn)程2的管理結(jié)構(gòu)167
2.7.14 繼續(xù)調(diào)整進(jìn)程2管理結(jié)構(gòu)168
2.7.15 釋放進(jìn)程2繼承的頁面169
2.7.16 檢測協(xié)處理器170
2.7.17 調(diào)整shell程序所在的線性空間地址171
2.7.18 為shell程序準(zhǔn)備參數(shù)和環(huán)境變量172
2.7.19 繼續(xù)調(diào)整進(jìn)程2管理結(jié)構(gòu)173
2.7.20 調(diào)整EIP,使其指向shell程序入口地址173
2.7.21 shell程序執(zhí)行引發(fā)缺頁中斷175
2.7.22 缺頁中斷中shell程序加載前的檢測175
2.7.23 為即將載入的內(nèi)容申請頁面177
2.7.24 將shell程序載入新獲得的頁面177
2.7.25 根據(jù)shell程序的情況,調(diào)整頁面的內(nèi)容178
2.7.26 將線性地址空間與程序所在的物理頁面對應(yīng)179
2.8 系統(tǒng)實(shí)現(xiàn)怠速180
2.8.1 shell進(jìn)程準(zhǔn)備創(chuàng)建update進(jìn)程180
2.8.2 進(jìn)程2開始執(zhí)行/etc/rc文件181
2.8.3 準(zhǔn)備加載update進(jìn)程181
2.8.4 update進(jìn)程的作用182
2.8.5 shell程序檢測“/etc/rc”文件183
2.8.6 shell進(jìn)程退出184
2.8.7 shell進(jìn)程退出善后處理185
2.8.8 進(jìn)程1清理shell進(jìn)程管理結(jié)構(gòu)187
2.8.9 系統(tǒng)開始重建shell190
2.8.10 shell進(jìn)程為何不會再次退出192
2.9 小結(jié)194
第3章 安裝文件系統(tǒng)195
3.1 獲取硬盤設(shè)備號196
3.1.1 用戶發(fā)出安裝硬盤文件系統(tǒng)指令196
3.1.2 從分析路徑開始,準(zhǔn)備查找hd1設(shè)備的掛接點(diǎn)197
3.1.3 以根目錄i節(jié)點(diǎn)為依托,得到dev目錄文件的i節(jié)點(diǎn)197
3.1.4 從dev目錄文件中找到代表hd1設(shè)備文件的目錄項198
3.1.5 得到hd1設(shè)備文件的i節(jié)點(diǎn)號199
3.1.6 釋放dev目錄文件的相關(guān)內(nèi)容200
3.1.7 得到hd1設(shè)備文件的i節(jié)點(diǎn)200
3.1.8 獲得hd1設(shè)備的設(shè)備號200
3.1.9 釋放hd1設(shè)備文件的i節(jié)點(diǎn)201
3.2 獲取虛擬盤上的掛接點(diǎn)202
3.3 得到hd1設(shè)備文件的超級塊202
3.3.1 準(zhǔn)備讀取hd1設(shè)備文件超級塊203
3.3.2 為hd1設(shè)備文件的超級塊找到存儲位置203
3.3.3 初始化空閑超級塊并加鎖203
3.3.4 從硬盤獲得hd1設(shè)備文件的超級塊204
3.3.5 加載邏輯塊位圖和i節(jié)點(diǎn)位圖205
3.4 將hd1設(shè)備文件與mnt目錄文件的i節(jié)點(diǎn)掛接206
3.5 小結(jié)207
第4章 文件操作208
4.1 打開文件211
4.1.1 用戶程序調(diào)用open庫函數(shù)產(chǎn)生軟中斷212
4.1.2 建立用戶進(jìn)程與文件管理表的關(guān)系213
4.1.3 從硬盤上獲取helloc.txt文件的i節(jié)點(diǎn)214
4.1.4 將helloc.txt文件與文件管理表相掛接226
4.2 讀文件227
4.2.1 為按照用戶要求讀入文件做準(zhǔn)備228
4.2.2 確定要讀入的數(shù)據(jù)塊的位置230
4.2.3 將指定的數(shù)據(jù)塊從硬盤讀入到高速緩沖塊233
4.2.4 將數(shù)據(jù)拷貝到用戶指定的內(nèi)存234
4.3 新建文件237
4.3.1 查找路徑“/mnt/user/hello.txt”238
4.3.2 為hello.txt文件新建一個i節(jié)點(diǎn)240
4.3.3 為hello.txt文件新建目錄項242
4.3.4 完成hello.txt新建操作并返回給用戶進(jìn)程245
4.4 寫文件246
4.4.1 文件寫入前的準(zhǔn)備工作248
4.4.2 確定hello.txt文件的寫入位置249
4.4.3 為數(shù)據(jù)的寫入申請緩沖塊252
4.4.4 將指定的寫入數(shù)據(jù)從用戶數(shù)據(jù)區(qū)拷貝到緩沖塊253
4.4.5 數(shù)據(jù)同步到硬盤的方法1255
4.4.6 將文件寫入硬盤的情況2257
4.5 修改文件260
4.5.1 對文件的當(dāng)前操作指針進(jìn)行重定位261
4.5.2 對文件進(jìn)行修改261
4.6 關(guān)閉文件263
4.6.1 當(dāng)前進(jìn)程與文件管理表“脫鉤”264
4.6.2 將文件管理表中hello.txt對應(yīng)的引用次數(shù)減1265
4.6.3 hello.txt文件與文件管理表“脫鉤”266
4.7 刪除文件268
4.7.1 系統(tǒng)準(zhǔn)備刪除hello.txt文件268
4.7.2 刪除hello.txt文件在硬盤上對應(yīng)的數(shù)據(jù)和i節(jié)點(diǎn)270
4.7.3 對hello.txt文件所在的user目錄做處理275
4.8 本章小結(jié)275
第5章 用戶進(jìn)程與內(nèi)存管理277
5.1 用戶進(jìn)程的創(chuàng)建277
5.1.1 為創(chuàng)建進(jìn)程str1準(zhǔn)備條件277
5.1.2 為str1進(jìn)程管理結(jié)構(gòu)找到存儲空間279
5.1.3 復(fù)制str1進(jìn)程管理結(jié)構(gòu)281
5.1.4 確定str1進(jìn)程在線性空間中的位置282
5.1.5 復(fù)制str1進(jìn)程頁表并設(shè)置其對應(yīng)的頁目錄項283
5.1.6 調(diào)整str1進(jìn)程中與文件相關(guān)的結(jié)構(gòu)285
5.1.7 建立str1進(jìn)程與全局描述符表GDT的關(guān)聯(lián)286
5.1.8 將str1進(jìn)程設(shè)為就緒態(tài)287
5.2 為用戶進(jìn)程str1的加載做準(zhǔn)備288
5.2.1 為str1進(jìn)程加載自身對應(yīng)的程序做準(zhǔn)備288
5.2.2 讀取str1可執(zhí)行文件的i節(jié)點(diǎn)并統(tǒng)計參數(shù)和環(huán)境變量289
5.2.3 讀取str1可執(zhí)行文件的文件頭290
5.2.4 對str1可執(zhí)行程序文件頭進(jìn)行分析291
5.2.5 拷貝str1可執(zhí)行程序的參數(shù)和環(huán)境變量292
5.2.6 調(diào)整str1進(jìn)程管理結(jié)構(gòu)中可執(zhí)行程序?qū)?yīng)的i節(jié)點(diǎn)292
5.2.7 繼續(xù)調(diào)整str1進(jìn)程管理結(jié)構(gòu)—文件和信號相關(guān)的字段293
5.2.8 釋放str1進(jìn)程的頁表294
5.2.9 重新設(shè)置str1的程序代碼段和數(shù)據(jù)段295
5.2.10 創(chuàng)建環(huán)境變量和參數(shù)指針表296
5.2.11 繼續(xù)根據(jù)str1可執(zhí)行程序情況調(diào)整str1進(jìn)程管理結(jié)構(gòu)297
5.2.12 設(shè)置str1可執(zhí)行程序的棧指針和eip值297
5.3 對缺頁中斷的處理298
5.3.1 產(chǎn)生缺頁中斷并由操作系統(tǒng)響應(yīng)298
5.3.2 為str1程序申請一個內(nèi)存頁面299
5.3.3 將str1程序加載到新分配的頁面中300
5.3.4 檢測是否需要對頁面剩余空間清0300
5.3.5 將str1程序占用的物理內(nèi)存地址與str1進(jìn)程的線性地址空間對應(yīng)301
5.3.6 不斷通過缺頁中斷加載str1程序的全部內(nèi)容301
5.3.7 str1程序需要壓棧302
5.3.8 str1程序第一次調(diào)用foo程序壓棧302
5.3.9 str1程序第二次壓棧,產(chǎn)生缺頁中斷302
5.3.10 處理str1程序第二次壓棧產(chǎn)生的缺頁中斷302
5.3.11 str1程序繼續(xù)執(zhí)行,反復(fù)壓棧并產(chǎn)生缺頁中斷303
5.3.12 str1程序運(yùn)行結(jié)束后清棧303
5.4 str1用戶進(jìn)程的退出305
5.4.1 str1進(jìn)程準(zhǔn)備退出305
5.4.2 釋放str1程序所占頁面305
5.4.3 解除str1程序與文件有關(guān)的內(nèi)容并給父進(jìn)程發(fā)信號306
5.4.4 str1程序退出后執(zhí)行進(jìn)程調(diào)度307
5.5 多個用戶進(jìn)程“同時”運(yùn)行308
5.5.1 依次創(chuàng)建str1、str2和str3進(jìn)程308
5.5.2 str1進(jìn)程壓棧的執(zhí)行效果309
5.5.3 str1運(yùn)行過程中產(chǎn)生時鐘中斷并切換到str2執(zhí)行309
5.5.4 str2執(zhí)行過程遇到時鐘中斷切換到str3執(zhí)行310
5.5.5 三個程序執(zhí)行一段時間后在主內(nèi)存的分布格局311
5.6 進(jìn)程的調(diào)度與切換311
5.6.1 str1剛被shell創(chuàng)建并處于就緒態(tài)311
5.6.2 shell進(jìn)程將自己掛起,然后準(zhǔn)備切換到str1執(zhí)行311
5.6.3 準(zhǔn)備切換到str1進(jìn)程執(zhí)行312
5.6.4 str1執(zhí)行時發(fā)生時鐘中斷314
5.6.5 時鐘中斷遞減str1運(yùn)行的時間片315
5.6.6 str1執(zhí)行一段時間后掛起,shell進(jìn)程新建str2進(jìn)程315
5.6.7 str2運(yùn)行期間發(fā)生時鐘中斷316
5.6.8 系統(tǒng)切換到str1程序執(zhí)行317
5.7 內(nèi)核的分頁318
5.7.1 為設(shè)置內(nèi)核的頁目錄表和頁表做準(zhǔn)備—所占空間清0318
5.7.2 設(shè)置內(nèi)核對應(yīng)的頁目錄項和頁表項的內(nèi)容319
5.7.3 設(shè)置內(nèi)核對應(yīng)的全局描述符表GDT320
5.8 頁寫保護(hù)321
5.8.1 進(jìn)程A和進(jìn)程B共享頁面321
5.8.2 進(jìn)程A準(zhǔn)備進(jìn)行壓棧操作322
5.8.3 進(jìn)程A的壓棧動作引發(fā)頁寫保護(hù)322
5.8.4 將進(jìn)程A的頁表指向新申請的頁面323
5.8.5 拷貝原頁面內(nèi)容到進(jìn)程A新申請的頁面324
5.8.6 進(jìn)程B準(zhǔn)備操作共享頁面325
5.8.7 假設(shè)進(jìn)程B先執(zhí)行壓棧操作的情況325
5.9 小結(jié)326
第6章 多個進(jìn)程“同時”操作一個文件327
6.1 三個進(jìn)程操作同一個文件327
6.1.1 進(jìn)程A執(zhí)行,hello.txt文件被打開328
6.1.2 進(jìn)程A讀取hello.txt文件并由于等待硬盤中斷而被系統(tǒng)掛起328
6.1.3 進(jìn)程B準(zhǔn)備打開hello.txt文件330
6.1.4 系統(tǒng)準(zhǔn)備為進(jìn)程B獲取hello.txt文件的i節(jié)點(diǎn)332
6.1.5 系統(tǒng)找到hello.txt文件已經(jīng)載入的i節(jié)點(diǎn)333
6.1.6 系統(tǒng)準(zhǔn)備為進(jìn)程B從硬盤上讀取hello.txt文件334
6.1.7 系統(tǒng)找到了正在操作的緩沖塊,將進(jìn)程B掛起335
6.1.8 系統(tǒng)再次切換到進(jìn)程0執(zhí)行337
6.1.9 進(jìn)程C啟動并打開hello.txt文件337
6.1.10 進(jìn)程C也由于等待緩沖塊解鎖而被系統(tǒng)掛起338
6.1.11 緩沖塊解鎖后先喚醒進(jìn)程C339
6.1.12 系統(tǒng)將進(jìn)程B設(shè)為就緒狀態(tài)340
6.1.13 系統(tǒng)將指定數(shù)據(jù)寫入緩沖塊341
6.1.14 寫入完成后,進(jìn)程C繼續(xù)執(zhí)行341
6.1.15 進(jìn)程C準(zhǔn)備切換到進(jìn)程B342
6.1.16 進(jìn)程C切換到進(jìn)程B執(zhí)行,進(jìn)程B喚醒進(jìn)程A342
6.1.17 進(jìn)程B不斷執(zhí)行,直到時間片減為0后切換到進(jìn)程A執(zhí)行343
6.1.18 進(jìn)程A、B、C退出,寫入數(shù)據(jù)由update進(jìn)程同步344
6.2 緩沖區(qū)與外設(shè)的數(shù)據(jù)同步344
6.2.1 系統(tǒng)不斷為進(jìn)程A向緩沖區(qū)寫入數(shù)據(jù)346
6.2.2 繼續(xù)執(zhí)行引發(fā)緩沖塊數(shù)據(jù)需要同步346
6.2.3 將緩沖區(qū)中的數(shù)據(jù)同步到硬盤上347
6.2.4 進(jìn)程A由于等待空閑請求項而被系統(tǒng)掛起349
6.2.5 進(jìn)程B開始執(zhí)行350
6.2.6 進(jìn)程B也被掛起351
6.2.7 進(jìn)程C開始執(zhí)行并隨后被掛起352
6.2.8 進(jìn)程A和進(jìn)程C均被喚醒352
6.2.9 進(jìn)程B切換到進(jìn)程A執(zhí)行354
6.3 小結(jié)356
第7章 IPC問題358
7.1 管道機(jī)制358
7.1.1 為管道文件在文件管理表中申請空閑項360
7.1.2 為管道文件與進(jìn)程建立聯(lián)系創(chuàng)造條件360
7.1.3 創(chuàng)建管道文件i節(jié)點(diǎn)361
7.1.4 將管道文件i節(jié)點(diǎn)與文件管理表建立聯(lián)系362
7.1.5 將管道文件句柄返回給用戶進(jìn)程363
7.1.6 讀管道進(jìn)程開始操作管道文件363
7.1.7 寫管道進(jìn)程向管道中寫入數(shù)據(jù)364
7.1.8 寫管道進(jìn)程繼續(xù)向管道寫入數(shù)據(jù)366
7.1.9 寫管道進(jìn)程已將管道空間寫滿366
7.1.10 寫管道進(jìn)程掛起366
7.1.11 讀管道進(jìn)程從管道中讀出數(shù)據(jù)367
7.1.12 讀管道進(jìn)程繼續(xù)執(zhí)行,不斷從管道中讀出數(shù)據(jù)369
7.1.13 讀管道進(jìn)程執(zhí)行中發(fā)生時鐘中斷369
7.1.14 讀管道進(jìn)程執(zhí)行過程中再次發(fā)生時鐘中斷370
7.1.15 讀管道進(jìn)程切換到寫管道進(jìn)程執(zhí)行371
7.1.16 寫管道進(jìn)程掛起切換到讀管道進(jìn)程執(zhí)行371
7.1.17 讀管道進(jìn)程繼續(xù)執(zhí)行,直到把管道中的數(shù)據(jù)讀完372
7.1.18 讀取完成后,讀進(jìn)程掛起,寫進(jìn)程繼續(xù)執(zhí)行373
7.2 信號機(jī)制374
7.2.1 processig進(jìn)程開始執(zhí)行376
7.2.2 processig進(jìn)程進(jìn)入可中斷等待狀態(tài)377
7.2.3 sendsig進(jìn)程開始執(zhí)行并向processig進(jìn)程發(fā)信號379
7.2.4 系統(tǒng)檢測當(dāng)前進(jìn)程接收到信號并準(zhǔn)備處理381
7.2.5 系統(tǒng)檢測信號處理函數(shù)指針掛接是否正常382
7.2.6 調(diào)整processig進(jìn)程的內(nèi)核棧結(jié)構(gòu),使之先執(zhí)行信號處理函數(shù)383
7.2.7 信號對進(jìn)程執(zhí)行狀態(tài)的影響386
7.3 小結(jié)393
第8章 操作系統(tǒng)的設(shè)計指導(dǎo)思想395
8.1 運(yùn)行一個最簡單的程序,看操作系統(tǒng)為程序運(yùn)行做了哪些工作395
8.2 操作系統(tǒng)的設(shè)計指導(dǎo)思想—主奴機(jī)制398
8.2.1 主奴機(jī)制中的進(jìn)程及進(jìn)程創(chuàng)建機(jī)制399
8.2.2 操作系統(tǒng)在內(nèi)存管理中的主奴機(jī)制400
8.2.3 操作系統(tǒng)在文件系統(tǒng)中體現(xiàn)的主奴機(jī)制401
8.3 實(shí)現(xiàn)主奴機(jī)制的三種關(guān)鍵技術(shù)402
8.3.1 保護(hù)和分頁402
8.3.2 特權(quán)級405
8.3.3 中斷405
8.4 建立主奴機(jī)制的決定性因素—先機(jī)407
8.5 軟件和硬件的關(guān)系:主機(jī)與進(jìn)程、外設(shè)與文件408
8.5.1 非用戶進(jìn)程—進(jìn)程0、進(jìn)程1、shell進(jìn)程408
8.5.2 文件與數(shù)據(jù)存儲409
8.6 父子進(jìn)程共享頁面414
8.7 操作系統(tǒng)的全局中斷與進(jìn)程的局部中斷—信號414
8.8 小結(jié)415
結(jié)束語415
“新設(shè)計團(tuán)隊”簡介416
附錄 搭建Linux 0.11系統(tǒng)環(huán)境421

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) rgspecialties.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號