1. 实验目的
加深对信号量的理解,以及用信号量来实现进程同步功能。
2. 实验内容
利用信号量实现进程同步,包含如下内容:
(1)实现信号量创建、加锁、解锁操作
在/os_exp/exp4_sync_pv/semaphore.h
上完成信号量创建、加锁、解锁操作。
不要慌,其实不难,所有函数都是现成的,你只需要懂信号量的基本原理,调用函数就行(类似于拼乐高)。静下心来,能完成的。况且,我已经把步骤和会用到的函数整理好了,见创建信号量步骤 。
(2)实现进程同步
在process_synchronization_pv.c
文件实现进程同步。在main函数用fork创建一个子进程,确保子进程先运行,子进行运行完,才轮到父进程。父子进程都输出自己的进程号和父进程号,即:
printf("%d %d\n", getpid(), getppid());
3. 实验要求
实验基本要求见:所有实验要求章节
截止时间:
- 代码,实验课结束完成,由程序辅助判定
- 实验报告,截止时间为实验课当天21:00
4. 评分
得分:
- 本次实验:10分
- 完成信号量创建、加锁、解锁操作,得6分
- 实现进程同步,得4分
- 评分由程序辅助判定+教师评分
5. 实验报告
见实验报告模板。