操作系统实用教程(第3版)实验指导(普通高等院校计算机专业(本科)实用教程系列)

分類: 图书,教材教辅与参考书,大学,计算机专业,
品牌: 任爱华
基本信息·出版社:清华大学出版社
·页码:313 页
·出版日期:2009年09月
·ISBN:7302202508/9787302202509
·条形码:9787302202509
·包装版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:普通高等院校计算机专业(本科)实用教程系列
产品信息有问题吗?请帮我们更新产品信息。
内容简介操作系统课的实验环节一直是操作系统教学的难点。《操作系统实用教程(第3版)实验指导》通过Windows和Linux两个操作系统各自的编程接口,提供一些编程实例,以此加深学生对操作系统设计原理的领会和对操作系统实现方法的理解,并且使学生在程序设计方面能够得到基本的训练。《操作系统实用教程(第3版)实验指导》提供了操作系统接口的设计实例以及有关进程调度、作业调度、虚存管理、文件管理、设备管理等内容的实践例子。书中的实验环境基于Windows操作系统或者Linux操作系统。每个实验分为六个部分,即实验目的、实验要求、相关基础知识、实验设计、实验总结、源程序与运行结果。
《操作系统实用教程(第3版)实验指导》的使用对象是普通高等院校计算机专业的学生,或者是具有一些操作系统基本知识并想进一步了解程序设计以及操作系统实验内容的读者,也可作为普通高等院校操作系统实验教学的参考书。
编辑推荐《操作系统实用教程(第3版)实验指导》为配合普通高等教育“十一五”国家级规划教材、北京市精品教材《操作系统实用教程(第三版)》而编写《操作系统实用教程(第3版)实验指导》从操作系统的基本原理出发,分别以Windows和Linux两个操作系统为实验环境,采用各自的编程接口,提供了不同类型的上机实验题每个实验分为六个部分,即实验目的、实验要求、相关基础知识、实验设计、实验总结、源程序与运行结果书中针对每个实验题目的设计都进行了详细的讲解和指导,所有的源程序代码均通过测试附录B中为读者提供了有关Linux的安装知识和常用命令,便于使用Linux操作系统的读者参考。
目录
实验一 命令解释程序1
1.1 实验目的1
1.2 实验要求1
1.2.1 基本要求1
1.2.2 进一步要求2
1.2.3 实验步骤建议3
1.3 相关基础知识3
1.3.1 命令解释程序与内核的关系3
1.3.2 系统调用4
1.3.3 重要API的使用说明10
1.4 实验设计12
1.4.1 重要的数据结构12
1.4.2 程序实现14
1.5 实验总结15
1.6 源程序与运行结果16
1.6.1 程序源代码16
1.6.2 程序运行结果29
1.6.3 实验报告模板29
实验二 虚存管理(Windows)31
2.1 实验目的31
2.2 实验要求31
2.2.1 基本要求31
2.2.2 进一步要求31
2.3 相关基础知识32
2.3.1 虚拟存储器32
2.3.2 页式存储管理方式32
2.3.3 Windows中的虚拟存储技术35
2.4 实验设计38
2.4.1 重要的数据结构38
2.4.2 程序实现40
2.5 实验总结45
2.6 源程序与运行结果45
2.6.1 程序源代码45
2.6.2 程序运行结果57
实验三 进程调度58
3.1 实验目的58
3.2 实验要求58
3.2.1 基本要求58
3.2.2 进一步要求59
3.3 相关基础知识59
3.3.1 进程调度59
3.3.2 Windows中的进程和线程61
3.3.3 相关Win32 API介绍62
3.4 实验设计64
3.4.1 重要的数据结构64
3.4.2 程序实现65
3.5 实验总结68
3.6 源程序与运行结果68
3.6.1 程序源代码68
3.6.2 程序运行结果83
实验四 文件系统85
4.1 实验目的85
4.2 实验要求85
4.2.1 基本要求85
4.2.2 进一步要求86
4.3 相关基础知识87
4.3.1 Windows的文件系统87
4.3.2 FAT16文件系统88
4.3.3 相关API函数说明92
4.4 实验设计95
4.4.1 重要的数据结构95
4.4.2 程序实现97
4.4.3 编译及运行102
4.5 实验总结103
4.6 源程序与运行结果103
4.6.1 程序源代码103
4.6.2 程序运行结果119
实验五 shell程序120
5.1 实验目的120
5.2 实验要求120
5.2.1 基本要求120
5.2.2 进一步要求122
5.2.3 实验步骤建议122
5.3 相关基础知识123
5.3.1 shell与内核的关系123
5.3.2 系统调用123
5.3.3 Lex和YACC介绍133
5.4 实验设计134
5.4.1 重要的数据结构135
5.4.2 程序实现136
5.5 实验总结143
5.6 源程序与运行结果143
5.6.1 程序源代码143
5.6.2 程序运行结果160
实验六 虚存管理(Linux)162
6.1 实验目的162
6.2 实验要求162
6.2.1 基本要求162
6.2.2 进一步要求162
6.3 相关基础知识163
6.3.1 存储管理163
6.3.2 虚拟存储的功能163
6.3.3 虚拟存储的抽象模型163
6.3.4 按需装入页面164
6.3.5 页面交换165
6.3.6 共享内存166
6.3.7 存取控制166
6.3.8 系统页表167
6.3.9 页面的分配和释放168
6.3.10 内存映射169
6.3.11 缺页中断170
6.4 实验设计171
6.4.1 重要的数据结构171
6.4.2 虚存管理程序的实现172
6.5 实验总结178
6.6 源程序与运行结果178
6.6.1 程序源代码178
6.6.2 程序运行结果190
实验七 作业调度192
7.1 实验目的192
7.2 实验要求192
7.2.1 基本要求192
7.2.2 进一步要求193
7.3 相关基础知识194
7.3.1 进程及作业的概念194
7.3.2 作业调度195
7.3.3 进程间通信196
7.4 实验设计198
7.4.1 重要数据结构198
7.4.2 程序实现199
7.5 实验总结201
7.6 源程序与运行结果202
7.6.1 程序源代码202
7.6.2 程序运行结果218
实验八 文件系统219
8.1 实验目的219
8.2 实验要求219
8.2.1 基本要求219
8.2.2 进一步要求220
8.3 相关基础知识220
8.3.1 虚拟文件系统220
8.3.2 FAT文件系统结构224
8.4 实验设计229
8.4.1 重要的数据结构229
8.4.2 程序实现230
8.5 实验总结234
8.6 源程序与运行结果235
8.6.1 程序源代码235
8.6.2 程序运行结果253
附录A 存储管理应用实例254
A.1 概述254
A.2 存储管理对内存硬件的抽象255
A.3 用户编程中申请与释放内存实例分析258
A.3.1 Malloc.h文件258
A.3.2 Malloc.c文件259
A.3.3 Test.c文件262
A.3.4 Makefile文件263
A.4 小结263
A.5 习题264
附录B 操作系统接口265
B.1 操作系统接口265
B.1.1 系统调用265
B.1.2 shell命令及其解释程序274
B.2 Linux的安装283
B.2.1 安装前的准备283
B.2.2 建立硬盘分区284
B.2.3 安装类型285
B.2.4 安装过程286
B.2.5 操作系统的安装概念286
B.3 Linux的使用287
B.3.1 使用常识287
B.3.2 文件操作命令288
B.3.3 文本编辑命令294
B.3.4 shell的特殊字符296
B.3.5 进程控制命令300
B.3.6 网络应用工具303
B.3.7 联机帮助305
B.4 系统管理305
B.4.1 超级用户305
B.4.2 用户和用户组管理306
B.4.3 文件系统管理308
B.4.4 Linux源代码文件安放结构312
B.5 小结313
B.6 习题313
参考文献314
……[看更多目录]
序言操作系统课程是一门实践性很强的技术课程,是计算机专业本科生的必修课。开设本实验课的目的在于培养学生的实践能力,促进理论与实践的结合。本书通过两个著名的操作系统Windows和Linux各自的编程接口,提供一些编程实例,使学生熟悉对操作系统程序接口的使用,并了解如何模拟操作系统原理的实现,加深对操作系统设计原理和实现方法的理解,使学生在程序设计方面能够得到基本的训练。
操作系统本身的构造十分复杂,如何在有效的时间内,使学生既能了解其实现原理,又能对原理部分进行有效的实践,是操作系统教学一直在探索的内容。本书从基本原理出发,提供了不同类型的上机实习题。每个实习题都配有测试通过的源程序代码供读者参考,也对实习题的设计进行了详细的讲解和指导。
本书的使用对象是针对普通高等院校计算机专业的学生,或者是具有一些操作系统基本知识并想进一步了解程序设计以及操作系统实验内容的读者。实验的环境是Windows操作系统或者是Linux操作系统。Windows操作系统已经很普及,但是对于Linux操作系统并不是每个用户都有所了解,仅是有具体应用目的或者对Linux感兴趣的人才会去接触Linux。所以,在附录B中为读者提供了有关Linux的安装知识和常用命令。而对Windows的使用,我们便主观地认为学生已经熟知了它的使用,所以在介绍实验方法时,只重点介绍编程工具的使用过程以及实验设计本身的内容。
在Windows的实验中,重点放在对Windows的应用程序接口API的使用上。利用这些与操作系统原理直接相关的API,编写一些实践操作系统概念的实例,便于对抽象概念的理解和具体化;通过阅读本书提供的实例程序代码,使读者得到编程方面的体验和训练。
在Linux的实验中,基本上也是在系统调用的层次上对学生进行训练,所不同的是Linux是开放源代码的自由软件,读者可以很方便地得到Linux操作系统的全部源代码。比如常用的由Red Hat Software公司提供的Red Hat Linux,既可从网站上下载,也可从一般的书店中买到安装光盘。Linux是深入学习操作系统的有利环境,通过对Linux的不断了解,不仅可以深入学习操作系统的设计原理和技巧,还可以在互联网上与热衷于编程的人探讨与Linux相关的技术难题。如今的笔记本电脑已经十分普及,从而使Linux的实验环境可以随读者的笔记本电脑安装并建立。
本书在Windows环境下提供了四个实验,分别是关于操作系统命令接口的设计、进程调度、虚存管理以及文件管理方面的实验内容。
在Linux环境下提供了四个实验,分别是关于操作系统的命令接口程序shell的编制、虚存管理、作业控制系统以及文件系统方面的实例。
书中有些实验题目是基于北京航空航天大学计算机学院操作系统课设的实验内容,书中配备的实验源程序有一部分来自于学生提交的实际作业。考虑到实验的覆盖面,在附录中增加了存储管理以及命令接口设计等方面的实验实例供读者参考和学习。
本书的Windows实验部分由罗晓峰执笔,Linux的实验部分由李鹏和罗晓峰执笔,任爱华完成全书的统稿、编写和审校工作。参与本书实验的设计与验证工作的还有李萌、张恺、张晓敏、原攀峰、郝美玲、胡宝雷、郭威、丛佩政、张迪、茹晓毅、佘世伟、杨洋、郑志明等。
限于编者水平,错误和不妥之处在所难免,恳请读者批评指正。
文摘插图:

