操作系统课程设计---用银行家算法和随机算法实现资源分配
-
资源ID:1437667
资源大小:93.50KB
全文页数:12页
- 资源格式: DOC
下载积分:100金币
快捷下载

账号登录下载
三方登录下载:
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
|
操作系统课程设计---用银行家算法和随机算法实现资源分配
1、用银行家算法和随机算法实现资源分配用银行家算法和随机算法实现资源分配 一、需求分析 为了了解系统的资源分配情况, 假定系统的任何一种资源在任一时刻只能被一个进程使 用。任何进程已经占用的资源只能由进程自己释放,而不能由其他进程抢占。当进程申请的 资源不能满足时,必须等待。因此,只要资源分配算法能保证进程的资源请求,且不出现循 环等待,则系统不会出现死锁。 要求编写系统进行资源调度的程序。 一个是随机动态地进行资源分配的模拟程序, 即只 要系统当前剩余资源满足进程的当前请求, 就立即将资源分配给进程, 以观察死锁产生情况; 一个是采用银行家算法,有效地避免死锁的产生。 二、概要设计 1、系统的主
2、要功能 采用银行家算法,有效地避免死锁的产生。 3、运行环境要求 WINDOWS VC 4、实验内容概述 模拟进程的资源分配算法,了解死锁的产生和避免的方法。 三、详细设计 要求 (1) 设计 34 个并发进程, 共享系统的 10 个同类不可抢占的资源。 各进程动态进行资源 的申请和释放。 (2) 用银行家算法和随机算法分别设计一个资源分配程序,运行这两个程序,观察系统 运行情况,并对系统运行的每一步情况进行显示。 提示 (1)初始化这组进程的最大资源请求和依 次申请的资源序列。 把各进程已占用和需求 资源情况记录在进程控制块中。 假定进程控 制块的格式如图所示,其中进程的状态有: 就绪、等待
3、和完成。当系统不能满足进程的 资源请求时,进程处于等待态。资源需求总 量表示进程运行过程中队资源的总的需求 量。 进程名 状态 当前申请量 资源需求总量 已占资源量 能执行完标志 已占资源量表示进程目前已经得到但还未归还的资源量。 因此, 进程在以后还需要的剩余资 源量等于资源需求总量减去已占资源量。 显然每个进程的资源需求总量不应超过系统拥有的 资源总量。 (2)银行家算法分配资源的原则是:当某个进程提出资源请求时,假定先分配资源给它, 然后查找各进程的剩余请求,检查系统的剩余资源量是否由于进程的分配而导致系统死锁。 若能,则让进程等待,否则,让进程的假分配变为真分配。 查找各进程的剩余请求
4、,检查系统的剩余资源量是否能满足其中一进程。如果能,则转 将资源分配给所选的进程,这样,该进程已获得资源量最大请求,最终能运行完。标记这 个进程为终止进程,并将其占有的全部资源归还给系统。 重复第步和第步,直到所有进程都标记为终止进程,或直到一个死锁发生。若所有进 程都标记为终止进程,则梯田的初始状态是安全的,否则为不安全的。若安全,则正式将资 源分配给它,否则,假定的分配作废,让其等待。 由于银行家算法可以避免死锁,为了观察死锁现象的发生,要求采用两个算法:银行家算 法和随机算法。 随机算法的分配原则是: 当进程申请资源时, 如果系统现存资源数能满足 进 程的当前申请量,就把资源分配给进程,否则,让其等待。这样,随机算法可能引起死锁。 一 资源分配模拟算法总框图 开始 输入各进 程依次 申请的资源数量 计算各进 程申请 资源总量 各进程申请的资源总量 超过系统拥有的资源总 量? 在 PCB 中登记进程 申请各类资源总量 将 PCB中的“已占资源量” 初始化为 0, 状态置为 “就绪” 选择随机算法? 调随机算法程序 返回 调银行家算法程序 显示:进程申请