操作系统实验教程及Linux和Windows系统调用编程(计算机课程设计与综合实践规划教材)
- 定价:¥35.00
- 校园优惠价:¥29.75 (85折) (马上了解)
- 评分:




(已有0条评价)
- 促销活动:
- 此商品暂时缺货(可留下联系方式,到货将第一时间通知您)
-
如果您急需团购,可点击“团购急调”按钮将此书加入购物车,由客服人员为您协调调货!
>> 查看详细说明
信息提示
关闭
如果您急需团购,可点击“团购急调”按钮将此书加入购物车,由我们的客服人员为您协调调货!
- 团购订单标准如下:
- 单品满30册可选择团购服务。
- 提交团购订单后,服务人员会主动和您联系,并根据您的会员等级、购买数量、金额、时间、配送要求等情况和您协商,以促成最终的成交。
- 有关团体购书的任何问题请随时联系:(010)63970506
内容简介
书籍 计算机书籍
《操作系统实验教程及Linux和Windows系统调用编程》是根据操作系统课程教学大纲的要求,比较系统地介绍对于理解和掌握现代操作系统的功能技术应该进行的一些基本实验。全书分成4篇共19章。第1篇共5章,介绍Linux的安装和使用。第2篇共7章,描述理解操作系统原理实现所涉及的基本算法的模拟,结合操作系统理论给出实现操作系统基本功能所涉及的各种数据结构和算法的描述和实现流程,有的算法还给出了实现的源程序示例。第3篇共3章,介绍UNIX和Linux操作系统中进程和线程控制、进程同步和通信及文件系统所涉及的系统调用的API,以及相应的源程序示例。第4篇共4章,介绍Windows 2000/XP操作系统涉及的各部分基本概念和相应的数据结构,包括应用程序基础和进程控制、线程同步和调度、存储器管理中的虚拟内存的系统调用及文件系统的系统调用等的API,以及相应的源程序示例。本书内容丰富,覆盖面广,是一本很好的计算机操作系统实验指导教材。
本书既考虑本科生的实验要求,又兼顾专科生的实验环节,也可作为研究生对UNIX、Linux和Windows 2000/XP这些操作系统进行熟悉和编程的参考教材,同时对从事系统软件开发的人员也是一本较好的参考书。
目录
第1篇 Linux系统的安装和使用
第1章 Linux系统的安装和启动3
1.1 Linux的安装3
1.1.1 安装前的准备工作3
1.1.2 创建虚拟机3
1.1.3 安装Linux4
1.2 系统启动和用户管理6
1.2.1 系统的启动6
1.2.2 系统的关闭7
1.2.3 用户管理8
1.3 用户界面10
1.3.1 字符虚拟终端10
1.3.2 图形用户界面12
1.4 获取系统帮助信息13
1.4.1 man命令13
1.4.2 info命令14
1.4.3 apropos命令15
第2章 编译Linux内核16
2.1 Linux内核及gcc、gnumake版本16
2.2 准备内核源代码17
2.3 配置内核编译选项18
2.4 编译内核和模块19
2.5 修改启动设置19
第3章 UNIX/Linux文件系统的shell命令22
3.1 文件系统的安装和卸载22
3.2 了解Linux文件系统的目录结构和文件属性25
3.3 shell中的特殊字符27
3.4 目录操作28
操作系统实验教程及Linux和Windows系统调用编程目 录 3.4.1 创建目录和删除目录28
3.4.2 列出某个目录下的内容29
3.4.3 改变工作目录和确定当前所在的目录位置29
3.4.4 显示特定目录的大小29
3.4.5 复制目录和文件30
3.4.6 目录和文件的改名和移动30
3.4.7 改变文件或目录的存取权31
3.4.8 改变文件的所有者和同组用户32
3.5 文件管理32
3.5.1 连接和显示文件内容32
3.5.2 统计文件中包含的行、字和字符数34
3.5.3 分类命令34
3.5.4 建立链接的命令34
3.5.5 在文件中寻找正文模式35
3.5.6 查找指定的文件36
3.5.7 查找文件的路径命令37
3.6 输入输出重定向和管道操作命令37
3.6.1 输入输出的重定向37
3.6.2 管道操作命令38
3.7 文件压缩命令40
3.8 与进程有关的命令40
3.9 网络命令41
3.9.1 向特定主机发送ICMP包的命令41
3.9.2 与其他主机建立连接的命令41
3.9.3 远程文件传输命令42
3.9.4 邮件命令42
3.10 编译和运行程序命令43
3.11 其他常用命令45
3.11.1 清屏命令45
3.11.2 Linux 环境下支持的DOS软盘命令45
第4章 shell的程序设计46
4.1 了解Linux系统的shell46
4.2 运行shell程序的方法46
4.3 shell程序使用的环境变量和相关命令48
4.3.1 变量的定义命令48
4.3.2 用户定义的常用环境变量49
4.3.3 输出环境变量命令export50
4.3.4 位置参数51
4.3.5 shell预定义变量51
4.4 shell语言的控制结构53
4.4.1 测试条件表达式命令 53
4.4.2 循环语句56
4.4.3 case命令57
4.4.4 无条件控制语句break和continue57
4.5 一个典型的.profile文件58
第5章 屏幕编辑程序vi60
5.1 进入和退出vi60
5.2 在屏幕上设置光标61
5.3 在文件中设置光标62
5.4 编辑文本文件63
5.4.1 修改文本文件命令63
5.4.2 检索、移动和复制文本文件64
第2篇 操作系统模拟算法
第6章 处理机管理69
6.1 实验目的和要求69
6.2 实验内容69
6.2.1 设计一个按先来先服务的调度算法实现处理机调度69
6.2.2 设计一个按时间片轮转法实现处理机调度的程序70
6.2.3 设计一个按优先级调度的算法实现处理机调度70
6.3 按时间片轮转法进行CPU调度的程序示例71
第7章 死锁的避免76
7.1 实验目的和要求76
7.2 用银行家算法和随机算法实现资源分配76
7.3 资源分配算法的示例80
第8章 主存空间的分配与回收91
8.1 实验目的和要求91
8.2 可变式分区管理的主存的分配与回收91
8.2.1 采用首次适应算法管理内存91
8.2.2 采用最佳适应算法实现内存的分配与回收97
8.3 分页管理的主存分配与回收97
8.3.1 使用位示图管理主存空间97
8.3.2 采用主存分块表管理主存98
8.4 Linux系统内存的分配与回收99
8.5 程序示例100
8.5.1 可变分区管理示例100
8.5.2 页式管理示例104
8.6 实验题目113
第9章 虚拟存储器管理114
9.1 实验目的和要求114
9.2 实验内容114
9.2.1 模拟请求分页存储管理中的硬件地址变换的过程114
9.2.2 采用先进先出(或LRU)算法实现分页管理的缺页调度116
第10章 磁盘存储空间的管理118
10.1 实验目的和要求118
10.2 实验内容118
10.2.1 用位示图管理磁盘空间实现磁盘块的分配与回收118
10.2.2 采用空白文件目录管理磁盘空间119
10.2.3 模拟UNIX系统V的空闲块成组链接法实现磁盘
存储空间的管理120
10.3 实验题目123
第11章 文件系统124
11.1 实验目的和要求124
11.2 实验内容124
11.2.1 采用二级目录结构实现对磁盘文件管理124
11.2.2 模拟设计MS-DOS操作系统中磁盘文件的存储结构131
11.2.3 模拟设计便于直接存取的索引文件结构的操作134
11.3 索引文件的示例135
第12章 SPOOLING假脱机输入输出技术模拟实验140
12.1 实验目的和要求140
12.2 SPOOLING假脱机输出的程序模拟140
12.3 SPOOLING的模拟程序示例144
第3篇 UNIX和Linux系统调用编程
第13章 进程和线程控制153
13.1 实验目的和要求153
13.2 进程控制的API153
13.2.1 进程的创建和终止函数153
13.2.2 给进程指定一个新的运行程序的函数exec()158
13.2.3 父进程等待子进程终止160
13.3 UNIX和Linux多线程控制的API162
13.3.1 线程控制接口的API162
13.3.2 多线程同步166
13.3.3 线程同步的综合示例170
第14章 进程之间的通信177
14.1 实验目的和要求177
14.2 进程之间管道通信机制177
14.2.1 无名管道通信178
14.2.2 有名管道的通信181
14.3 IPC通信184
14.3.1 IPC资源及其数据结构184
14.3.2 信号量机制185
14.3.3 消息缓冲机制191
14.3.4 共享内存区机制198
第15章 文件系统的操作命令202
15.1 实验目的和要求202
15.2 文件系统的API202
15.2.1 UNIX和Linux支持的文件类型202
15.2.2 顺序文件的系统调用205
15.2.3 文件的随机存取211
15.3 目录操作的系统调用212
第4篇 Windows 2000/XP的系统调用编程
第16章 Windows应用程序基础和进程控制219
16.1 实验目的和要求219
16.2 应用程序基础219
16.3 进程控制222
16.3.1 进程控制相关的API222
16.3.2 进程对象相关的函数227
16.3.3 运行进程233
16.3.4 进程终止和进程同步等待238
第17章 Windows线程控制与同步244
17.1 实验目的和要求244
17.2 线程控制244
17.2.1 线程的创建与终止相关的API245
17.2.2 线程的恢复与挂起249
17.2.3 线程的调度优先级252
17.3 线程同步256
17.3.1 事件256
17.3.2 互斥体和临界区261
17.3.3 信号量269
17.4 综合举例273
第18章 Windows存储器管理284
18.1 实验目的和要求284
18.2 虚拟内存机制284
18.2.1 Windows系统机制284
18.2.2 虚拟内存处理的API287
18.3 程序示例291
第19章 Windows文件系统298
19.1 实验目的和要求298
19.2 文件的输入输出298
19.2.1 与文件相关的API298
19.2.2 异步读写文件306
19.2.3 创建临时文件309
19.3 目录操作312
19.4 文件映射对象318
19.5 邮件槽和命名管道的数据通信324
19.5.1 邮件槽和命名管道通信的基本概念324
19.5.2 利用邮件槽实现数据通信326
19.5.3 采用命名管道实现数据通信332
参考文献338
前言
根据多年的教学实践和科研的总结,并吸取国内外操作系统方面的相关内容,以及根据几年来的教学实际使用,在2006年出版的《操作系统实验教程》基础上,对内容进行了修改和充实,编写了此书。其目的是为了更便于学生的学习,使学生通过实验,理解和掌握操作系统的基本理论和功能技术,提高分析问题和解决问题的能力,增强编写和开发系统程序的能力。本教程仍分为四大部分。
第1篇是Linux系统的安装和使用。主要介绍双引导系统的配置和安装,了解Linux系统的GUI平台,熟悉GNOME桌面系统、GNOME应用程序和使用Linux的shell和全屏幕编辑程序vi以及Linux的文件系统。通过实验,使学生熟悉和掌握UNIX和Linux系统的常用键盘操作命令。内容力求简单明了,以便为进行操作系统实验提供必要的手段。
第2篇是操作系统模拟算法。主要结合操作系统原理给出了实现操作系统基本技术所涉及的数据结构和算法实现流程,以及一些算法的实现示例。内容主要有处理机管理、存储器管理、文件系统管理和设备管理等。凡学过操作系统原理课程的学生都可以参考本教程进行上机实验。这部分的实验环境没有限制,与具体的硬件环境无关。本书中给出的示例都是在Microsoft Visual C++ 6.0环境下实现的。
第3篇是UNIX或Linux操作系统中常用的系统调用的API以及利用API进行编程的一些示例。主要介绍进程和线程控制、进程同步和通信以及文件系统的系统调用。线程这部分主要采用pthread线程库实现。所给出的示例都是在Linux 系统的fedora 11的内核版本为2.6.x环境下实现的。
第4篇是Windows 2000/XP的系统调用编程。主要介绍Windows 2000/XP操作系统中常用的系统调用的API以及相应的编程示例。内容包括:应用程序基础、进程管理、进程控制以及线程同步和调度,存储器管理中的虚拟内存的使用,文件系统的系统调用以及有名管道和邮件槽等。
通过这些知识的学习,理解UNIX、Linux和Windows等提供的系统调用的实现功能,熟悉系统调用命令的编程技巧,提高操作系统编程和系统软件开发能力。
本书既可以作为本科生和专科生的实验教材,也是研究生对这些操作系统进行熟悉的实验参考教材,对从事系统软件和应用的开发人员也是一本较好的参考书。
本教程已经进行多次修改和充实,力求简单明了,使学生在较短时间内通过实验,既对操作系统的基本原理和实现机制有深入的理解和掌握,又能提高在UNIX、Linux和Windows环境下进行系统编程和开发的能力。
本书的第1、2章主要由刘昕编写,第3~15章主要由张丽芬编写,第16~19章主要由刘利雄编写。王全玉参与了第1、4章的编写,刘昕参与了第3、4、7、8、17、19章的部分内容的修改和补充,刘美华参与了第13~15章的部分内容的修改。张丽芬对全书进行了统稿。
由于编者水平有限,书中难免会有不足之处,敬请读者提出宝贵意见。
作 者2010年8月于北京