操作系统课程设计用多线程同步方法解决睡眠理发师问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XXXXXXXXXXXXXXX
课程设计
题目用多线程同步方法解决睡眠理发师问
题(Sleeping-Barber Problem)
学院计算机科学与技术学院
专业软件工程
班级
姓名
指导教师
2010 年 6 月28 日
课程设计任务书
学生姓名:专业班级:
指导教师:工作单位:
题目: 用多线程同步方法解决睡眠理发师问题(Sleeping-Barber Problem)
初始条件:
1.操作系统:Linux
2.程序设计语言: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) 调试记录
2)自我评析和总结
上机时间安排:
18周一~ 五08:0 -12:00
指导教师签名:年月日
系主任(或责任教师)签名:年月日
目录
1设计题目与要求 ..................................................................................................................... 错误!未定义书签。
1.1 设计题目 .................................................................................................................... 错误!未定义书签。
1.2 设计要求 .................................................................................................................... 错误!未定义书签。
1.2.1 初始条件 ........................................................................................................ 错误!未定义书签。
1.2.2 技术要求 ........................................................................................................ 错误!未定义书签。
2 总体设计思想及开发环境与工具 ........................................................................................ 错误!未定义书签。
2.1 总体设计思想 ............................................................................................................ 错误!未定义书签。
2.2 多线程编程原理 ........................................................................................................ 错误!未定义书签。
2.2.1 创建一个线程 ................................................................................................ 错误!未定义书签。
2.2.2 等待一个线程结束 ........................................................................................ 错误!未定义书签。
2.2.3 信号量 ............................................................................................................ 错误!未定义书签。
2.3 伪码实现 .................................................................................................................... 错误!未定义书签。
2.4 开发环境与工具 ........................................................................................................ 错误!未定义书签。3数据结构与模块说明 ............................................................................................................. 错误!未定义书签。
3.1 数据结构 .................................................................................................................... 错误!未定义书签。
3.2程序模块说明 ............................................................................................................. 错误!未定义书签。
.................................................................................................................................... 错误!未定义书签。
3.2.2 理发师模块 .................................................................................................... 错误!未定义书签。
3.2.3 顾客模块 ........................................................................................................ 错误!未定义书签。4源程序 ..................................................................................................................................... 错误!未定义书签。
4.1用户名、源程序名和目标程序名 ............................................................................. 错误!未定义书签。
4.2源程序代码 ................................................................................................................. 错误!未定义书签。5运行结果 ................................................................................................................................. 错误!未定义书签。