下载此文档

苹果-桔子问题的实现说明书.doc


文档分类:行业资料 | 页数:约25页 举报非法文档有奖
1/25
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/25 下载此文档
文档列表 文档介绍
*******************
实践教学
*******************
某大学
***学院
***年秋季学期
操作系统原理课程设计
题目: 苹果-桔子问题的实现
专业班级: 计算机科学与技术
姓名:
学号:
指导教师:
成绩:
目录
前言 1
摘要 2
正文 3
1. 设计思想 3
2. 算法用到的主要数据结构(采用类c语言定义) 4
3. 相关的各模块的伪码算法 5
4. 调试分析 9
5. 测试结果 9
总结 15
参考文献 16
致谢 17
附件Ⅰ部分源程序代码 18
源程序(带注释) 18
前言
进程间存在两种相互关系:竞争与合作,进程互斥是解决进程间资源竞争关系的手段,任何时刻只允许一个进程使用,其他要使用该资源的进程必须等待。进程同步是解决进程间合作关系的手段,指两个或两个以上进程基于某个条件来协调它们的活动,一个进程的执行依赖于另一个合作进程的消息或信号,当一个进程没有得到来自于另一个进程的消息或信号时需要等待,直到消息或信号到达时才被唤醒。本次课程设计题目是苹果桔子问题的实现,爸爸进程与妈妈进程是互斥进程,女儿进程与儿子进程也是互斥进程,每次只允许其中一个发生。妈妈进程与儿子进程是同步进程,爸爸进程与女儿进程是同步进程,只有爸爸放入苹果,女儿才能取苹果,同理,只有妈妈放入桔子,儿子才能取桔子。本次课设在VC操作系统下使用C语言设计这个进程的执行。
摘要
这次课设的题目是苹果-桔子问题的实现,这是一个进程同步互斥问题。爸爸专向盘中放苹果,妈妈专向盘中放桔子,儿子专等吃盘中的桔子,女儿专等着吃盘中的苹果。父母是放入水果的,子女是吃水果的,也就是只有父母放入水果,子女才能吃水果;只有子女吃完水果,父母才再次放入水果。放水果者和吃者共享缓冲区,缓冲区中有空时,放水果者可放入产品(不许放重),否则等待。缓冲区中有产品时,吃水果者可取出产品(不许取重),否则等待。本次课设基于VC下用C语言设计进程的执行。
关键词:苹果,桔子, 进程同步;互斥;等待。
正文
设计思想
这是一个进程同步互斥问题,也是生产者消费者问题,所以采用与生产者消费者类似的设计理念。设plate,orange和apple是爸爸妈妈儿子女儿的私用信号量。plate表示盘子的状态,其含义是爸爸妈妈是否可以放入水果,初值为0表示盘子是空的,可以放苹果或桔子。orange表示盘中是否有桔子,其含义是儿子是否可以取桔子,其初值为0表示不能取桔子。apple表示盘中是否有苹果,其含义是女儿是否可以取苹果,其初值为0表示不能取苹果。爸爸放完苹果后,女儿才可以取苹果,妈妈放完桔子后,儿子才可以取桔子。主函数中采用除4取余法调用各个进程的执行,当余数为1时调用爸爸进程,余数为2时调用女儿进程,余数为3时调用妈妈进程,余数为0时调用儿子进程。
:
儿子进程
0
主函数
爸爸进程
1
i%4=

女儿进程
2
妈妈进程
3

算法用到的主要数据结构(采用类c语言定义)
数据定义:
int plate = 0;
int apple = 0;
int orange = 0;
int N;
int i ;
int p;
爸爸进程:
if (plate == 1)
盘子已满,爸爸等待;
else
{
盘子为空,爸爸放入苹果;
plate = 1;
apple = 1;
}
妈妈进程:
if (plate == 1)
盘子已满,妈妈等待;
else
{
盘子为空,妈妈放入桔子;
plate = 1;
orange = 1;
}
儿子进程:
if(plate == 0)
盘子为空,儿子等待;
else
{
盘子有桔子,儿子取桔子吃;
orange = 0;
plate = 0;
}
女儿进程:
if(plate == 0)
盘子为空,女儿等待;
else
{
盘子有苹果,儿女取苹果吃;
apple = 0;
plate = 0;
}
相关的各模块的伪码算法
爸爸进程:
father()
{
if(plate == 1)
{
printf(“盘子已满,等待”);
return;
}
else
{
apple = 1;
plate = 1;
printf(“爸爸放苹果”);
return;
}
}
妈妈进程:
mother()
{
if(plate == 1)
{
printf(“盘子已满,等

苹果-桔子问题的实现说明书 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数25
  • 收藏数0 收藏
  • 顶次数0
  • 上传人liwenfei1314
  • 文件大小184 KB
  • 时间2017-12-08