【问题标题】:I/O bound & compute-bound processes . Greater throughput?I/O 绑定和计算绑定进程。更大的吞吐量?
【发布时间】:2013-12-03 03:48:17
【问题描述】:

如果一个进程需要,就说它是 I/O-bound 很多 I/O 操作,而一个进程 主要包括 CPU/内存系统被认为是计算密集型的

是否可以通过 如果两个进程都受 I/O 限制,或者一个受 I/O 限制而另一个受计算限制,系统在多编程环境中运行两个进程?为什么?

*编辑:我认为拥有一个 i/o 绑定和一个计算绑定进程可以实现更大的吞吐量,这就是为什么 i/o 绑定在后台运行,只要计算-bound 进程在 cpu 的帮助下正常运行。 你怎么看?我需要一些帮助

【问题讨论】:

  • 啊,google了一下。多道程序是单处理器系统上的多任务处理。
  • 是的,我知道。但是,关于我的问题,你怎么看? @Potatoswatter

标签: io computer-science multitasking


【解决方案1】:

如果一个进程在运行时占用了 I/O 资源,则称它为 I/O 绑定的。占用 CPU 资源的进程称为计算绑定。

如果每种任务都有一个任务,则可以让 I/O 通道忙于一项任务,而 CPU 忙于另一项任务。有时 CPU 必须确认 I/O 操作完成并开始另一个 I/O,并且计算绑定进程可能偶尔需要磁盘。但总的来说,这些任务不应该互相拖慢。

计算绑定任务示例:在文件浏览器中滚动文件列表。 (好吧,回到过去。)I/O 绑定任务示例:复制文件。

您希望能够同时做这两件事,最多偶尔会有停顿。

如果两者都受 I/O 限制,那就像复制两个文件一样。除非它们通过不同的 I/O 通道(例如将一个文件返回到光盘并上传另一个文件),否则您不会比简单的任务队列更快。

【讨论】:

  • 所以,据我所知,每种任务(I/O 和计算)都有一个任务比拥有两个 I/O 任务的吞吐量更大。我对吗? @Potatoswatter
  • @Socratεs 在竞争中执行任务会降低这些任务的吞吐量。所有 I/O 任务实际上并不相互竞争,但您有问题的要旨。
  • 知道没有 i/o 任务相互竞争,对我来说运行两个 i/o 任务是合乎逻辑的,以实现更大的吞吐量,而不是一个 i/o 和一个计算绑定@Potatoswatter
  • @Socratεs 是的,您可能希望运行尽可能多的并发、非竞争 I/O 任务。示例:下载文件并将其保存到磁盘。就此而言,您也可以同时执行计算密集型任务。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-07
  • 2011-09-04
  • 2018-02-23
  • 2015-10-25
  • 2012-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多