1. 实验目的
用信号量来解决实际进程互斥问题,进而加深对信号量、进程互斥的理解。
2. 实验内容
在服务器上用Vim编写一个程序,使用信号量解决经典IPC问题:读者和写者问题。
- 读者和写者共享文件
shared.txt
- 创建10个读者。对于每个读者,读出文件最后一行的内容,并输出屏幕
- 创建10个写者。对于每个写者,在文件末尾写入自己的线程ID,获取线程ID用函数pthread_self
线程创建函数:pthread_create(3): create new thread - Linux man page
在指定文件编写代码:
- 信号量创建、加锁、解锁操作,直接使用库提供的API,见信号量操作
- 在文件
reader_writer_pv.c
实现读者和写者问题
3. 实验要求
实验基本要求见:所有实验要求章节
截止时间:
- 代码,实验课结束完成,由程序辅助判定
- 实验报告,截止时间为实验课当天21:00
4. 评分
得分:
- 本次实验:15分
- 信号量声明、初始值,得3分
- 写者,得3分
- 读者,得6分
- 非关键性代码(如读写文件),得3分
- 评分由程序辅助判定+教师评分
5. 实验报告
见实验报告模板。