操作系统课程设计---吃水果问题
《操作系统课程设计---吃水果问题》由会员分享,可在线阅读,更多相关《操作系统课程设计---吃水果问题(20页珍藏版)》请在毕设资料网上搜索。
1、 1 目目 录录 1 题目内容及要求题目内容及要求 . 2 1.1 题目名称 2 1.2 题目描述 2 1.3 解题思路 2 1.4 程序清单 6 1.5 提交结果框图 16 2 总结总结 20 3 参考文献参考文献 20 2 1 题目内容及要求题目内容及要求 1.1 题目名称题目名称 进程同步模拟设计:吃水果问题 1.2 题目描述题目描述 桌子上有一只盘子,最多可容纳两个水果,每次只能放入或者取出一个水 果。爸爸专门向盘子中放苹果,妈妈专门向盘子中放橘子,两个儿子专门等 待吃盘子中的橘子,两个女儿专门等吃盘子中的苹果。 1.3 解题思路解题思路 将问题转换为信号量上的资源分配类型问题: 这是
2、进程同步问题的模拟,可以把向盘子放或取水果的每一个过程可以 转为一个进程的操作,这些进程是互斥的,同时也存在一定的同步关系。通 过编程实践时,实际是随机的调用人一个进程的操作,而这些进程的操作相 当于程序中的函数调用。而计算机在执行时每一个时刻只能执行一个操作, 这就默认了互斥。同步的模拟可以类似于函数调用时的前提关系即先决条件。 这样进程同步模拟就完全可以通过函数的调用来实现。 具体的每一个操作的对应的函数的关系: 爸爸向盘子中放一个苹果:Father() 妈妈向盘子中放一个橘子:Mother() 儿子 1 从盘子取一个橘子:Son1() 儿子 2 从盘子取一个橘子:Son2() 女儿 1
3、从盘子取一个苹果:Daugther1() 儿子 1 从盘子取一个苹果:Daugther2() 3 具体实现方案: (1)用一个整型变量 Plate_Size 表示盘子,初始值为 0,当放水果时 Plate_Size 加 1,取水果时 Plate_Size 减 1。变量 Plate_Size 的最大值为 2, 当为 2 时表示盘子已经满,此时若进行放水果操作,放水果将处于等待状态; 为 0 时表示盘子为空,此时若进行取水果操作,取水果操作将处于等待状态。 (2)整型变量 orange 和 apple 分别表示盘子中的橘子和苹果数目, 初始都为 0,Plate_Size=apple+orange。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 水果 问题
