操作系统课程设计题目

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(除特别注明外,每组最多3人,先自由组合,并选定1个题目,再由老师作适当调整)

课题一、银行家算法

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

设计要求:

设计有n个进程共享m个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的分配资源。系统能显示各个进程申请和释放资源,以及系统动态分配资源的过程,便于用户观察和分析,要求使用图形用户界面。

银行家算法的思路:

1.进程一开始向系统提出最大需求量.

2.进程每次提出新的需求(分期贷款)都统计是否超出它事先提出的最大需求量.

3.若正常,则判断该进程所需剩余量(包括本次申请)是否超出系统所掌握的

剩余资源量,若不超出,则分配,否则等待.

4.银行家算法的数据结构.

1)系统剩余资源量V[n],其中V[n]表示第I类资源剩余量.

2)已分配资源量A[m][n],其中A[j][i]表示系统j程已得到的第i资源的数量.

3)剩余需求量.C[m][n],其中C[j][i]对第i资源尚需的数目.

5.银行家算法流程:当某时刻,某进程时,提出新的资源申请,系统作以下操作:

1)判定E[n]是否大于C[j][n],若大于,表示出错.

2)判定E[n]是否大于系统剩余量V[n],若大于,则该进程等待.

3)若以上两步没有问题,尝试分配,即各变量作调整.

4)按照安全性推测算法,判断,分配过后,系统是否安全,若安全,则实际分配,否则,撤消分配,让进程等待.

6."安全性检测"算法

对进程逐个扫描,先判断flag,看进程是否完成,如果完成则继续扫描,如果没有再判断当前系统是否满足进程所需要的分配额,如果满足则分配并当进程完成后回收资源,如果没有则扫描下一个进程。扫描所有进程,如果所有的进程都能完成就表明是安全分配序列,如果没有,则分配不成功,不存在着安全序列。

课题二、处理机调度算法的实现

设计目的:在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个。也就是说能运行的进程数大于处理机个数。为了使系统中的进程能有条不紊地工作,必须选用某种调度策略,选择一进程占用处理机。要求学生设计一个模拟处理机调度算法,以巩固

1

相关文档
最新文档