书籍详情
操作系统实验教程――Web服务器性能优化
作者:鲁强
出版社:电子工业出版社
出版时间:2023-09-01
ISBN:9787121462511
定价:¥49.80
购买这本书可以去
内容简介
操作系统相关理论较为抽象和难懂,对于很多初学者来说很难理解这些抽象的内容。本书以“学以致用”为目标,以构建一个高性能Web服务器为案例,将操作系统的处理器管理、内存管理和文件管理的相关理论融入到Web服务器构建的过程中。随着将操作系统中的这些理论逐步融入到Web服务器,读者会发现Web服务器的并发访问性能在逐步提高,这能极大地激发读者的学习兴趣。本书中的实验先易后难,从一个简单的单进程Web服务器开始,通过引入多进程、多线程、同步互斥、页面缓存及替换、内存分配及管理、文件系统、网络通信和零拷贝等概念和算法,逐步提高Web服务器并发访问性能。本书中的实验强调数据分析,通过在程序代码中加入性能统计参数以及应用性能评估工具来获得Web服务器运行状态数据;通过数据分析获得影响Web服务器并发访问性能的关键问题;通过引入操作系统的相关理论来解决这些问题。本书既可作为“操作系统”课程的配套实验教材,也可以作为系 程人员动手实践的参考教材。
作者简介
鲁强,工学博士,副教授。参加的学术组织:中国计算机学会(CCF)、美国计算机学会(ACM)。出版著作情况:刘华, 屈红刚, 鲁强. 软件设计― 考点解析与模拟训练. 清华大学出版社, 2006.鲁强. 操作系统实验教程―以设计、实现高性能Web服务器为例,北京师范大学出版社,2018.所承担过的重点科研或教研项目: 重点研发计划-智能化海上高精度地震数据处理关键技术下子课题海上高精度地震数据处理平台智能化辅助系统研发;校级教改项目:操作系统重点课程建设;校级教改项目:操作系统实验环境建设。
目录
第1章 Web服务器开发基础 1
1.1 Web服务器简介 1
1.2 TCP/IP协议族与HTTP 2
1.2.1 TCP/IP协议族 2
1.2.2 HTTP 2
1.3 Socket编程 6
1.4 开发环境与测试环境 14
1.4.1 GCC 15
1.4.2 构建makefile 20
1.4.3 GDB 20
1.4.4 服务性能测试工具 26
1.4.5 性能指标 34
1.5 实验1 Web服务器的初步实现 35
第2章 Web服务器的多进程和多线程模型 37
2.1 背景介绍 37
2.2 进程模型 37
2.2.1 Linux中创建进程的相关函数 37
2.2.2 Linux中进程间通信的相关函数 39
2.2.3 多进程Web服务器模型 47
2.2.4 实验2 Web服务器的多进程模型实现 48
2.3 线程模型 49
2.3.1 Linux线程模型 49
2.3.2 POSIX 线程库接口 49
2.3.3 Linux线程间的同步与互斥 53
2.3.4 Web服务器的多线程模型 55
2.3.5 实验3 Web服务器的多线程模型 61
2.4 线程池模型 62
2.4.1 实验4 Web服务器的线程池模型 67
2.5 业务分割模型 67
2.5.1 实验5 Web服务器的业务分割模型 70
2.6 混合模型 71
2.6.1 实验6 Web服务器的混合模型 73
第3章 Web服务器的内存管理 74
3.1 背景介绍 74
3.2 Web页面的缓存逻辑结构 75
3.3 Web页面的缓存置换算法 81
3.3.1 实验7 Web服务器页面缓存及其替换方法评估 88
3.4 Web服务器的内存管理模型 88
3.4.1 Linux内核内存管理模型 89
3.4.2 Linux用户库函数管理内存方法 97
3.4.3 Nginx 内存管理模型 106
3.4.4 实验8 Web服务器的内存管理 108
第4章 Web服务器的文件存储系统 109
4.1 背景介绍 109
4.2 Linux中的Ext文件系统 109
4.2.1 Ext 2文件系统结构 109
4.2.2 Ext 2文件系统分析 110
4.3 TFS文件系统 111
4.3.1 TFS文件系统架构 111
4.3.2 TFS文件系统性能分析 114
4.4 实验9 Web服务器的文件系统 114
第5章 Web服务器的网络I/O性能优化 116
5.1 背景介绍 116
5.2 Socket I/O多路复用 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函数 138
5.4.2 异步通知响应 140
5.5 零拷贝 143
5.6 实验10 Web服务器网络I/O优化 145
1.1 Web服务器简介 1
1.2 TCP/IP协议族与HTTP 2
1.2.1 TCP/IP协议族 2
1.2.2 HTTP 2
1.3 Socket编程 6
1.4 开发环境与测试环境 14
1.4.1 GCC 15
1.4.2 构建makefile 20
1.4.3 GDB 20
1.4.4 服务性能测试工具 26
1.4.5 性能指标 34
1.5 实验1 Web服务器的初步实现 35
第2章 Web服务器的多进程和多线程模型 37
2.1 背景介绍 37
2.2 进程模型 37
2.2.1 Linux中创建进程的相关函数 37
2.2.2 Linux中进程间通信的相关函数 39
2.2.3 多进程Web服务器模型 47
2.2.4 实验2 Web服务器的多进程模型实现 48
2.3 线程模型 49
2.3.1 Linux线程模型 49
2.3.2 POSIX 线程库接口 49
2.3.3 Linux线程间的同步与互斥 53
2.3.4 Web服务器的多线程模型 55
2.3.5 实验3 Web服务器的多线程模型 61
2.4 线程池模型 62
2.4.1 实验4 Web服务器的线程池模型 67
2.5 业务分割模型 67
2.5.1 实验5 Web服务器的业务分割模型 70
2.6 混合模型 71
2.6.1 实验6 Web服务器的混合模型 73
第3章 Web服务器的内存管理 74
3.1 背景介绍 74
3.2 Web页面的缓存逻辑结构 75
3.3 Web页面的缓存置换算法 81
3.3.1 实验7 Web服务器页面缓存及其替换方法评估 88
3.4 Web服务器的内存管理模型 88
3.4.1 Linux内核内存管理模型 89
3.4.2 Linux用户库函数管理内存方法 97
3.4.3 Nginx 内存管理模型 106
3.4.4 实验8 Web服务器的内存管理 108
第4章 Web服务器的文件存储系统 109
4.1 背景介绍 109
4.2 Linux中的Ext文件系统 109
4.2.1 Ext 2文件系统结构 109
4.2.2 Ext 2文件系统分析 110
4.3 TFS文件系统 111
4.3.1 TFS文件系统架构 111
4.3.2 TFS文件系统性能分析 114
4.4 实验9 Web服务器的文件系统 114
第5章 Web服务器的网络I/O性能优化 116
5.1 背景介绍 116
5.2 Socket I/O多路复用 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函数 138
5.4.2 异步通知响应 140
5.5 零拷贝 143
5.6 实验10 Web服务器网络I/O优化 145
猜您喜欢