{新}操作系统课程设计--用多线程同步方法解决睡眠理发师问题.doc

{新}操作系统课程设计--用多线程同步方法解决睡眠理发师问题.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学 号: XXXXXXXXXXXXXXX 课 程 设 计 题 目 用多线程同步方法解决睡眠理发师问题(Sleeping-Barber Problem) 学 院 计算机科学与技术学院 专 业 软件工程 班 级 姓 名 指导教师 2010 年 6 月 28 日 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 题目: 用多线程同步方法解决睡眠理发师问题(Sleeping-Barber Problem) 初始条件: 操作系统:Linux 程序设计语言:C语言 3. 设有一个理发师,5把椅子(另外还有一把理发椅),几把椅子可用连续存储单元。 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1.技术要求: 1)为每个理发师/顾客产生一个线程,设计正确的同步算法 2)每个顾客进入理发室后,即时显示“Entered” 及其线程自定义标识,还同时显示理发室共有几名顾客及其所坐的位置。 3)至少有10个顾客,每人理发至少3秒钟。 4)多个顾客须共享操作函数代码。 2. 设计说明书内容要求: 1)设计题目与要求 2)总的设计思想及系统平台、语言、工具等。 3)数据结构与模块说明(功能与流程图) 4)给出用户名、源程序名、目标程序名和源程序及其运行结果。(要注明存储各个程序及其运行结果的主机IP地址和目录。) 5)运行结果与运行情况 (提示: (1)连续存储区可用数组实现。 (2)编译命令可用: cc -lpthread -o  目标文件名  源文件名 (3)多线程编程方法参见附件。) 3. 调试报告: 1) 调试记录 自我评析和总结 上机时间安排: 18周一 ~ 五 08:0 - 12:00 指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日 目录 1设计题目与要求 4 1.1 设计题目 4 1.2 设计要求 4 1.2.1 初始条件 4 1.2.2 技术要求 4 2 总体设计思想及开发环境与工具 4 2.1 总体设计思想 4 2.2 多线程编程原理 5 2.2.1 创建一个线程 5 2.2.2 等待一个线程结束 5 2.2.3 信号量 6 2.3 伪码实现 6 2.4 开发环境与工具 7 3数据结构与模块说明 8 3.1 数据结构 8 3.2程序模块说明 8 3.2.1主函数模块 8 3.2.2 理发师模块 9 3.2.3 顾客模块 9 4源程序 10 4.1用户名、源程序名和目标程序名 10 4.2源程序代码 11 5运行结果 14 5.1运行步骤 14 5.2运行结果 15 5.2.1 编辑,编译和运行的过程图 15 5.2.2 错误部分截图 16 5.2.3 正确运行结果图 16 6调试记录 18 6.1调试记录 18 6.2自我评析和总结 19 7参考文献 19 1设计题目与要求 1.1 设计题目 用多线程同步方法解决睡眠理发师问题(Sleeping-Barber Problem) 1.2 设计要求 1.2.1 初始条件 (1)操作系统:Linux (2)程序设计语言:C语言 (3)设有一个理发师,5把椅子(另外还有一把理发椅),几把椅子可用连续存储单元。 1.2.2 技术要求 (1)为每个理发师/顾客产生一个线程,设计正确的同步算法 (2)每个顾客进入理发室后,即时显示“Entered” 及其线程自定义标识,还同时显示理发室共有几名顾客及其所坐的位置。 (3)至少有10个顾客,每人理发至少3秒钟。 (4)多个顾客须共享操作函数代码。 2 总体设计思想及开发环境与工具 2.1 总体设计思想 题目中要求描述理发师和顾客的为,因此需要两类程barber()和customer ()分别描述理发师和顾客的行为。理发师和顾客之间同步关系当理发师时顾客近来需要唤醒理发师为其理发,当有顾客时理发师为其理发,没有的时候理发师理发师和顾客之间互斥关系由于每次理发师只能为一个人理发,且可供等侯的椅子有限只有n,即理发师和椅子是临界资源,所以顾客之间是互斥的关系。故引入3个信号量和一个控制变量:控制变量waiting用来记录等候理发的顾客数,初值为0;信号量customers用来记录等候理发的顾客数,并用作阻塞理发师进程,初值为0;信号量barbers用来记录正在等候顾客的理发师数,并用作阻塞顾客进程,初值为;信号量m

您可能关注的文档

文档评论(0)

xiaofei2001129 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档