文档库

最新最全的文档下载
当前位置:文档库 > 实验5 Linux 信号量与 P

实验5 Linux 信号量与 P

实验5 Linux 信号量与P、V操作函数的定义

1. 实验目的

(1)掌握Linux信号量的使用方法和P、V操作函数的定义;

(2)掌握使用P、V操作实现进程之间的同步和互斥的方法;

(3)加深对进程同步互斥概念的理解。

2. 实验预备知识

(1) Linux信号量的使用方法请参考附件材料。

(2)共享存储通信请参考附件材料.

(3)用P、V操作实现进程互斥与同步请参考附件材料。

3. 实验内容

(1)使用信号量及P、V操作实现进程互斥。阅读附件材料,将程序编译连接后运行,观察运行结果。

(2)使用信号量及P、V操作实现子进程之间通过共享内存通信的读写同步,如实验图5-1所示。要求如下:

实验5 Linux 信号量与 P

实验图 5-1

①请参考附件材料,设计一个父进程,创建三个子进程。3个子进程中一个是生产者

进程,两个是消费者进程。父子进程都使用父进程创建的共享存储区进行通信。

②由生产者进程发送数值1~10到由5个缓冲区组成的共享内存中,两个消费者进程

轮流接受并输入这10个数据,同时将两个消费者进程对读出的所有数据进行累加

求和。

③3个子进程结束后,由父进程输出两个消费者进程所读出数据的累加和。

它们的同步关系使用P、V操作系统。

4. 实验思考

(1)针对每个信号量需要进行哪些定义?

(2)总结使用信号量系统调用的步骤与方法。

(3)进程之间如何使用信号量及其P、V操作实现互斥?

(4)进程之间如何使用信号量及其P、V操作实现同步?

(5)总结数值型共享内存作为变量或作为数组的使用方法。