今天的408每日一题聊操作系统里的管道通信,先看题!(操作系统)下列关于管道 (Pipe) 通信的叙述中,正确的是( )。14联考-31A. 一个管道可实现双向数据传输B. 管道的容量仅受磁盘容量大小限制C. 进程对管道进行读操作和写操作都可能被阻塞D. 一个管道只能有...
今天的408每日一题聊操作系统里的管道通信,先看题!
(操作系统)下列关于管道 (Pipe) 通信的叙述中,正确的是( )。14联考-31A. 一个管道可实现双向数据传输B. 管道的容量仅受磁盘容量大小限制C. 进程对管道进行读操作和写操作都可能被阻塞D. 一个管道只能有一个读进程或一个写进程对其操作
先理清楚管道的关键特性——它是半双工的,数据只能单向传,要双向得用两个管道;而且数据存在内核缓冲区里,容量是操作系统定的,和磁盘没关系。
选项A说一个管道能双向传数据?不对,管道是半双工,单向的,双向得俩独立管道。
选项B说容量只看磁盘?错了,管道数据存在内存的内核缓冲区里,容量是内核参数(比如PIPE_BUF)管的,和磁盘压根不沾边。
选项C是对的,为啥?写的时候如果缓冲区满了,写进程会被卡住,得等有空间才能继续;读的时候如果缓冲区空了,读进程也会被堵着,直到有数据进来。
选项D说一个管道只能有一个读或写进程?不对,操作系统没强制限制,可以多个,但多个写进程容易把数据搞交叉,所以一般建议单读单写,但不是必须的。
总结一下,这题的正确选项是C。
专业解答各类课程问题、介绍师资和学校情况