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