1 / 20
文档名称:

操作系统实验报告.doc

格式:doc   大小:240KB   页数:20页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

操作系统实验报告.doc

上传人:iris028 2020/12/4 文件大小:240 KB

下载得到文件列表

操作系统实验报告.doc

相关文档

文档介绍

文档介绍:目录
一、 需求分析…………………………………………………2
二、 系统概要设计……………………………………………2
三、系统详细设计………………………………………………4
四、系统主要源代码……………………………………………5
五、系统测试及调试……………………………………………5
六.、心得体会……………………………………………………8
七、参考文献……………………………………………………9
八、附录…………………………………………………………9
 
 
 
 

操作系统课程设计报告
课设内容简介:
银行家算法的模拟实现。
一、需求分析
控制工作流程 ,管理资源,为用户服务,是操作系统的主要功能。在资源管理中,操作系统的任务是使各种系统资源得到充分合理的应用,解决用户作业因资源而产生的矛盾,并合理的让用户再合适的时间内得到其应有的服务。
现代操作系统引入了多道程序设计技术,允许锁个进程同时驻留内存并发执行。若干个进程将不可避免地竞争系统资源,如果操作系统不能够协调多个进程对系统资源的竞争与共享,将会导致执行结果异常,系统不稳定、失效等多种问题,从而产生死锁,产生死锁的原因可分为两种:(1)竞争资源引起死锁(2)进程推进顺序不当引起死锁。
银行家算法是一种代表性的避免死锁的算法,在进程申请资源的时候,系统调用银行家算法来检测此次分配会不会导致死锁的产生,及判断此次分配的安全性。若检测到此次分配是安全的则分配给申请进程所申请的资源,若检测到此次分配是不安全的,则相应的进程等待。
二、系统概要设计
(1)系统主要功能:系统运用银行家算法先对用户提出的计算机系统资源请求进行合法性检查,再进行预分配,利用安全性检查算法进行安全性检查,后决定是否给相应进程动态分配资源。
(2)系统模块功能结构:
(3)运行环境要求:
相关工具:
Microsoft Visual C++ 6.
(4)数据结构设计及相关说明:
 (1)、可利用资源向量  INT  AVAILABLE[M]  M为资源的类型。
 (2)、最大需求矩阵    INT  MAX[N][M]  N为进程的数量。
 (3)、已分配矩阵      INT  ALLOCATION[N][M]
 (4)、还需求矩阵      INT  NEED[N][N]
 (5)、申请各类资源数量int Request[x]; //
 (6)、工作向量        int Work[x];
  (7)、int Finish[y]; //表示系统是否有足够的资源分配给进程,0为否,非0为是
三、系统详细设计
 (1)、系统初始化。输入进程数量,资源种类,各进程已分配、还需求各资源数量,各资源可用数量等
 (2)、输入用户的请求三元组(I,J,K),为进程I申请K个J类资源。
 (3)、检查用户的请求是否小于还需求的数量,条件是 K<=NEED[I,J]。如果条件不符则提示重新输
    入,即不允许索取大于需求量
 (4)、检查用户的请求是否小于系统中的可利用资源数量,条件是K<=AVALIABLE[I,J]。如果条件不
 符则申请失败,阻塞该进程,重新进行进程动态资源申请(使用goto语句)
 (5)、进行资源的预分配,语句如下:
 AVALIBLE[I][J]= AVALIBLE[I][J]-K;
 ALLOCATION[I][J]= ALLOCATION[I][J]+K;
 NEED[I][J]=NEED[I][J]-K;
    (6)、系统调用安全性检查算法(safe()函数)进行检查,如果检查通过,则不用回收,否则进行
 回收,进程资源申请失败进入等待。
4、安全性检查算法(safe()子函数)
    (1)、设置两个临时变量。
    (2)、在进程中查找符合以下条件的进程。
           条件1:FINISH[I]=0
     条件2:NEED[I][J]〈=WORK[J]
    (3)、如果查找成功则进行资源的模拟回收,语句如下:
           WORK[J]=WORK[J]+ALLOCATION[I][J];
     FINISH[I]=1 或查找到的顺序号
    (4)、如果查找不成功,则检查所有进程的FINISH[],如果有一个为0,则系统不为0,返回不成功
 标志。否则返回成功标志。
四、系统主要原代码见附录!!
五、系统测试及调试