2016-12-06 32 views
0

我一直在研究過程調度作爲我的研究的一部分。在這樣做的過程中,我一直在提及以下信息:什麼時候進程獲得必要的資源?

根據Abraham Silberschatz,Greg Gagne和Peter Baer Galvin在; "Operating System Concepts, Ninth Edition ", Chapter 3;

一個過程處於就緒狀態時:

該工藝具有所有可用的,它需要運行的資源,但CPU是不是目前正在對這一過程的說明。

不過我也已經從講座通知指出:

當短期調度器選擇下一個工序[從就緒狀態和之前使用CPU]時,調度程序例程給它控制着CPU。在流程實際上可以派發之前,它必須經歷一個衝突階段。 (到目前爲止很好,但是它繼續......)

「這個衝突階段的一個方面是獲取新流程執行所需的資源」。

如果從就緒狀態由就緒狀態調度程序例程定義選擇的過程是,「該工藝具有所有可用的,它需要運行的資源」,那麼:

爲什麼「衝突階段的一個方面是獲取資源」是必要的?

什麼時候某個過程能夠獲得必要的資源?

回答

0

所有這些都依賴於系統。首先,要了解程序,有一個SCHEDULER。一些操作系統的書籍討論了長期,中期和短期調度,但這個部門是系統特定的。

從一般的角度來看,一個過程只有三種狀態:(1)跑步; (2)準備好運行和(3)沒有準備好運行。這個星球上的每個操作系統將會有更多的狀態,我已經將它們混合到了#3。但是,這些附加狀態完全是系統特定的。

我覺得這個定義混亂:

進程處於就緒狀態時:

該工藝具有所有可用的,它需要運行的資源,但CPU是不是目前的工作這個過程的說明。

進程需要運行的主要資源是CPU。因此,如果一個進程擁有所有需要運行的資源,它就會運行。

我還發現混淆了術語「資源」用於描述等待過程。從系統中立的角度來看,進程需要運行的唯一資源是(1)執行當前指令所需的CPU和(2)物理內存。除了這些之外,進程通常處於「未準備好運行」狀態,因爲它們正在等待事件發生;沒有資源可用。

這並不是說有些系統可能有其他資源需要運行,但這是系統特定的。

您面臨的問題是,您給予(或正在給予)的描述是對理論和實現的混雜描述。操作系統可能沒有描述的所有衝突階段。另一方面,某些特定的操作系統可能會按照您所描述的方式執行。

簡而言之,人們似乎正在使高層理論對您而言比所需要的更爲複雜,而且您正在得到令人困惑的操作系統細節,而不考慮某些特定的操作系統。

相關問題