欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    进程之间的同步互斥与通信理发师问题操作系统课程设计

    • 资源ID:1404131       资源大小:215.50KB        全文页数:12页
    • 资源格式: DOC        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    进程之间的同步互斥与通信理发师问题操作系统课程设计

    1、 操作系统课程设计操作系统课程设计 信息科学与工程学院软件实践实训报告 2 目目 录录 1. 1. 课程设计目的课程设计目的 3 3 2. 2. 设计要求设计要求 3 3 3. 3. 问题具体描述问题具体描述 3 3 4.4. 设计分析设计分析 3 3 5 5. . 设计分工设计分工 4 4 6. 6. 数据结构说明数据结构说明 4 4 7 7. . 系统结构说明系统结构说明 4 4 8 8. . 系统调用说明系统调用说明 4 4 9 9. . 分工设计说明分工设计说明 5 5 1010. . 算法流程图算法流程图 5 5 1111. . 分工代码分工代码 6 6 1212. . 整体代码整体

    2、代码 7 7 1313. . 程序运行程序运行 1 10 0 1414. . 总结总结 1 11 1 信息科学与工程学院软件实践实训报告 3 1. 课程设计目的课程设计目的 1.内容围绕操作系统原理中最重要的基本概念和基本原理展开 2.巩固对原理知识的学习效果 3.加深对基本概念的理解 4.学习如何将基本原理和实际设计、应用有机结合 5.锻炼本专业的基本能力 2. 设计要求设计要求 1: 进程间通信、并发(同步/互斥)、文件读写 2: 内存管理、Dll、Windows 消息机制、IO (尚未最终定型) 3. 问题具体描述问题具体描述 1.完成 N 个生产者和 M 个消费者之间的并发控制,N、M

    3、 不低于 5,数据发送和接收缓冲区 大小不小于 10 个。 2.某个生产者进程生产的消息供 K 个消费者进程消费。K=M。某些消费进程消费多个生 产者生产的消息。 生产者和消费者之间的对应关系可以在程序开始有一个文件中读入, 也可 以动态调整。 3.每个生产进程生产 M 个消息后结束运行。如果一个消费者进程没有对应的生产者进程在 运行后,也结束运行。 4. 设计分析设计分析 课程设计的主要目的是了解并且掌握进程之间的同步互斥, 和进程之间的通信问题。 结 合课本上的生产者与消费者问题可以从这方面来实现一个多进程的小系统, 并且解决多个进 程之间的通信, 并发等问题, 以此来达到课程设计的目的。

    4、 理发师问题是将顾客看做生产者, 将理发师作为消费者。 设置一定数量的椅子的数目来作为缓存区的大小。 顾客来到的时候坐 在椅子上, 将自己作为 “产品” , 理发师理发的时候从椅子上叫走顾客, 相当于消费 “产品” , 从而达到了课程设计要求的前一个要求。 顾客作为生产者,每到来一个就使计数器 count 增加 1,以便让理发师理发(相当于消 费)至最后一个顾客(相当于产品) 。并且,第 1 个到来的顾客应负责唤醒理发师;如果不 是第 1 个到达的顾客,则在有空椅子的情况下坐下等待,否则离开理发店(该消息可由计数 器 count 获得) 。主要有以下一些函数来实现整个问题的实现过程: (1)用

    5、随机函数 random()来产生进入理发店的顾客。 (2)定义理发师的理发函数 cuthair()用来实现理发操作。 (3)定义顾客被理发的函数 gethaircut()用来实现顾客被理发的操作。 (4)用顾客线程 customer 实现对顾客行为的控制。 (5)用理发师线程 barber 实现对理发师行为的控制。 (6)定义主函数 main 实现对两个线程的控制和执行操作。 信息科学与工程学院软件实践实训报告 4 5. 设计分工设计分工 成员:李宁 侯绍立 分工: 理发师进程、信号量的设置、理发师函数 :xxx 顾客进程、顾客函数、主函数:xx 6. 数据结构说明数据结构说明 本程序用到了数

    6、据结构中的队列, 理发的顾客由随机函数产生, 顾客遵从先到先理发的 原则, 但队列的长度限制为输入的理发店中的椅子的个数, 当理发店的椅子没有空位的时候, 到来的顾客主动退出加入队列。理发师对队列中的顾客进行先到先服务的原则理发。 7. 系统结构说明系统结构说明 (一)头文件声明 #include “windows.h“ #include “iostream.h“ #include “math.h“ (二)定义各种变量 int long waiting(0); int chairs; char open_door; char close_door; int count(0); int finish(0); (三)信号量的定义 HANDLE Mutex =:CreateMutex(NULL, FALSE, “Mutex“); HANDLE barbers =:CreateSemaphore(NULL, 1,1, “barbers


    注意事项

    本文(进程之间的同步互斥与通信理发师问题操作系统课程设计)为本站会员(毕***)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583