本项目为操作系统课程设计作品,主题是“睡眠理发师问题”,旨在通过模拟经典计算机科学理论中的同步与互斥现象,加深对并发编程和资源管理的理解。
初始条件:1. 操作系统为Linux 2. 使用C语言进行程序设计 3. 设有一个理发师,并设有5把椅子(其中一把是理发椅),这几把椅子可以用连续存储单元表示。
要求完成的主要任务包括课程设计工作量及其技术要求,以及说明书撰写等具体要求如下:
1. 技术要求:
- 每个顾客和每个理发师都需要创建一个线程,并且要正确地实现同步算法。
- 当一位顾客进入理发室后,程序应即时显示“Entered” 及其自定义的标识信息。同时也要显示出当前有多少名顾客以及他们的座位位置。
- 至少需要有10位顾客,每位顾客至少需要等待3秒钟才能完成理发服务。
- 共享操作函数代码以支持多个顾客并发使用。
2. 设计说明书内容要求:
1) 明确设计题目与具体需求
2) 描述总体的设计理念以及所使用的系统平台、编程语言及工具等信息。
3)详细说明数据结构和模块的功能,提供流程图来辅助理解。
4)列出用户名、源程序名、目标程序名,并附上完整的源代码及其运行结果。同时需注明存储各文件的主机IP地址与目录位置。
5) 提供详细的系统执行情况及输出结果分析。