资 源 简 介
学习如何利用管道机制、共享存储区机制进行进程间的通信,并加深对上述通信机制的理解。
内容:
(1) 了解系统调用pipe()、shmget()、shmat()、shmdt()、shmctl()的功能和实现过程。
(2) 编写一段程序,使其用管道来实现父子进程之间的进程通信。子进程向父进程发送自己的进程标识符,以及字符串“is sending a message to parent ! ”。父进程则通过管道读出子进程发来的消息,将消息显示在屏幕上,然后终止。
(3) 编写一段程序,使其用共享存储区来实现父子进程之间的进程通信。父进程创建一个长度为512 字节的共享内存空间,显示写入该共享内存的数据;子进程将共享内存也附加到自己的地址空间,并向共享内存中写入数据。
思考
(1) 上述哪个通信机制提供了发送进程和接收进程之间的同步功能?这些同步是如何进行的?
(2) 上述通信机制各有什么特点,它们分别适合于何种场合?