流程何时获得必要的资源?

时间:2016-12-06 15:40:02

标签: process operating-system dispatch

我一直在研究流程安排作为我学习的一部分。在这样做时,我一直在提到以下信息:

Abraham Silberschatz,Greg Gagne和Peter Baer Galvin说。 "Operating System Concepts, Ninth Edition ", Chapter 3;

流程处于就绪状态时:

该进程具有运行所需的所有可用资源,但CPU当前没有处理此进程的说明。

然而,我也从讲义中获悉:

当短期调度程序选择下一个进程[从就绪状态和使用CPU ]之前,调度程序例程可以控制CPU。在实际调度进程之前,它必须经历冲突阶段。 (到目前为止一直很好,但它还是继续......)

“此冲突阶段的一个方面是获取新流程执行所需的资源”。

如果调度程序 从就绪状态中选择了该进程,则就绪状态的定义是“该进程具有所有可用的资源“然后:

为什么“冲突阶段的一个方面是获取资源”是必要的?

流程究竟在什么时候获得必要的资源?

1 个答案:

答案 0 :(得分:0)

所有这些都取决于系统。首先,要了解程序,有一个调度程序。一些操作系统书籍谈论长期,中期和短期调度程序,但这种划分是系统特定的。

从一般的角度来看,一个过程只有三种状态:(1)运行; (2)准备运行和(3)未准备好运行。这个星球上的每个操作系统都会有更多的状态,我已经混淆了#3。但是,这些附加状态完全是系统特定的。

我发现这个定义令人困惑:

  

在以下情况下,进程处于就绪状态:

     

该进程具有运行所需的所有可用资源,但CPU当前没有处理此进程的指示。

进程需要运行的主要资源是CPU。因此,如果进程具有运行所需的所有资源,则它正在运行。

我还发现混淆使用术语“资源”来描述等待过程。从系统中立的角度来看,进程需要运行的唯一资源是(1)CPU和(2)执行当前指令所需的物理内存。除了这些之外,进程通常处于“未准备好运行”状态,因为它们正在等待事件发生;没有资源可供使用。

不是说有些系统可能需要运行其他资源,但这是系统特定的。

您面临的问题是您给出(或给出)的描述是对理论和实现的混淆描述。操作系统可能根本没有您正在描述的冲突阶段。另一方面,某些特定的操作系统可能会按照您描述的方式实现。

简而言之,人们似乎认为高级理论对你来说比必要的更复杂,而且你会得到一些令人困惑的操作系统细节,而不考虑某些特定的操作系统。