操作系统实验指导
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统实验指导
一、操作系统用户接口实验
1.实验目的
▪熟悉操作系统的命令接口、图形接口和程序接口
2.实验内容
▪UNIX或LINUX环境:
✧熟悉开机登录进入系统、退出系统的过程。
✧使用UNIX或LINUX常用命令以及图形化接口X-Windows。
✧使用C语言编制一个小程序,使其可以通过某个系统调用来获得操作系
统的服务。
▪Windows环境:
✧熟悉开机登录进入系统、退出系统的过程。
✧熟悉使用命方式启动应用程序的过程、熟悉Windows图形用户接口。
✧用C语言编写一个模拟的命令解释程序。要求自己设计一个OS命令接口,
包含若干条命令,然后编写一个命令解释程序,要求对用户输入的字符串
进行分析,如是命令集合中的命令,可以转到相应的函数入口(命令函数
的内容不需要编写)。(注意:C语言中使用system("command ")函数,
用命令作为参数传递,调用Dos下得命令函数,例如:
#include
#include
int main( )
{ printf( " ");
system( "dir ");
system( "pause ");
}
3.实验分析和思考
▪操作系统向用户提供的各种接口分别适用于什么场合?
4. 实验学时安排:
4学时,在第一章学习完之后可以进行。
二、进程调度模拟实验
1.实验目的
通过对进程调度算法的模拟加深对进程概念和进程调度过程的理解。
2. 实验内容
▪用C语言实现对N(N=5)个进程的调度模拟,可以采用如简单轮转法Round Robin、优先权高者优先算法Highest Priority First等,分别进行模拟调度。
▪每个用来标识进程的进程控制块PCB用结构(记录)来描述,根据需要,它包括以下字段:
✧进程标识数ID。
✧进程优先数Priority,并规定优先数越大的进程,其优先权越高。采用简
单轮转法时该字段无用。
✧进程已经占用的CPU时间CPUTIME。
✧进程还需占用的CPU时间ALLTIME。当进程运行完毕时,ALLTIME变
为0。
✧进程状态STA TE。
✧队列指针NEXT,用来将PCB排成队列。
▪优先数改变的原则(采用简单轮转法时该字段无用):
✧进程在就绪队列中等待一个时间片,优先数增加1;
✧进程每运行一个时间片,优先数减3。
▪假设在进行调度前,系统中有5个进程,它们的初始状态可以编程输入(更具有灵活性),也可以初始化为如下内容:
▪为了清楚地观察诸进程的调度过程,程序应该将每个时间片内各进程的情况显示出来并暂停,参考格式如下:
Running:I
Ready Queue:Idi,Idj,…
==============================================
ID PRIORITY CPUTIME ALLTIME STA TE
0 P0 C0 A0 S0
1 P1 C1 A1 S1
2 P2 C2 A2 S2
3 P3 C3 A3 S3
4 P4 C4 A4 S4
=============================================
3.实验分析和思考
▪在实际的进程调度中,还有哪些可行的算法,怎样模拟?
▪在实际的进程调度中,除了按算法选择下一个运行的进程之外,操作系统还应该做哪些工作?
▪为什么对进程的优先数可以按上述原则进行修改?有什么好处?
4. 实验学时安排:
8学时,在调度与死锁内容学习之后进行。
三、银行家算法模拟实验
1.实验目的
通过对银行家算法的模拟加深对死锁问题和避免死锁策略的理解。
2. 实验内容
▪用C语言实现银行家算法的模拟,具体算法步骤和测试用例参见教材。3.实验分析和思考
▪银行家算法是用来做什么的?
▪安全性算法找到的安全序列惟一吗?
▪为什么在安全性算法中要引入work向量?
4. 实验学时安排:
4学时,在调度与死锁内容学习之后进行。
四、分区存储管理模拟实验
1.实验目的
了解动态分区存储管理方式中的数据结构和分配算法,加深对动态分区存储管理方式及其实现技术的理解。
2.实验内容
▪用C语言或Pascal语言分别实现采用首次适应算法和最佳适应算法的动态分区分配过程Allocate()和回收过程Free()。其中,空闲分区采用空闲分区链来组织,内存
分配时,优先使用空闲区低地址部分的空间。
▪假设初始状态,可用内存空间为640KB,作业请求序列如下(也可以编程从键盘输入,R表示请求,F表示释放):
✧作业1请求130 KB。
✧作业2请求60 KB。
✧作业3请求100 KB。
✧作业2释放60 KB。
✧作业4请求200 KB。
✧作业3释放100 KB。
✧作业1释放130 KB。
✧作业5请求140 KB。
✧作业6请求60 KB。
✧作业7请求50 KB。
✧作业6释放60 KB。
▪要求每次分配和回收后显示出空闲区链的情况。
▪如果不能为作业的请求进行内存分配,给出相应的提示信息。
3.实验分析和思考
▪采用首次适应算法和最佳适应算法,对内存的分配和回收速度有什么影响?
▪如何解决碎片片问题?
4. 实验学时安排:
4学时,在分区存储管理内容学习之后进行。