操作系统指导书 联系客服

发布时间 : 星期一 文章操作系统指导书更新完毕开始阅读e6d5c5bc376baf1ffc4fad98

2、 编写并调度一个多道程序系统的作业调度模拟程序。

作业调度算法:采用基于先来先服务的调度算法。可以参考课本中的方法进行设计。

对于多道程序系统,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求。

3、 编写并调试一个多道程序系统的作业调度模拟程序。 作业调度算法:采用基于优先级的作业调度。

可以参考课本中的例子自行设计。 四、实验报告

主要包括实验预习和实验报告两部分。

学生在上机做实验前,要根据教师布置的题目,对实验内容应作相应的预习,编写相关程序,准备好测试数据,进行静态检查后方可上机。

实验结束后,根据实验过程和结果写出实验报告,主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。 严禁抄袭或拷贝他人的成果,自觉培养科学、严谨的作风。 五、其它说明

学生在实验过程中应遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理。

8

实验三 银行家算法

实验学时:4学时 实验类型:设计 实验要求:必修 一、

实验目的

死锁会引起计算机工作僵死,因此操作系统中必须防止。本实验的目的在于让学生独立的使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生,以加深对课堂上所讲授的知识的理解。 二、

实验要求

设计有n个进程共享m个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的分配资源。

系统能显示各个进程申请和释放资源,以及系统动态分配资源的过程,便于用户观察和分析; 三、

数据结构

1.可利用资源向量Available ,它是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源的数目,其初始值是系统中所配置的该类全部可用资源数目。其数值随该类资源的分配和回收而动态地改变。如果Available(j)=k,标是系统中现有Rj类资源k个。

2.最大需求矩阵Max,这是一个n×m的矩阵,它定义了系统中n个进程中的每一个进程对m类资源的最大需求。如果Max(i,j)=k,表示进程i需要Rj类资源的最大数目为k。

3.分配矩阵Allocation,这是一个n×m的矩阵,它定义了系统中的每类资源当前一分配到每一个进程的资源数。如果Allocation(i,j)=k,表示进程i当前已经分到Rj类资源的数目为k。Allocation i表示进程i的分配向量,有矩阵Allocation

9

的第i行构成。

4.需求矩阵Need,这是一个n×m的矩阵,用以表示每个进程还需要的各类资源的数目。如果Need(i,j)=k,表示进程i还需要Rj类资源k个,才能完成其任务。Need i表示进程i的需求向量,由矩阵Need的第i行构成。 上述三个矩阵间存在关系:Need(i,j)=Max(i,j)-Allocation(i,j); 四、

银行家算法

参考教材P96 五、

安全性算法

1.设置两个向量。

Work:它表示系统可提供给进程继续运行的各类资源数目,它包含m个元素,

开始执行安全性算法时,Work = Available。

Finish:它表示系统是否有足够的资源分配给进程,使之运行完成,开始Finish

(I)=false;当有足够资源分配给进程Pi时,令Finish(i)=true;

2.从进程集合中找到一个能满足下述条件的进程。 Finish(i)= = false; Need i ≤work;

如找到则执行步骤3;否则,执行步骤4;

3.当进程Pi获得资源后,可顺利执行直到完成,并释放出分配给它的资源,故应执行

Work = work + Allocation i Finish(i)=true;转向步骤2;

4.若所有进程的Finish(i)都为true,则表示系统处于安全状态;否则,系统处于不安全状态。 六、流程

10

始 开 输入资源数m, 及各类资源总数,初始化Available向量 所有进程运行都结束 调用银行家算法,及安全性算法,完成分配,或并给出提示 该进程的Need向量为0 N 输入该进程的资源请求量Request 结 束 Y Need矩阵为0 N 任选一个进程作为当前进程 Y 初始化need 矩阵 i加1 max≤资源总数 Y i≤n N 输入进程i的最大需求向量max。 N 提示错误重新输入 输入进程数n,i=1 Y 该进程已运行结束 11