XXXXXXXXXXXXXXX课程设计题目用多线程同步方法解决睡眠理发师问题(Sleeping-Barber Problem)学院计算机科学与技术学院专业软件工程班级姓名指导教师2010 年 6 月28 日课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目: 用多线程同步方法解决睡眠理发师问题(Sleeping-Barber Problem)初始条件:1.操作系统:Linux2.程序设计语言: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运行结果 ................................................................................................................................. 错误!未定义书签。
5.1运行步骤 ..................................................................................................................... 错误!未定义书签。
5.2运行结果 ..................................................................................................................... 错误!未定义书签。
5.2.1 编辑,编译和运行的过程图 .......................................................................... 错误!未定义书签。
5.2.2 错误部分截图 .................................................................................................. 错误!未定义书签。
5.2.3 正确运行结果图 .............................................................................................. 错误!未定义书签。
6调试记录 ................................................................................................................................. 错误!未定义书签。