下列关于管道(Pipe)通信的叙述中,正确的是( )。
A.一个管道可实现双向数据传输
B.管道的容量仅受磁盘容量大小限制
C.进程对管道进行读操作和写操作都可能被阻塞
D.一个管道只能有一个读进程或一个写进程对其操作
D选项 一个管道可以被多个进程操作 但是同一时刻只能被一个进程进行操作
【答案】C
【解析】管道实际...
用户登录可进行刷题及查看答案
【解析】管道实际上是一种固定大小的缓冲区,管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户、单独构成的一种文件系统,并且只存在于内存中。它类似于通信中半双工信道的进程通信机制,一个管道可以实现双向的数据传输,而同一时刻只能最多有一个方向的传输,不能两个方向同时进行。管道的容量大小通常为内存上的一页,它的大小并不受磁盘容量大小的限制。当管道满时,进程在写管道会被阻塞,而当管道空时,进程在读管道会被阻塞,因此选C。
A错误。管道通信是一种半双工的通信方式,意味着数据只能在一个方向上传输。管道具有一个读端和一个写端,只能单向传输数据。
B错误。管道的容量是受操作系统的限制的,与磁盘容量无关。通常,管道的容量是固定的,取决于操作系统的实现。
C正确。管道的读写操作都是阻塞的。如果管道为空,读取操作将被阻塞,直到有数据可读。同样,如果管道已满,写入操作将被阻塞,直到有空间可写。
D错误。管道通常被设计成允许多个进程进行读写操作。多个进程可以共享同一个管道实例,一个进程可以写入数据到管道,而另一个进程可以从管道读取数据。
本题选C。
登录后提交答案