上篇 Windows操作系统实验与实践第1章 生产者-消费者实验 3
1.1 实验目的 3
1.2 预备知识 3
1.2.1 基本概念 3
1.2.2 Windows SDK简介 6
1.2.3 并发程序设计 7
1.2.4 Windows程序设计简介 7
1.2.5 API函数 9
1.2.6 相关函数 10
1.3 实验内容 13
1.4 实验指导 13
1.4.1 程序流程图 13
1.4.2 参考部分源程序代码 14
1.4.3 程序运行结果 18
1.4.4 简要分析和说明 19
1.4.5 深入探讨和研究 21
第2章 进程死锁模拟实验 27
2.1 实验目的 27
2.2 预备知识 27
2.2.1 基本概念 27
2.2.2 句柄简介 29
2.2.3 内核对象简介 31
2.2.4 Windows API简介 32
2.2.5 相关函数 33
2.3 实验内容 33
2.4 实验指导 34
2.4.1 程序流程图 34
2.4.2 参考程序源代码 34
2.4.3 程序运行结果及简要分析 36
2.4.4 深入探讨和研究 45
第3章 页式存储管理部分功能模拟实验 46
3.1 实验目的 46
3.2 基本概念 46
3.2.1 虚拟存储器 46
3.2.2 程序的局部性原理 47
3.3 实验内容 48
3.4 实验指导 52
3.4.1 实验步骤 52
3.4.2 程序流程图 53
3.4.3 参考部分源程序代码 53
3.4.4 程序运行结果及简要分析 55
3.4.5 深入探讨和研究 57
第4章 设备管理模拟实验 62
4.1 实验目的 62
4.2 预备知识 62
4.2.1 基本概念 62
4.2.2 设备处理程序 63
4.2.3 Windows设备驱动程序简介 64
4.2.4 相关函数 65
4.3 实验内容 66
4.4 参考源程序代码 67
第5章 文件管理模拟实验 70
5.1 实验目的 70
5.2 预备知识 70
5.2.1 文件的组织结构 70
5.2.2 文件存储空间的管理 71
5.2.3 文件目录管理 72
5.2.4 文件系统的接口 73
5.2.5 相关函数 74
5.3 实验内容 75
5.4 实验指导 75
5.4.1 实现文件基本操作的源程序代码(仅供参考) 75
5.4.2 实现文件属性操作的源程序代码(仅供参考) 76
下篇 Linux操作系统实验与实践第6章 预备知识 81
6.1 Red hat Linux简介 81
6.2 Ubuntu简介 83
6.2.1 安装与设置Ubuntu 84
6.2.2 Ubuntu常用服务安装 87
6.3 Linux的特性 87
6.4 Linux操作系统的核心结构 88
6.5 Linux操作系统的特点 90
第7章 初步使用Linux 91
7.1 实验目的 91
7.2 实验指导 91
7.2.1 C语言使用简介 91
7.2.2 文件编辑器vi简介 91
7.2.3 GNU C编译器 93
7.2.4 gdb调试工具 94
7.3 实验基本原理 95
7.4 练习程序 97
第8章 系统调用 98
8.1 实验目的 98
8.2 实验基本原理 98
8.3 实验参考程序 98
8.4 提高与深化 104
第9章 进程创建 106
9.1 实验目的 106
9.2 实验内容 106
9.3 实验指导 106
9.3.1 进程的基本概念 106
9.3.2 进程映像 107
9.3.3 进程所涉及的系统调用 107
9.4 参考程序源代码 109
9.5 运行结果及分析 109
9.6 深入理解fork() 110
第10章 进程控制实验 111
10.1 实验目的 111
10.2 实验内容 111
10.3 实验指导 111
10.3.1 实验所涉及的系统调用 111
10.3.2 参考源程序代码 113
10.3.3 深入分析和讨论 114
第11章 进程互斥实验 115
11.1 实验目的与实验内容 115
11.1.1 实验目的 115
11.1.2 实验内容 115
11.2 实验指导 115
11.2.1 实验所涉及的系统调用 115
11.2.2 部分源程序代码 116
11.2.3 运行结果及分析 116
11.3 提高与深化 117
第12章 进程同步实验 118
12.1 实验目的 118
12.2 实验的基本原理 118
12.2.1 PV操作的基本概念 118
12.2.2 Linux的进程同步原语 119
12.3 参考源程序 120
第13章 进程通信实验 123
13.1 信号机制 123
13.1.1 实验目的 123
13.1.2 实验内容 123
13.1.3 实验指导 123
13.1.4 本次实验所涉及的中断调用 124
13.1.5 部分源程序代码 126
13.1.6 源程序分析及思考 127
13.2 进程管道通信 127
13.2.1 实验目的 127
13.2.2 实验内容 127
13.2.3 实验指导 128
13.2.4 部分源程序代码及结果分析 129
13.3 消息的发送与接收 130
13.3.1 实验目的 130
13.3.2 实验内容 131
13.3.3 实验指导 131
13.3.4 部分源程序代码 135
13.3.5 运行结果简要分析和说明 136
13.4 共享存储区通信 136
13.4.1 实验目的 136
13.4.2 实验内容 136
13.4.3 实验指导 136
13.4.4 部分源程序代码 139
13.4.5 源程序运行结果简单分析 140
第14章 存储管理-页面置换算法模拟 142
14.1 实验目的 142
14.2 实验基本原理 142
14.3 实验内容 143
14.4 实验前的准备工作 143
14.5 实验指导 144
14.5.1 虚拟存储系统 144
14.5.2 页面置换算法 144
14.5.3 参考源程序代码 144
14.5.4 该程序运行结果及对该结果的简要分析 150
第15章 虚拟文件系统模拟实验 151
15.1 实验目的 151
15.2 实验基本原理 152
15.3 实验指导 155
15.3.1 参考源程序代码 155
15.3.2 源程序的简要说明 188
第16章 Linux socket编程实验 189
16.1 实验目的 189
16.2 实验基本原理 189
16.2.1 socket的基本概念 189
16.2.2 socket的建立 189
16.2.3 socket的配置 190
16.3 参考源程序代码 193
第17章 Linux设备驱动程序 197
17.1 实验目的 197
17.2 实验基本原理 197
附录A Windows API函数清单 200
附录B Linux常用命令简介 222
B1 Linux的登录与退出 222
B2 Linux命令格式 222
B3 常用命令 223
B4 用cat命令查看/proc动态文件系统目录下的文件,辨识其中的系统信息 231
附录C Linux部分源代码 232
附录D 操作系统实验报告要求 271
参考文献 272