【问题标题】:Competition among processes for resources进程之间的资源竞争
【发布时间】:2017-02-09 09:05:06
【问题描述】:

我的操作系统教科书在讨论并发的一章中说了以下内容:

并发进程在竞争使用同一资源时会相互冲突。就其纯粹形式而言,我们可以将这种情况描述如下。两个或多个进程在执行过程中需要访问资源。每个进程都不知道其他进程的存在,并且每个进程都不受其他进程执行的影响。因此,每个进程都应该不影响它使用的任何资源的状态。

我的问题特别关注最后一句话:

因此,每个进程都应该不影响它使用的任何资源的状态。

这对我来说没有意义。如果一个进程正在使用一种资源,那么它必然会影响该资源的状态。这似乎很明显,但听起来这句话是不同意的?

如果本网站的成员能花时间澄清这一点,我将不胜感激。

【问题讨论】:

  • 英语很差。我明白为什么它没有任何意义。他们可能会为此向您收取 150 美元。

标签: concurrency process operating-system


【解决方案1】:

虽然我不清楚这是在什么背景下说的,但正如你提到的一小部分引文。甚至懒得提你引用的那本书。但是,我可以在黑暗中拍摄并假设它们的意思是:使用资源X 的进程一旦完成使用它就应该不受影响。也就是说,如果processY 决定使用逻辑资源,即file,它不应该写入或更改文件,因为这可能会影响processZ,它需要使用带有原始数据的文件。

当涉及到物理资源时,上面的陈述毫无意义……除非你提供完整的报价。

【讨论】:

  • 感谢您的回复。引用的段落与这个问题的标题相同:“资源进程之间的竞争”。它以 I/O 设备、内存、处理器时间和时钟为例。我为遗漏了那部分而道歉。这有帮助吗?
  • @handler'handle 进程如何影响资源的状态?据我所知,资源的状态是正在使用还是空闲。那我不能正确回答你的问题。
  • 我可以尝试:系统中的两个进程竞争 CPU 时间。当进程抢占正在运行的进程时,应该保存寄存器的状态。这样它们就可以在进程再次运行时恢复。我真的想不出更好的例子。
  • 感谢您的洞察力。确实,它似乎指的是物理资源,这就是为什么我认为它没有意义。如果它正在讨论逻辑/虚拟资源,那么这是有道理的,正如您已经说过的那样。
  • 我刚刚读到(在教科书后面)关于互斥的内容。我认为它指的是逻辑/虚拟资源,隐含地引用互斥。我会接受你的回答,因为我怀疑它正在讨论正确的上下文。再次感谢您的帮助。
猜你喜欢
  • 2022-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-02
  • 2016-11-16
  • 2020-10-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多