实验一命令解释程序
1.1实验目的
·掌握命令解释程序的设计方法。
·学习Windows系统调用的使用,了解目录操作、进程控制等相关知识。
·理解并发程序中的同步问题。
·培养C/C++语言程序设计技能,提高程序设计和文档编写能力。
·锻炼团队成员的交流与合作能力。
1.2实验要求
1.2.1基本要求
本实验要求实现一个简单的命令解释程序,其设计类似于MS-DOS的Command程序,程序应当具有如下一些重要特征:
·能够执行cd、dir、tasklist、taskkill、history、exit等内部命令。
·能够创建前台进程和后台进程。
此外,还应做到:
·使用VC建立工程。
·提供清晰、详细的设计文档和解决方案。
本实验的具体要求如下:
(1)参考Command命令解释程序,采用控制台命令行输入,命令提示行是当前目录与提示符“”,在提示符后输入命令,执行结果在控制台中显示,如图1-l所示。
(2)实现以下内部命令。
·cd切换目录。
·dir显示指定目录下的文件、目录及磁盘空间等相关信息。
·tasklist显示系统当前进程信息,包括进程标识符pid、线程数、进程名等。
·taskkill结束系统中正在运行的进程,须提供进程标识pid。
·history显示控制台中曾经输入过的命令。
·exit退出控制台。
(3)对前台进程和后台进程的操作。
本实验设计的命令解释程序可以将进程放在前台执行或者后台执行。