分配系統資源

分配系統資源

在一個計算機系統中,通常都含有各種各樣的硬體和軟體資源。歸納起來可將資源分為四類:處理器、存儲器、I/O 設備以及信息(數據和程式) 。分配系統資源是指對計算機軟體資源和硬體資源進行分配。分配系統資源要做到使系統資源得到充分利用和不使系統出現死鎖。

簡介

在計算機科學中,系統資源(system resource)意指是一個計算機系統中,限制其運算能力的任何實體或是虛擬的組成元件。任何連結到計算機系統中的裝置,都是一個資源,例如鍵盤、螢幕等。電腦系統內部的任何元件都是資源,如CPU,RAM。計算機系統中的軟體虛擬元件,包括檔案,網路連線與記憶體區塊等,都是一種資源。分配系統資源是指對計算機軟體資源和硬體資源進行分配,使系統資源得到充分利用和不使系統出現死鎖。分配系統資源可以分為以下四類:處理機分配、記憶體分配、I/O設備分配。

處理機分配

處理機分配也可以稱之為處理機調度,在多道程式設計系統中,記憶體中有多道程式運行,他們相互爭奪處理機這一重要的資源。處理機調度就是從就緒佇列中,按照一定的算法選擇一個進程並將處理機分配給它運行,以實現進程並發地執行。在傳統的作業系統中,包括作業調度和進程調度兩步。

(1) 作業調度。作業調度的基本任務是從後備佇列中按照一定的算法,選擇出若干個作業,為它們分配運行所需的資源(首先是分配記憶體)。在將它們調入記憶體後,便分別為它們建立進程,使它們都成為可能獲得處理機的就緒進程,並按照一定的算法將它們插入就緒佇列。

(2) 進程調度。 進程調度的任務是從進程的就緒佇列中, 按照一定的算法選出一個進程,把處理機分配給它,並為它設定運行現場,使進程投入執行。值得提出的是,在多執行緒 OS中,通常是把執行緒作為獨立運行和分配處理機的基本單位,為此,須把就緒執行緒排成一個佇列,每次調度時,是從就緒執行緒佇列中選出一個執行緒,把處理機分配給它。

記憶體分配

記憶體分配的主要任務是為每道程式分配記憶體空間,使它們“各得其所” ;提高存儲器的利用率,以減少不可用的記憶體空間;允許正在運行的程式申請附加的記憶體空間,以適應程式和數據動態增長的需要。

OS 在實現記憶體分配時,可採取靜態和動態兩種方式。在靜態分配方式中,每個作業的記憶體空間是在作業裝入時確定的;在作業裝入後的整個運行期間,不允許該作業再申請新的記憶體空間,也不允許作業在記憶體中“移動” 。在動態分配方式中,每個作業所要求的基本記憶體空間也是在裝入時確定的,但允許作業在運行過程中繼續申請新的附加記憶體空間,以適應程式和數據的動態增長,也允許作業在記憶體中“移動” 。為了實現記憶體分配,在記憶體分配的機制中應具有這樣的結構和功能:

(1) 記憶體分配數據結構。該結構用於記錄記憶體空間的使用情況,作為記憶體分配的依據;

(2) 記憶體分配功能。系統按照一定的記憶體分配算法為用戶程式分配記憶體空間;

(3) 記憶體回收功能。系統對於用戶不再需要的記憶體,通過用戶的釋放請求去完成系統的回收功能。

設備分配

設備分配的基本任務是根據用戶進程的 I/O 請求、 系統的現有資源情況以及按照某種設備的分配策略,為之分配其所需的設備。如果在 I/O 設備和 CPU 之間還存在著設備控制器和 I/O 通道時,還須為分配出去的設備分配相應的控制器和通道。

為了實現設備分配,系統中應設定設備控制表、控制器控制表等數據結構,用於記錄設備及控制器的標識符和狀態。根據這些表格可以了解指定設備當前是否可用,是否忙碌,以供進行設備分配時參考。在進行設備分配時,應針對不同的設備類型而採用不同的設備分配方式。 對於獨占設備(臨界資源)的分配, 還應考慮到該設備被分配出去後系統是否安全。在設備使用完後,應立即由系統回收。

相關詞條

熱門詞條

聯絡我們