操作系統(tǒng)實(shí)驗(yàn)教程——Web服務(wù)器性能優(yōu)化
定 價(jià):49.8 元
- 作者:魯強(qiáng)
- 出版時(shí)間:2023/9/1
- ISBN:9787121462511
- 出 版 社:電子工業(yè)出版社
- 中圖法分類(lèi):TP316
- 頁(yè)碼:152
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
操作系統(tǒng)相關(guān)理論較為抽象和難懂,對(duì)于很多初學(xué)者來(lái)說(shuō)很難理解這些抽象的內(nèi)容。本書(shū)以“學(xué)以致用”為目標(biāo),以構(gòu)建一個(gè)高性能Web服務(wù)器為案例,將操作系統(tǒng)的處理器管理、內(nèi)存管理和文件管理的相關(guān)理論融入到Web服務(wù)器構(gòu)建的過(guò)程中。隨著將操作系統(tǒng)中的這些理論逐步融入到Web服務(wù)器,讀者會(huì)發(fā)現(xiàn)Web服務(wù)器的并發(fā)訪問(wèn)性能在逐步提高,這能極大地激發(fā)讀者的學(xué)習(xí)興趣。本書(shū)中的實(shí)驗(yàn)先易后難,從一個(gè)簡(jiǎn)單的單進(jìn)程Web服務(wù)器開(kāi)始,通過(guò)引入多進(jìn)程、多線程、同步互斥、頁(yè)面緩存及替換、內(nèi)存分配及管理、文件系統(tǒng)、網(wǎng)絡(luò)通信和零拷貝等概念和算法,逐步提高Web服務(wù)器并發(fā)訪問(wèn)性能。本書(shū)中的實(shí)驗(yàn)強(qiáng)調(diào)數(shù)據(jù)分析,通過(guò)在程序代碼中加入性能統(tǒng)計(jì)參數(shù)以及應(yīng)用性能評(píng)估工具來(lái)獲得Web服務(wù)器運(yùn)行狀態(tài)數(shù)據(jù);通過(guò)數(shù)據(jù)分析獲得影響Web服務(wù)器并發(fā)訪問(wèn)性能的關(guān)鍵問(wèn)題;通過(guò)引入操作系統(tǒng)的相關(guān)理論來(lái)解決這些問(wèn)題。本書(shū)既可作為“操作系統(tǒng)”課程的配套實(shí)驗(yàn)教材,也可以作為系統(tǒng)編程人員動(dòng)手實(shí)踐的參考教材。
魯強(qiáng),工學(xué)博士,副教授。參加的學(xué)術(shù)組織:中國(guó)計(jì)算機(jī)學(xué)會(huì)(CCF)、美國(guó)計(jì)算機(jī)學(xué)會(huì)(ACM)。出版著作情況:劉華, 屈紅剛, 魯強(qiáng). 軟件設(shè)計(jì)— 考點(diǎn)解析與模擬訓(xùn)練. 清華大學(xué)出版社, 2006.魯強(qiáng). 操作系統(tǒng)實(shí)驗(yàn)教程—以設(shè)計(jì)、實(shí)現(xiàn)高性能Web服務(wù)器為例,北京師范大學(xué)出版社,2018.所承擔(dān)過(guò)的重點(diǎn)科研或教研項(xiàng)目:國(guó)家重點(diǎn)研發(fā)計(jì)劃-智能化海上高精度地震數(shù)據(jù)處理關(guān)鍵技術(shù)下子課題海上高精度地震數(shù)據(jù)處理平臺(tái)智能化輔助系統(tǒng)研發(fā);校級(jí)教改項(xiàng)目---操作系統(tǒng)重點(diǎn)課程建設(shè);校級(jí)教改項(xiàng)目---操作系統(tǒng)實(shí)驗(yàn)環(huán)境建設(shè)。
第1章 Web服務(wù)器開(kāi)發(fā)基礎(chǔ) 1
1.1 Web服務(wù)器簡(jiǎn)介 1
1.2 TCP/IP協(xié)議族與HTTP 2
1.2.1 TCP/IP協(xié)議族 2
1.2.2 HTTP 2
1.3 Socket編程 6
1.4 開(kāi)發(fā)環(huán)境與測(cè)試環(huán)境 14
1.4.1 GCC 15
1.4.2 構(gòu)建makefile 20
1.4.3 GDB 20
1.4.4 服務(wù)性能測(cè)試工具 26
1.4.5 性能指標(biāo) 34
1.5 實(shí)驗(yàn)1 Web服務(wù)器的初步實(shí)現(xiàn) 35
第2章 Web服務(wù)器的多進(jìn)程和多線程模型 37
2.1 背景介紹 37
2.2 進(jìn)程模型 37
2.2.1 Linux中創(chuàng)建進(jìn)程的相關(guān)函數(shù) 37
2.2.2 Linux中進(jìn)程間通信的相關(guān)函數(shù) 39
2.2.3 多進(jìn)程Web服務(wù)器模型 47
2.2.4 實(shí)驗(yàn)2 Web服務(wù)器的多進(jìn)程模型實(shí)現(xiàn) 48
2.3 線程模型 49
2.3.1 Linux線程模型 49
2.3.2 POSIX 線程庫(kù)接口 49
2.3.3 Linux線程間的同步與互斥 53
2.3.4 Web服務(wù)器的多線程模型 55
2.3.5 實(shí)驗(yàn)3 Web服務(wù)器的多線程模型 61
2.4 線程池模型 62
2.4.1 實(shí)驗(yàn)4 Web服務(wù)器的線程池模型 67
2.5 業(yè)務(wù)分割模型 67
2.5.1 實(shí)驗(yàn)5 Web服務(wù)器的業(yè)務(wù)分割模型 70
2.6 混合模型 71
2.6.1 實(shí)驗(yàn)6 Web服務(wù)器的混合模型 73
第3章 Web服務(wù)器的內(nèi)存管理 74
3.1 背景介紹 74
3.2 Web頁(yè)面的緩存邏輯結(jié)構(gòu) 75
3.3 Web頁(yè)面的緩存置換算法 81
3.3.1 實(shí)驗(yàn)7 Web服務(wù)器頁(yè)面緩存及其替換方法評(píng)估 88
3.4 Web服務(wù)器的內(nèi)存管理模型 88
3.4.1 Linux內(nèi)核內(nèi)存管理模型 89
3.4.2 Linux用戶(hù)庫(kù)函數(shù)管理內(nèi)存方法 97
3.4.3 Nginx 內(nèi)存管理模型 106
3.4.4 實(shí)驗(yàn)8 Web服務(wù)器的內(nèi)存管理 108
第4章 Web服務(wù)器的文件存儲(chǔ)系統(tǒng) 109
4.1 背景介紹 109
4.2 Linux中的Ext文件系統(tǒng) 109
4.2.1 Ext 2文件系統(tǒng)結(jié)構(gòu) 109
4.2.2 Ext 2文件系統(tǒng)分析 110
4.3 TFS文件系統(tǒng) 111
4.3.1 TFS文件系統(tǒng)架構(gòu) 111
4.3.2 TFS文件系統(tǒng)性能分析 114
4.4 實(shí)驗(yàn)9 Web服務(wù)器的文件系統(tǒng) 114
第5章 Web服務(wù)器的網(wǎng)絡(luò)I/O性能優(yōu)化 116
5.1 背景介紹 116
5.2 Socket I/O多路復(fù)用 117
5.2.1 select 117
5.2.2 poll 122
5.2.3 epoll 123
5.3 阻塞和非阻塞I/O 126
5.4 異步I/O 138
5.4.1 異步I/O函數(shù) 138
5.4.2 異步通知響應(yīng) 140
5.5 零拷貝 143
5.6 實(shí)驗(yàn)10 Web服務(wù)器網(wǎng)絡(luò)I/O優(yōu)化 145