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