第一篇 Windows系统下C实验指导 3
第1章 Visual C++开发环境介绍 3
1.1 Visual C++概述 3
1.1.1 Visual C++简介 3
1.1.2 Visual C++6.0的主要特性 3
1.1.3 Visual C++6.0的窗口 4
1.2 Visual C++6.0控制台程序 5
1.2.1 Visual C++6.0控制台程序的建立 5
1.2.2 Visual C++6.0工程的文件组成 9
1.3 MSDN概述 10
1.3.1 MSDN简介 10
1.3.2 MSDN使用 11
第2章 Windows的进程管理 12
2.1 实验一:线程的创建与撤销 12
2.1.1 实验目的 12
2.1.2 实验准备知识:相关API函数介绍 12
2.1.3 实验内容 14
2.1.4 实验要求 14
2.1.5 实验指导 14
2.1.6 实验总结 16
2.1.7 源程序 16
2.1.8 实验展望 17
2.2 实验二:线程的同步 17
2.2.1 实验目的 17
2.2.2 实验准备知识:相关API函数介绍 17
2.2.3 实验内容 21
2.2.4 实验要求 21
2.2.5 实验指导 21
2.2.6 实验总结 22
2.2.7 源程序 22
2.2.8 实验展望 24
2.3 实验三:线程的互斥 24
2.3.1 实验目的 24
2.3.2 实验准备知识:相关API函数介绍 24
2.3.3 实验内容 28
2.3.4 实验要求 28
2.3.5 实验指导 28
2.3.6 实验总结 28
2.3.7 源程序 29
2.3.8 实验展望 30
2.4 实验四:使用命名管道实现进程通信 30
2.4.1 实验目的 30
2.4.2 实验准备知识:相关API函数介绍 31
2.4.3 实验内容 33
2.4.4 实验要求 33
2.4.5 实验指导 34
2.4.6 实验总结 35
2.4.7 源程序 36
2.4.8 实验展望 39
第3章 Windows的内存管理 40
3.1 实验一:动态链接库的建立与调用 40
3.1.1 实验目的 40
3.1.2 实验准备知识:动态链接库介绍 40
3.1.3 实验内容 45
3.1.4 实验要求 46
3.1.5 实验指导 46
3.1.6 实验总结 51
3.1.7 源程序 51
3.1.8 实验展望 53
3.2 实验二:系统内存使用统计 53
3.2.1 实验目的 53
3.2.2 实验准备知识:相关数据结构及API函数介绍 53
3.2.3 实验内容 57
3.2.4 实验要求 57
3.2.5 实验指导 57
3.2.6 实验总结 58
3.2.7 源程序 58
3.2.8 实验展望 59
第4章 Windows的文件管理 60
4.1 实验一:采用无缓冲方式实现文件读/写 60
4.1.1 实验目的 60
4.1.2 实验准备知识:相关API函数介绍 60
4.1.3 实验内容 65
4.1.4 实验要求 65
4.1.5 实验指导 65
4.1.6 实验总结 66
4.1.7 源程序 66
4.2 实验二:采用高速缓存实现文件读/写 68
4.2.1 实验目的 68
4.2.2 实验准备知识:高速缓存 68
4.2.3 实验内容 68
4.2.4 实验要求 68
4.2.5 实验指导 68
4.2.6 实验总结 69
4.2.7 源程序 69
4.3 实验三:采用异步方式实现文件读/写 70
4.3.1 实验目的 70
4.3.2 实验准备知识:文件异步传输及相关API函数介绍 71
4.3.3 实验内容 71
4.3.4 实验要求 72
4.3.5 实验指导 72
4.3.6 实验总结 72
4.3.7 源程序 72
4.4 实验四:实现文件读/写的3种方式比较 74
4.4.1 实验目的 74
4.4.2 实验准备知识:相关API函数介绍 74
4.4.3 实验内容 75
4.4.4 实验要求 75
4.4.5 实验指导 75
4.4.6 实验总结 75
4.4.7 源程序 76
4.4.8 实验展望 81
第5章 Windows的设备管理 82
5.1 实验一:获取磁盘基本信息 82
5.1.1 实验目的 82
5.1.2 实验准备知识:相关数据结构及API函数介绍 82
5.1.3 实验内容 83
5.1.4 实验要求 84
5.1.5 实验指导 84
5.1.6 实验总结 84
5.1.7 源程序 85
5.2 实验二:读/写磁盘指定位置信息 86
5.2.1 实验目的 86
5.2.2 实验准备知识:相关API函数介绍 87
5.2.3 实验内容 88
5.2.4 实验要求 88
5.2.5 实验指导 88
5.2.6 实验总结 88
5.2.7 源程序 89
5.2.8 实验展望 93
第二篇 Windows系统下Java实验指导 97
第6章 Java语言概述 97
6.1 Java的产生 97
6.2 Java的特点 98
6.3 Java的现状与前景 99
6.4 Java的体系结构 100
6.5 Java的运行环境及配置 100
第7章 进程管理 104
7.1 实验一:线程的创建与撤销(Java) 104
7.1.1 实验目的 104
7.1.2 实验准备知识 104
7.1.3 实验内容 109
7.1.4 实验要求 109
7.1.5 实验指导 109
7.1.6 实验总结 111
7.1.7 源程序 111
7.2 实验二:线程的同步(Java) 112
7.2.1 实验目的 112
7.2.2 实验准备知识 112
7.2.3 实验内容 114
7.2.4 实验要求 114
7.2.5 实验指导 114
7.2.6 实验总结 115
7.2.7 源程序 116
7.3 实验三:线程的互斥(Java) 120
7.3.1 实验目的 120
7.3.2 实验准备知识 120
7.3.3 实验内容 121
7.3.4 实验要求 121
7.3.5 实验指导 121
7.3.6 实验总结 121
7.3.7 源程序 122
第8章 内存管理 125
8.1 实验一:动态链接库的建立与调用(Java) 125
8.1.1 实验目的 125
8.1.2 实验准备知识 125
8.1.3 实验内容 127
8.1.4 实验要求 127
8.1.5 实验指导 127
8.1.6 实验总结 127
8.1.7 源程序 129
8.2 实验二:系统内存使用统计(Java) 131
8.2.1 实验目的 131
8.2.2 实验准备知识:相关数据结构以及类和接口 131
8.2.3 实验内容 134
8.2.4 实验要求 134
8.2.5 实验指导 134
8.2.6 实验总结 135
8.2.7 源程序 137
第9章 文件管理(Java) 140
9.1 实验:文件管理与IO流(Java) 140
9.1.1 实验目的 140
9.1.2 实验准备知识 140
9.1.3 实验内容 143
9.1.4 实验要求 143
9.1.5 实验指导 143
9.1.6 实验总结 143
9.1.7 源程序 145
第三篇 Linux系统实验指导 151
第10章 Linux系统的安装和使用 151
10.1 安装CentOS 7 153
10.1.1 实验目的 153
10.1.2 实验内容和步骤 153
10.2 Linux系统的基本操作 157
10.2.1 实验目的 157
10.2.2 实验内容和步骤 157
10.3 常用的Linux命令 161
10.3.1 实验目的 161
10.3.2 实验准备知识:常用的Linux命令 162
10.3.3 实验内容和步骤 163
10.4 vi的使用 168
10.4.1 实验目的 168
10.4.2 实验准备知识 168
10.4.3 实验内容和步骤 172
10.5 Linux的编辑器gcc 172
10.5.1 实验目的 172
10.5.2 实验准备知识 172
10.5.3 实验内容和步骤 173
10.6 Shell程序设计 175
10.6.1 实验目的 175
10.6.2 实验准备知识 175
10.6.3 实验内容和步骤 184
第11章 Linux的进程管理 186
11.1 实验目的 186
11.2 实验准备知识 186
11.2.1 进程控制的API 187
11.2.2 进程之间通信的API 190
11.3 实验内容 190
11.3.1 编制实现软中断通信的程序 190
11.3.2 编制实现管道通信的程序 190
11.4 实验指导 191
11.4.1 软中断通信算法流程图 191
11.4.2 管道通信算法流程图 192
11.5 实验总结 193
11.5.1 软中断通信的运行 193
11.5.2 管道通信的运行 194
11.6 源程序 194
11.6.1 软中断通信的源程序 194
11.6.2 管道通信的源程序 195
第12章 Linux的存储器管理 196
12.1 实验目的 196
12.2 实验准备知识 196
12.2.1 实时监控内存使用情况 196
12.2.2 使用Linux命令回收内存 197
12.2.3 虚拟内存实现的机制 197
12.3 实验内容 198
12.3.1 内存的监控、检查和回收 198
12.3.2 模拟FIFO、LRU和OPT页面置换算法 198
12.4 实验指导 199
12.4.1 FIFO 199
12.4.2 LRU 200
12.4.3 OPT 201
12.5 实验总结 202
12.6 源程序 202
第13章 Linux的设备管理 209
13.1 实验目的 209
13.2 实验准备知识 209
13.2.1 设备驱动程序简介 209
13.2.2 设备驱动程序与外部接口 210
13.2.3 设备驱动程序的组织结构 211
13.3 实验内容 211
13.3.1 字符类型设备的驱动程序 211
13.3.2 块类型设备的驱动程序 211
13.4 实验指导 211
13.4.1 字符类型设备的驱动程序 211
13.4.2 块类型设备的驱动程序 217
13.5 实验总结 222
13.6 源程序 222
13.6.1 字符设备驱动程序 222
13.6.2 块设备驱动程序 226
第14章 Linux的文件管理 229
14.1 实验目的 229
14.2 实验准备知识 229
14.2.1 文件结构 229
14.2.2 目录管理 230
14.2.3 Linux的EXT4文件系统 231
14.2.4 相关函数 232
14.3 实验内容 233
14.3.1 设计并实现一个文件执行程序 233
14.3.2 设计并实现一个一级文件系统程序 233
14.4 实验指导 233
14.5 实验总结 234
14.6 源程序 234
14.6.1 设计并实现一个文件执行程序 234
14.6.2 设计并实现一个一级文件系统程序 234
第15章 Linux内核编译 237
15.1 实验目的 237
15.2 实验准备知识 237
15.2.1 内核简介 237
15.2.2 内核编译涉及的相关命令和术语 238
15.3 实验内容 239
15.4 实验指导 239
15.5 实验总结 245
第四篇 操作系统学习指导和习题解析 249
第16章 操作系统概述 249
16.1 知识点学习指导 249
16.1.1 操作系统的定义 249
16.1.2 操作系统的产生和发展 249
16.1.3 操作系统的特征 250
16.1.4 操作系统的功能 250
16.1.5 操作系统的类型 251
16.2 典型例题分析 253
16.3 自测题 256
16.4 自测题答案 258
16.5 作业 259
第17章 进程与线程 260
17.1 知识点学习指导 260
17.1.1 进程的引入 260
17.1.2 进程的状态及其组成 261
17.1.3 进程控制 261
17.1.4 线程 262
17.2 典型例题分析 262
17.3 自测题 266
17.4 自测题答案 270
17.5 作业 270
第18章 进程同步与通信 272
18.1 知识点学习指导 272
18.1.1 进程同步与互斥 272
18.1.2 经典进程同步问题 273
18.1.3 AND信号量 273
18.1.4 管程 274
18.1.5 进程通信 274
18.2 典型例题分析 274
18.3 自测题 284
18.4 自测题答案 287
18.5 作业 288
第19章 调度与死锁 290
19.1 知识点学习指导 290
19.1.1 调度类型与准则 290
19.1.2 调度算法 291
19.1.3 死锁的基本概念 292
19.1.4 死锁的预防与避免 293
19.1.5 死锁的检测与解除 295
19.2 典型例题分析 296
19.3 自测题 302
19.4 自测题答案 306
19.5 作业 307
第20章 存储管理 309
20.1 知识点学习指导 309
20.1.1 程序的装入与链接 309
20.1.2 连续分配存储管理 310
20.1.3 页式存储管理 312
20.1.4 段式存储管理 312
20.1.5 段页式存储管理 313
20.2 典型例题分析 313
20.3 自测题 317
20.4 自测题答案 319
20.5 作业 320
第21章 虚拟存储管理 322
21.1 知识点学习指导 322
21.1.1 虚拟存储器的引入 322
21.1.2 请求页式存储管理 322
21.1.3 请求段式存储管理 324
21.1.4 段式存储管理与页式存储管理的比较 324
21.2 典型例题分析 325
21.3 自测题 328
21.4 自测题答案 331
21.5 作业 332
第22章 设备管理 334
22.1 知识点学习指导 334
22.1.1 I/O管理概述 334
22.1.2 I/O控制方式 335
22.1.3 I/O系统 335
22.1.4 磁盘管理 337
22.1.5 缓冲管理 338
22.2 典型例题分析 338
22.3 自测题 343
22.4 自测题答案 346
22.5 作业 347
第23章 文件管理 349
23.1 知识点学习指导 349
23.1.1 文件和文件系统 349
23.1.2 文件的结构 349
23.1.3 目录 350
23.1.4 文件存储空间的管理 351
23.1.5 文件存取控制 352
23.2 典型例题分析 353
23.3 自测题 357
23.4 自测题答案 360
23.5 作业 361
附录A 试卷样例 363
附录A.1 试卷A 363
附录A.2 试卷A答案 367
附录A.3 试卷B 371
附录A.4 试卷B答案 376
参考文献 380