《操作系统实验指导》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:任爱华等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:7302085218
  • 页数:238 页
图书介绍:本书针对Windows和Linux两个操作系统,提供了一系实例以助学习操作系统这门课程。

第一部分 基于Windows环境的实验 1

实验一 生产者和消费者问题 1

1.1实验目的 1

1.2实验要求 1

1.2.1创建生产和消费者线程 1

1.2.2生产和消费的规则 2

1.3相关基础知识 2

1.3.1生产者和消费者模型 2

1.3.2同步对象 2

1.4.2相关API函数的介绍 3

1.4.1实验环境 3

1.4程序的实现 3

1.4.3程序的结构 7

1.4.4数据结构 7

1.4.5实现步骤 8

1.5实验分析 9

1.6源程序 10

实验二 Windows虚拟存储器管理 16

2.1实验目的 16

2.2实验要求 16

2.3.2虚存页面的状态 17

2.3.1Windows中的虚拟存储技术 17

2.3相关基础知识 17

2.3.3存储系统的统计指标 18

2.4程序的实现 20

2.4.1实验环境 20

2.4.2程序的结构 20

2.4.3数据结构 21

2.4.4实现步骤 22

2.4.5相关API函数介绍 22

2.5实验分析 27

2.6源程序 27

3.3Windows驱动程序基础 32

3.3.1驱动程序Driver 32

实验三 NDIS协议驱动程序的分析与改进 32

3.2实验要求 32

3.1实验目的 32

3.3.2Windows驱动程序模式的演化 33

3.3.3Windows 2000的驱动程序 34

3.4NDIS驱动规范介绍 36

3.4.1Windows网络体系结构和OSI参考模型 36

3.4.2网络驱动接口规范NDIS 36

3.5.1DDK的安装 38

3.5实验环境 38

3.4.3NDIS的使用 38

3.5.2驱动程序的编译 39

3.5.3驱动程序的调试 40

3.5.4驱动程序的安装 41

3.6Packet驱动实例的分析与改进 42

3.6.1实验概述 42

3.6.2NDIS协议驱动程序的一般结构 43

3.6.3对packet驱动程序的改进 54

3.7实验分析 56

3.7.1实验结果 56

3.7.2展望 57

实验四 虚拟磁盘驱动程序设计 58

4.1实验目的 58

4.2实验要求 58

4.3文件系统驱动程序基础 58

4.3.1文件系统 58

4.3.2文件系统驱动程序 61

4.3.3I/O系统数据结构 62

4.3.4NT和Win32设备名 63

4.4实验环境 63

4.4.1开发环境的建立 63

4.4.2驱动程序的编译与安装 64

4.5.1实验概述 65

4.5实验程序的实现 65

4.5.2虚拟磁盘驱动程序分析 66

4.5.3filedisk应用程序 71

4.5.4虚拟磁盘启动过程分析 72

4.6实验分析 73

4.6.1实验结果分析 73

4.6.2驱动程序的改进 74

4.6.3实验的展望 75

5.2实验要求 77

5.2.1ysh解释程序的重要特征 77

实验五 shell程序 77

5.1实验目的 77

第二部分 基于Linux环境的实验 77

5.2.2ysh解释程序的具体要求 78

5.3相关基础知识 81

5.3.1shell与内核的关系 81

5.3.2系统调用 82

5.4实验环境 91

5.5程序的实现 91

5.5.1数据结构 91

5.5.2程序结构 93

5.6实验总结 100

5.7源程序 100

实验六 虚拟存储 116

6.1实验目的 116

6.2实验要求 116

6.3相关基础知识 116

6.3.1系统调用相关知识 116

6.3.2虚拟内存管理 122

6.4程序的实现 128

6.4.1新内核函数pedagogictime的实现 128

6.4.2统计系统缺页情况 129

6.5实验分析 130

6.6源程序 130

6.6.1用户测试程序pedagogictime 130

6.6.2系统缺页统计程序pgfault.c 131

实验七 作业调度系统 134

7.1实验目的 134

7.2实验要求 134

7.2.1实验包括的程序 134

7.2.2调度策略 135

7.3.1进程及作业的概念 136

7.2.3作业调度的操作内容 136

7.3相关基础知识 136

7.3.2作业调度 137

7.3.3进程间通信 138

7.4程序的实现 140

7.4.1重要数据结构 140

7.4.2作业调度程序的实现 141

7.4.3作业控制命令的实现 143

7.6源程序 144

7.6.1头文件job.c 144

7.5实验分析 144

7.6.2调度程序job.c 145

7.6.3作业入队命令enq.c 155

7.6.4作业出队命令deq.c 156

7.6.5作业状态查看命令stat.c 157

实验八 文件系统 159

8.1实验目的 159

8.2实验要求 159

8.3相关基础知识 160

8.3.1虚拟文件系统 160

8.3.2fat文件系统结构 163

8.4.1数据结构 168

8.4程序实现 168

8.4.2文件操作函数的实现 170

8.5实验分析 173

8.6源程序 174

8.6.1filesys.h 174

8.6.2filesys.c 176

8.6.3make项目文件 186

A.1Linux的安装 189

A.1.1安装前的准备 189

附录A Linux的安装与使用 189

第三部分 附录 189

A.1.2建立硬盘分区 190

A.1.3安装类型 191

A.1.4安装过程 192

A.2Linux的使用 192

A.2.1使用常识 192

A.2.2文件操作命令 193

A.2.3文本编辑命令 201

A.2.4shell的特殊字符 204

A.2.5进程控制命令 208

A.2.6网络配置和网络应用工具 210

A.2.8系统管理 214

A.2.7联机帮助 214

附录B Linux文件系统主要数据结构 222

B.1VFS超级块 222

B.2文件系统类型 223

B.3打开文件表结构files_struct 223

B.4file文件表结构 224

B.5VFS目录项 224

B.6目录项操作dentry_operations 225

B.7VFS索引节点inode 225

B.8地址空间address_space(缓冲区) 227

B.9EXT2内存节点信息数据 227

B.10文件操作file_operations 228

B.11索引节点操作inode_operations 229

B.12超级块操作super_operations 229

B.13EXT2的索引节点定义 230

B.14EXT2目录项 232

B.14.1老版定义 232

B.14.2新版本定义 232

B.15EXT2目录文件类型 232

B.16EXT2块组描述符 233

B.17fs_struct定义(根目录与当前目录) 233

B.18进程控制块task_struct 235

实验参考文献 238