資源分配


當每個程序請求系統中可用的資源時,作業系統會為其執行目的分配所需的資源。分配的資源可以是硬碟驅動器、掃描器、記憶體中的任何檔案,甚至印表機。任何進入就緒或執行狀態的程式都被稱為程序。此程式需要來自一個或多個其他程序的資源才能完成其分配的任務。

在多程式設計環境中,一個程序可能同時請求多個資源,因此這些程序必須等待,直到它收到所有資源。作業系統中存在的資源分配器通常負責根據使用者請求分配資源,並在各種程序之間完成時釋放資源。資源分配必須以這樣一種方式分配,即所有程序都擁有完成其任務所需的足夠資源。

資源分配

當根據請求向程序分配資源時,在多使用者處理中會出現各種問題,這些問題在提供不可共享的資源以使其與更高的需求相平衡方面將是昂貴的。作業系統必須分配資源而不會丟失系統的完整性。

考慮一個使用者正在使用 Excel 檔案並希望使用連線到系統的印表機裝置列印一些資料的實際示例。然後,作業系統根據其可用性將印表機分配給 Excel 程序。如果印表機被系統中的另一個程序使用,則該程序將進入等待狀態。

作業系統用於將資源分配給程序的分配機制如下所示:

記憶體分配 - 當程式請求作業系統資源時,程序和輸入資料需要儲存在主記憶體中以執行其執行。記憶體管理器有責任根據可用的或空閒的空間分配資源,並在向請求的程序提供記憶體後,程式的執行開始。記憶體管理有兩種不同的方法將程序分配到系統中。在連續方法中,程序被分配到固定大小的記憶體塊中,並且具有更大的大小並存儲在具有連續地址的記憶體位置中,而在非連續方法中,程序儲存在位於不同記憶體部分的不同塊中,不需要以連續的方式儲存,這似乎是一種有效的技術,因為它僅在需要時才使用記憶體空間。

處理器

作業系統有一個程序描述符,用於指定程序從處理器獲取資源。通常存在一箇中央處理器,而在多處理器環境中,可以同時執行許多處理器來服務使用者請求。程序控制塊包含有關每個程序建立時資源狀態的資訊。這提供了每個程序的狀態,例如新、執行、等待、就緒、阻塞或終止。

檔案許可權

檔案包含使用者資訊的集合,有時稱為程式。資源與檔案一起分配,以及所有者為個人或使用者組指定的訪問許可權。讀取、寫入和執行等操作也與儲存在記憶體中的檔案一起分配。如果同時請求多個檔案,則某些程序將進入佇列,直到到達其過期時間。

記憶體備份

如前所述,資源可以由記憶體管理器分配。虛擬記憶體也可用於儲存最近使用過的檔案。在備份儲存中,無法將使用者的請求排隊,因為將為請求的程序分配空閒空間。

分配方法

分配方法 當向程序分配資源時,作業系統有兩種分配方法策略:

死鎖 - 當一個程序等待由其他程序持有的資源集並且它等待在變為未阻塞之前收到所有請求的資源時,就會發生死鎖。死鎖可能在某些條件下發生,例如持有並等待、互斥、不可搶佔和迴圈等待。

考慮一個示例,其中兩個程序 P1 和 P2 需要資源 X 和 Y。在這種情況下,P1 等待資源 Y,而 P2 持有資源 Y,而 P2 又等待資源 X,該資源必須由持有它的 P1 釋放。因此,當 P1 需要資源 Y 並等待 P2 釋放它時,並且 P2 需要 X 並等待 P2 釋放它時,此處建立了迴圈。可以透過檢測、預防、避免和鴕鳥問題等方法解決死鎖。

無死鎖 - 如果記憶體中可用的資源豐富並且可以同時為多個程序服務,則可能不會發生死鎖。

結論

資源的分配由作業系統根據分配機制進行管理和控制。它檢測將不同型別的資源分配到記憶體、處理器、外設和備份儲存的方法。分配給每個程序的資源可能會或可能不會進入死鎖狀態,並且必須實施檢測和預防機制以從發生的死鎖中恢復。

更新於:2023年7月17日

3K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.