- 59
- 0
- 约7.34千字
- 约 12页
- 2018-04-28 发布于贵州
- 举报
睡眠理发师课程设计报告70
成绩
《操作系统》课程设计报告
专业: 计算机科学与技术
班级: 08 计本(2)班
学 号 姓 名 题目名称: 理发师问题
完成日期: 2011 . 6
甘肃政法学院计算机科学学院
目 录
一.题目内容 2
二.课程设计目的 3
三.设计思想说明 3
四.系统结构的说明 3
(一)头文件声明 3
(二)定义各种变量 3
(三)信号量的定义 3
(四)相关函数及线程的定义 3
五.数据结构说明 4
六.程序用到的系统调用(API) 4
七.程序总体算法流程图 4
八.程序运行 5
九.使用说明书 7
十.程序设计总结 7
参考文献 8
附录 8
(一)代码清单 8
(二)课程设计分工表 11
睡眠理发师问题
一.题目内容
有一个理发师,一把理发椅和n把提供给等候理发的顾客座的椅子。如果没有顾客,则理发师便在理发椅子上睡觉;当第一个顾客到来时,必须唤醒该理发师进行理发;如果理发师正在理发时又有顾客到来,则如果有空椅子可坐,他就坐下来等待,如果没有空椅子,他就离开理发店。
为理发师和顾客各编一段程序描述他们的行为,要求不能带有竞争条件,试用P、V操作实现。
二.课程设计目的
通过本次课程设计,能深入彻底的弄清楚睡眠理发师问题,能够举一反三,遇到同样的问题能够很快解决。通过自己的实际操作,认真分析,理解进程,线程,信号量之间的关系和他们的实现过程,掌握一些基本的系统调用的用法及其所实现的功能。用C++来实现睡眠理发师的课程设计,达到复习C++相关知识的目的。
三.设计思想说明
此题可看作是n个生产者和1个消费者问题。
顾客作为生产者,每到来一个就使计数器count增加1,以便让理发师理发(相当于消费)至最后一个顾客(相当于产品)。并且,第1个到来的顾客应负责唤醒理发师;如果不是第1个到达的顾客,则在有空椅子的情况下坐下等待,否则离开理发店(该消息可由计数器count获得)。主要有以下一些函数来实现整个问题的实现过程:
(1)用随机函数random()来产生进入理发店的顾客。
(2)定义理发师的理发函数cuthair()用来实现理发操作。
(3)定义顾客被理发的函数gethaircut()用来实现顾客被理发的操作。
(4)用顾客线程customer实现对顾客行为的控制。
(5)用理发师线程barber实现对理发师行为的控制。
(6)定义主函数main实现对两个线程的控制和执行操作。
四.系统结构的说明
(一)头文件声明
#include stdafx.h
#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);
(三)信号量的定义
DWORD a;% 互斥信号量:mutex 用来互斥对临界变量count的访问
计数信号量 customers用来记录等候的顾客数据,barbers用来记录等待的理发师数,这里barbers只有两种取值,要不是0要不是1
临界变量:count由理发师进程和顾客进程共同访问,用来记录在椅子上等着的顾客数
????????????? N 椅子数,为最多等候的顾客数
HANDLE Mutex =::CreateMutex(NULL, FALSE, Mutex);
HANDLE barbers =::CreateSemaphore(NULL, 1,1, barbers);
HANDLE customers =::CreateSemaphore(NULL,0,3,customers);
(四)相关函数及线程的定义
定义随机函数int random()来产生顾客,并使两个顾客间的时间少于15秒
定义理发师的理发函数void cuthair(),用时15秒
定义顾客被理发的函数void gethaircut()
定义顾客线程DWORD WINAPI customer(LPVOID pParm2)
定义理发师线程DWORD WINAPI barber
您可能关注的文档
- 电场能的性质练习题199.doc
- 电子商务 美丽说 分析52.ppt
- 电动动力转向154.ppt
- 电子密码锁——皇俊6.doc
- 电工技术 换路定则216.ppt
- 电影《茜茜公主》79.ppt
- 电工电子技术(少学时) 第3版67.ppt
- 电工电子技术2_期末考试复习资料11.doc
- 电子科大电装实习ppt102.ppt
- 电工电子学第十一章12.ppt
- 浙江省温州市2024-2025学年七年级上学期语文期末考查卷.docx
- 精品解析:北京市建华实验学校2024-2025学年七年级下学期期中英语试题(原卷版).docx
- 精品解析:北京市通州区2024-2025学年七年级下学期期末考试英语试卷(原卷版).docx
- 精品解析:北京市回民学校2024-2025学年九年级上学期期中语文试题(解析版).docx
- 精品解析:北京市海淀区2025-2026学年九年级上学期期末语文试题(解析版).docx
- 精品解析:北京市东城区汇文中学2025-2026学年八年级上学期期中语文试题(原卷版).docx
- 精品解析:北京市回民学校2024-2025学年九年级上学期期中语文试题(原卷版).docx
- 精品解析:2024-2025学年广东省广州市从化区街口镇中心小学人教版五年级上册期中测试数学试卷(解析版).docx
- 精品解析:北京市通州区2024-2025学年七年级下学期期末考试英语试卷(解析版).docx
- 精品解析:北京市建华实验学校2024-2025学年七年级下学期期中英语试题(解析版).docx
原创力文档

文档评论(0)