操作系统原理实用实验教程
操作系统原理
实用实验教程
张鸿烈 编著
山东大学齐鲁软件学院
山东大学计算机科学与技术学院
前言
前言
在现代计算机系统中,操作系统已经成为整个计算机系统的核心。所有计算机
硬件和应用软件都必须依赖操作系统的支撑,接受操作系统的管理。一个性能优秀
的操作系统会使整个计算机系统的资源发挥到极致;同时也为用户使用计算机提供
了最大可能的方便。因此介绍计算机操作系统原理的课程也就成为了计算机科学中
最主要的课程之一。
本实验教程主要是为了配合操作系统原理阶段的实验教学而编写的。实验内容和
顺序主要考虑:
紧密围绕操作系统原理课的主要教学内容。重点选择操作系统科学领域中经
典的、有启发性的实验课题。
实验课题的范围能基本覆盖整个操作系统原理课所讲授的内容。
实验的顺序能基本对应操作系统原理课讲授的进度。
因为大多数操作系统原理教材都是以Unix/Linux 系统为主要蓝本讲授,因此本实
验教程采用Linux 系统作为实验环境。
本实验教程安排了两个部分的实验内容:
操作系统命令实验
操作系统算法实验。
其中操作系统命令实验的目的,一方面是为了让学生体验和熟悉一下经典操作系
统最基本的操作界面,另一方面是为了能使不太熟悉 Linux 系统编程环境的学生尽
快的了解 Linux 系统最基本的程序开发环境,以便迅速展开操作系统原理的算法实
验。因此这一部分的内容并不是对于 Linux 系统应用的全面介绍,仅是围绕操作系
统的算法实验可能用到的系统操作安排的实验。
操作系统算法实验是本实验教程重点安排的实验。这一部分共安排了十个在操作
系统原理中最为重要的问题作为实验课题,这十个课题基本覆盖了大多数操作系统
原理教材所讲授的内容,同时也揭示 Linux 内核最精彩的一些系统功能的用法。每
个实验课题都给出了5 个方面的指导:
实验目的 说明本实验所要达到的实验结果,以便学生能够明确做过这个实
验后应有哪些收获。
实验说明 说明本实验用到的算法的基本原理和实现中用到的详细的 Linux
技术文档,以便学生能够看懂示例程序和利用这些技术文档独立的编程调
试。
示例实验 给出一个能实现所要实验的算法的完整的程序源代码,包括程序
第I 页
前言
的开发、调试、分析的详细步骤和过程。以便使学生能通过开发调试这个程
序去亲身体验算法具体的实现过程和实现效果。
独立实验 给出一个与该算法有关但不同于示例实验的并且可以借助于示例
实验实现的问题。以便训练学生独立编程调试的能力。
实验要求 给出对该实验的过程和结果应做哪些分析和总结的指导。
给出的示例实验程序的源代码在关键语句处均添加了详细的中文注释,以方便学
生阅读和理解编程的思路。其中除有少数实验,例如管程,涉及到要封装对象,以
及几个用对象更容易说明问题的实验采用了 C++语言编写了程序,其余示例程序均
为C 语言编写。这样的选择主要是考虑到目前操作系统原理教材中算法的讨论大部
分采用C 语言来描述,同时C 语言也是Linux 系统的宿主语言,可以直接的与操作
系统内核接口;另外也不疏忽使用面向对象的程序设计方法来研究操作系统。
这些示例程序均在RedHat、Fedora 、Ubuntu 、SUSE 等系列的Linux 系统中进行了
测试。示例程序的内容和开发不涉及特权用户权限和图形界面环境。以普通用户身
份,文本界面进入系统就可以进行实验。因此在单机上没有 Linux 系统环境时,可
以采用远程终端方式开展实验。这些示例程序的篇幅都不是很大,可以让学生在
2—3 个学时内调试和分析出来,从而对操作系统中抽象概念有个快速的感性认识。
独立实验的课题都是和示例实验相类似的一些问题,主要为了训练学生独立思
考、编程和调试、分析程序的技能。只要学生在真正领会了示例程序的基础上,参
考示例程序再通过自己的认真思考后,完成这些实验也是不难的。当然,这些独立
实验可以根据教学要求的深度、学生的编程能力、以及实验