【正确答案】
D
【答案解析】[解析] Ⅰ错误,当发送方发送一个较小的数据包时,发送方将数据复制至消息队列,然后接收方从消息队列中拷走,这称为复制发送;如果数据包较大,发送方只是把指向数据包的指针和数据包大小发送给接收者,接收者通过指针访问数据包,这称为引用发送。显然引用发送比复制发送更复杂,但不需要复制数据,所以引用发送效率高。
Ⅱ错误,进程调度信息属于进程管理的内容,并非进程通信内容,这里还缺少一个实现消息队列互斥访问的互斥信号量。
Ⅲ错误,各个进程有自己的内存空间、数据栈等,所以只能使用进程间通信(Inter Process(Communications,IPC),而不能直接共享信息。需要注意的是,这里的内存空间和进程通信中的共享的缓冲区是不一样。
Ⅳ正确,并发进程之间进行通信时,必定存在资源共享问题。进程通信归结为三大类:
(1)共享存储器系统,很明显共享了存储器资源。
(2)消息传递系统,共享了消息文件。
(3)管道通信,共享了管道文件。