电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

生产者消费者问题/银行家算法

生产者消费者问题/银行家算法_第1页
1/8
生产者消费者问题/银行家算法_第2页
2/8
生产者消费者问题/银行家算法_第3页
3/8
操作系统课程设计 题目一:实现生产者消费者问题 题目二:银行家算法的实现 一、实验题目 解决生产者-消费者问题 二、设计内容 有界缓冲区内设有10个存储单元,放入/取出的数据项设定为1~10这10个整形数。要求每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容、当前指针位置和生产者/消费者标识符 三、开发环境 LINUX环境,工具为 VI编辑器。 四、分析设计 (一)实验原理 使用的生产者和消费者模型具有如下特点: (1)本实验的多个缓冲区不是环形循环的,也不要求按顺序访问。生产者可以把产品放到目前某一个空缓冲区中。 (2)消费者只消费指定生产者的产品。 (3)在测试用例文件中指定了所有的生产和消费的需求,只有当共享缓冲区的数据满足了所有关于它的消费需求后,此共享缓冲区才可以作为空闲空间允许新的生产者使用。 (4)本实验在为生产者分配缓冲区时各生产者间必须互斥,此后各个生产者的具体生产活动可以并发。而消费者之间只有在对同一产品进行消费时才需要互斥,同时它们在消费过程结束时需要判断该消费对象是否已经消费完毕并清除该产品。 Windows 用来实现同步和互斥的实体。在 Windows 中,常见的同步对象有:信号量(Semaphore)、 互斥量(Mutex)、临界段(CriticalSection)和事件(Event)等。本程序中用到了前三个。使用这些对象都分 为三个步骤,一是创建或者初始化:接着请求该同步对象,随即进入临界区,这一步对应于互斥量的 上锁;最后释放该同步对象,这对应于互斥量的解锁。这些同步对象在一个线程中创建,在其他线程 中 都 可 以 使 用 , 从 而 实 现 同 步 互 斥 。 当 然 , 在 进 程 间 使 用 这 些 同 步 对 象 实 现 同 步 的方 法 是 类 似 的 。 1. 用 锁 操 作 原 语 实 现 互 斥 为 解 决 进 程 互 斥 进 人 临 界 区 的 问 题 , 可 为 每 类 临 界 区 设 置 一 把 锁 , 该 锁 有 打 开 和关 闭 两 种 状 态 , 进 程 执 行 临 界 区 程 序 的 操 作 按 下 列 步 骤 进 行 : ① 关 锁 。 先 检 查 锁 的 状 态 , 如 为 关 闭 状 态 , 则 等 待 其 打 开 ; 如 已 打 开 了 , 则 将 其关 闭 , 继 续 执 行 步 骤 ② 的 操 作 。 ② 执 行 临 界 区 程 序 。 ③ ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

生产者消费者问题/银行家算法

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部