下载 >  操作系统 >  OS > 操作系统课设 资源分配

操作系统课设 资源分配 评分:

一、实验内容 本实习中共有两个实习题,模拟实现资源分配。 第一题:用银行家算法实现资源分配。 要求: (1) 设计一个3个并发进程共享10个同类资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。 (2) 设计用银行家算法和随机分配算法,实现资源分配的两个资源分配程序,应具有显示或打印各进程依次要求申请的资源数以及依次分配资源的情况。 (3) 确定一组各进程依次申请资源数的序列,在相同的情况下分别运行上述两种资源分配程序,观察运行结果。 第二题:用按序分配策略实现资源分配。 要求: (1) 设计一个3个进程共享10个资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。 (2) 设计用按序分配算法实现资源分配 的资源分配程序,应具有显示或打印各进程依次要求申请的资源号以及依次分配资源地情况。 (3) 确定两组各进程依次要求申请的资源号,要求其中的一组中各进程按序地申请资源,另一组中各进程申请资源不受序号限制,分别运行上述设计的资源分配程序,观察运行结果。 二、实验目的 编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁的发生. 多个进程动态地共享系统的资源可能会产生死锁现象。死锁的产生,必须同时满足四个条件,第一个是互斥条件,即一个资源每次只能由一个进程占用;第二个为等待条件,即一个进程请求资源不能满足时,它必须等待,但它仍继续保持已得到的所有其它资源;第三个是非出让条件,任何一个进程不能抢占另一个进程已经获得且未释放的资源;第四个为循环等待条件,系统中存在若干个循环等待的进程,即其中每一个进程分别等待它前一个进程所持有的资源。防止死锁的机构只须确保上述四个条件之一不出现,则系统就不会发生死锁。 在实习中假定系统中任一资源在每一时刻只能则由一个进程使用,任何进程不能抢占它进程正在使用的资源,当进程得不到资源时必须等待。因此只要资源分配策略能保证进程不出现循环等待,则系统就不会发生死锁。 本实习要求学生编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁的发生。 三、实验过程 (一) 用银行家算法实现资源分配 系统为每个进程定义了一个数据结构——进程控制块PCB,它是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB中记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。 1. 数据结构设计 表5-1 PCB格式 进程号 状 态 当前申请量 资源需求总量 已占资源量 尚需资源量 假定分配完成标志 struct P { int number; //进程号 char state; //状态 int request; //申请的资源量 int Max; //资源需求总量 int Need; //尚需资源量 int allocation;// 已占资源量 int finish; //银行家算法中的假定已分配标志 }P[I],Q[I]; 2.具体设计 1)模块设计 实习题1需通过银行家算法和随机分配算法完成对资源的分配。 经初步分析,需要用到:主函数模块,初始化模块、银行家模块、随机分配模块、打印模块。 ① 初始化模块又可细分为: 由键盘输入数据模块、和直接读取数据模块。其流程如图1所示。 图1 初始化模块流程图 ② 随机分配模块细分为:资源分配模块、状态调整模块。其功能与流程于算法设计部分详细阐述。 随机分配流程图如图5所示。 ③ 银行家算法模块可细分为:资源分配模块、状态调整模块以及安全性检查模块。其功能与流程于算法设计部分详细阐述。 银行家算法流程图如图6所示。 ④ 状态调整模块即对进程的尚需求量及系统尚存资源量进行比较从而对进程状态进行调整,其流程图如图2所示。 ⑤ 主函数要求用户选择。 图2 状态调整模块流程图 ⑥ 各模块关系自顶向下设计如图3所示。 2)算法设计 对于资源分配模拟程序的总流程图如图4所示。 对于随机分配算法,只要满足申请的资源量小于或等于当前系统的剩余资源量,则进行分配,若已拥有的资源量等于进程所需的最大资源量,则进程完成,系统回收资源。随机分配算法很容易造成死锁。随机分配算法流程图如图5所示。 银行家算法分配资源的原则是:系统掌握每个进程对资源的最大需求量,当进程要求申请资源时,系统就测试该进程尚需资源的最大量,如果系统中现存的资源数大于或等于该进程尚需的最大量时,则就满足进程的当前申请。这样可以保证至少有一个进程可能得到全部资源而执行到结束,然后归还它所占用的全部资源供其它进程使用。银行家算法破坏了产生死锁的第四个条件,即不可能产生循环等待,从而可以避免死锁的发生。银行家分配算法流程图如图6所示。 图4 资源分配模拟程序总流程 图5 随机分配算法流程图 (二) 用按序分配策略实现资源分配。 系统为每个进程定义了一个数据结构——进程控制块PCB,它是进程实体的一部分,是操作系统中最重要的记录型数据结构。PCB中记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。 1. 数据结构设计 表5-2 PCB格式 进 程 号 状 态 当前等待资源号 上次申请资源号 资源最大需求量 资源已占有量 进程定义的结构体如表5_2所示 struct PCB { int number; //进程号 int state; //状态 int need; //资源最大需求量 int allocation; //资源已占有量 int apply; //当前资源申请号 int lapply; //上次资源申请号 }P[I]; //三个进程 表5-3 RCB格式 进 程 号 状 态 资源号 资源被申请与否 资源定义的结果体乳表5_3所示。 struct RCB { int R_number; //资源号 int R_state; //该资源被申请与否 }R[N];//10个资源 2.具体设计 1)模块设计 实习题2需通过按序分配算法和无序分配算法完成对资源的分配。 经初步分析,需要用到:主函数模块,初始化模块、按序分配模块、无序分配模块、打印模块。 ① 初始化模块直接由键盘输入。 初始化流程图如图7所示 图7 初始化流程图 随机产生数据将从1—10中随机生成整数,共三组作为所需最大资源量。 非随机产生数据由键盘输入三组数据,作为所需最大资源量。 同时初始化模块也完成对记录申请资源号的数组进行清零、各进程资源占有量清零以及将各进程置为就绪态。 ② 打印模块可细分为:对分配情况的打印及对各申请资源号的打印。 其中,申请资源号打印原则是,所有进程执行一轮为一次申请。若有申请,则打印数据。 若因等待或进程已完成而导致的未申请,该记录号为0,不打印。即通过对数组中存储的数据进行归类,及打印,通过循环语句得以完成 分配情况的打印比较简单,任何导致分配有所改变,都打印出该分配情况。 ③ 按序分配模块和无序分配模块均为简单模块。 两者在算法上类似,但按序分配模块比无序分配模块更严谨,由于申请资源的顺序性,可避免死锁。 按序分配算法比无序分配算法多出对申请资源号的顺序的选择,若按序,则对申请资源号有效,有对资源进行分配的资格。 按序分配流程图如图14所示。 ④ 主函数模块要求用户选择。 主函数流程图如图8所示 图8 主函数流程图 ⑤各模块关系自顶向下设计如图9所示。 2)算法设计 按序分配算法是防止进程发生循环等待的另一种资源分配策略 基本思想如下:把系统中所有的资源排一个顺序,例如系统共有m个资源,用ri表示第i个资源,那么这m个资源是: r1, r2, r3 ……, rm 规定任何进程不得在占用资源ri(1<im)后再申请rj(j<im),或者说,如果里程需要资源rj,那么它必须在申请ri之前申请(j<i)。可以证明,按这种策略分配资源时破坏了循环等待条件,故能防止发生死锁 设计思路如下: ①进程按一定次序循环,若当前循环到的进程就绪,则进入第②步,否则,下一进程。 ②当前申请资源号为0?若为0,则由键盘输入当前申请资源号,进入第③步,否则,直接由记录中提取当前申请资源号,进入第③步。 ③检查是否为按序申请?若为按序申请,则进入第④步。否则,重新输入。 ④检查当前申请的资源号是否被占用。若未占用,进入第⑤步。否则,若其被自己占用,则输出提示信息:“当前资源号已申请到,请勿重复申请”。若被其他进程占用,则记录当前申请资源号,进程等待。跳出,并进行第①步。 ⑤进行资源号分配,若该进程已占有的资源量满足其资源最大需求量,则该进程置为完成态,并释放资源。进入步骤⑥。否则,执行步骤①。 ⑥检测是否所有进程皆为完成态,若是,则输出提示信息。打印资源分配情况及资源号申请情况。若不是,则执行步骤①。 对于按序分配模拟程序的总流程图如图10所示。
...展开详情收缩
2011-06-20 上传大小:1.46MB
分享
收藏 (6) 举报

评论 共7条

sjkabc121 介绍的比较详细
2014-05-07
回复
hui201001 比较详细,很需要
2013-10-13
回复
momoyuyan 还行,但不是我要的
2013-09-10
回复
le1137107872 帮助很大!非常感谢
2013-06-17
回复
forsionkun 很详细,达到了实验要求,相当有用!
2012-12-17
回复
mr2020 很详细,对我很有帮助
2012-11-22
回复
a519996045 介绍比较详细,但是不是我需要的
2012-07-11
回复
实验二 死锁避免的模拟
操作系统实验三 预防进程死锁的银行家算法

操作系统实验三 预防进程死锁的银行家算法(内含源代码和详细实验报告),详细介绍:http://blog.csdn.net/xunciy/article/details/79239096

立即下载
银行家算法的思想,编写程序,解决并发进程的死锁问题。

根据银行家算法的思想,编写程序,解决并发进程的死锁问题。 本实验要求设计并实现银行家算法。银行家算法是死锁避免的经典算法,其核心思想是:进程动态地申请资源,每次申请资源时系统都执行安全状态检查算法判断本次申请是否会造成系统处于不安全状态,如果不安全则阻塞进程;如果安全状态,则完成资源分配。 安全状态检查算法的思想是找到一个安全序列,使所有进程都能执行完毕。如果找到,则处于安全状态,否则为不安全状态。

立即下载
软考死锁计算题设系统中有R类资源m个,现有n个进程互斥使用
此次课程设计的主要内容是模拟实现资源分配。同时要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并使用适当的算法,有效的防止和避免死锁的发生。

(1) 设计一个3个并发进程共享3类不同资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请动态地分配资源。 (2) 设计用银行家算法和随机分配算法,实现资源分配的两个资源分配程序,应具有显示或打印各进程依次要求申请的资源数以及依次分配资源的情况。 (3) 确定一组各进程依次申请资源数的序列,在相同的情况下分别运行上述两种资源分配程序,观察运行结果。

立即下载
利用银行家算法避免死锁
银行家算法的实现 通过编程,掌握银行家算法分配资源的一步步实现过程。

一、 实验目的 1、 对死锁避免中的银行家算法作进一步理解。 2、 加深理解死锁的概念。 3、 加深理解安全序列和安全状态的概念。 4、 通过编程,掌握银行家算法分配资源的一步步实现过程。 二、实验内容及要求 1、给出系统可用资源向量(例如:系统可用资源=(5,3,8,2,10))。 3、采用时间片轮转法调度进程。 4、进程执行时提出资源请求(可利用随机数给出或从键盘输入)。 5、判断资源是否可以安全分配,要求进程每提出一个资源请求,都要进行安全判断并给出安全序列,否则给出提示。

立即下载
死锁以及银行家算法的一个简单理解。
银行家算法-----一个n个并发进程共享m个资源的银行家算法的模拟实现

(1) 简单的交互界面 (2) 能显示当前系统资源的剩余情况和占用情况 (3) 能输入每个进程的最大资源要求 模拟利用银行家算法为进程的若干次资源请求分配资源 (4) 输入本次资源要求; (5) 按银行家算法为进程分配资源,本次分配是否成功要显示出来(要能处理各种情况:可以满足这次请求、由于资源不够不能满足这次请求、由于可能产生不安全不能满足这次请求、请求不合理拒绝请求等) (6) 作业撤销时要回收资源

立即下载
进程死锁条件和银行家算法
用java编写银行家算法

很好理解,很容易看懂通过编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并采用适当的算法,有效地防止和避免死锁地发生。

立即下载
计算机操作系统-实验二:银行家算法

计算机操作系统-实验二:银行家算法 操作系统 操作系统报告 操作系统实验 银行家算法

立即下载
大二下学期操作系统课程设计银行家算法资源分配和随机分配算法
操作系统-化简资源分配的方法
操作系统之死锁概念和资源分配图
Java操作系统之资源分配
某系统中有3个并发进程都需要4个同类资源,该系统不会发生死锁的最少资源数量?
操作系统内存动态分配C++模拟代码

操作系统内存动态分配C++模拟代码.运用了双链表结构,用FIFS算法,采用在控制台用不同颜色显示,有内存回收但没有运用全部方法.

立即下载
操作系统--银行家算法设计
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

操作系统课设 资源分配

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
3 0 0
为了良好体验,不建议使用迅雷下载
VIP和C币套餐优惠
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载
您还未下载过该资源
无法举报自己的资源

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

  • 举报人:
  • 被举报人:
  • *类型:
    • *投诉人姓名:
    • *投诉人联系方式:
    • *版权证明:
  • *详细原因: