首页 > 试题广场 >

下列关于管道(Pipe)通信的叙述中,正确的是 ()

[单选题]

下列关于管道(Pipe)通信的叙述中,正确的是 ()

  • 一个管道可实现双向数据传输
  • 管道的容量仅受磁盘容量大小限制
  • 进程对管道进行读操作和写操作都可以被阻塞
  • 一个管道只能有一个读写进程或一个写进程对其操作
管道是 单向的、先进先出的 ,它把一个进程的输出和另一个进程的输入连接在一起。一个进程(写进程)在管道的 尾部写入数据 ,另一个进程(读进程)从管道的 头部读出数据
发表于 2017-02-27 17:25:01 回复(2)
管道实际上就是内存上的一块缓冲区,管道类似于通信中的半双工系统,可以双向传输,但同一时刻只能一个方向传输,不能两个方向同时进行。管道的容量通常为内存上的一页,所以不受磁盘限制。在管道满时,写进程阻塞,但管道空时,读进程阻塞。
发表于 2019-12-03 11:28:26 回复(0)

管道通信,是指用于连接一个读进程和一个写进程,以实现它们之间通信的一个文件,又称为pipe文件。向管道(共享文件)提供输入的发送进程(即写进程),以字符流形式将大量的数据送入管道;而接收管道输出的接收进程(读进程),则从管道中接收数据。由于发送进程和接收进程是利用管道进行通信的,故又称为管道通信。

为了协调双方的通信,管道进程必须提供以下三方的协调能力:
  • 互斥:当一个进程正在对pipe进行读/写操作时,其它进程必须等待。
  • 同步:当写进程把一定量数据写入pipe时,便去睡眠等待,直到读进程取走数据后,唤醒写进程。读进程读一空pipe时,也应该睡眠等待,直到写进程将数据写入管道,才将之唤醒。
  • 确定对方是否存在,只有确定了对方已经存在时,才能进行通信。
发表于 2018-05-23 19:05:07 回复(0)
D选项怎么错了
发表于 2020-11-17 18:32:03 回复(1)
关于D选项: 1一个管道允许多个写进程,一个读进程(2014年408真题高教社官方答案) 2允许有多个写进程,多个读进程,但系统会让各个读进程轮流从管道中读数据(Linux实际情况)。 参考:https://blog.csdn.net/markey1/article/details/120151637 各位自行判断
发表于 2024-06-15 00:48:11 回复(0)
管道可以有多个写进程。但是因为读完一次数据就没有了,只能有一个读进程。
发表于 2023-03-17 09:18:17 回复(0)
这个管道指的是有名管道还是无名管道?
发表于 2022-07-24 14:48:57 回复(0)
A单管道只能半双工 B管道是特殊的共享文件 不受磁盘容量限制 D在考试中 一个读进程多个写进程;在Linux系统中 多个读进程多个写进程
发表于 2022-04-02 09:20:52 回复(0)
管道是半双工的
发表于 2022-02-14 09:42:17 回复(0)
D选项 一个管道可以被多个进程操作 但是同一时刻只能被一个进程进行操作
C选项 如果不是同一时刻 进程可能都会被阻塞 但是同一时刻 不会同时被阻塞 
发表于 2021-01-07 20:09:07 回复(0)
A有一些奇怪,管道半双工,不能同时双向传输。但是可以实现数据双向传吧?
发表于 2020-08-07 10:22:19 回复(1)
管道是 单向的、先进先出的 ,它把一个进程的输出和另一个进程的输入连接在一起。一个进程(写进程)在管道的 尾部写入数据 ,另一个进程(读进程)从管道的 头部读出数据
发表于 2017-04-17 20:29:20 回复(0)