複製鏈接
請複製以下鏈接發送給好友

資源管理程序

鎖定
在一個計算機系統中,通常都含有各種各樣的硬件和軟件資源。歸納起來可將資源分為四類:處理器、存儲器、I/O設備以及信息(數據和程序)。資源管理程序是指對計算機中各種資源進行管理的程序。當一個計算機系統同時供多個用户使用時,用户對系統中共享資源的需求(包括數量和時間)可能發生衝突,為了管理好這些共享資源(包括硬件和信息)的使用,必須記錄下各種資源的使用情況,對使用資源的請求進行授權,協調諸用户對共享資源的使用,避免發生衝突,並計算使用資源的費用等。
中文名
資源管理程序
外文名
Resource Management Procedure
學    科
計算機
定    義
對計算機中各種資源進行管理
目    的
更好管理硬件和軟件資源
領    域
操作系統

資源管理程序簡介

資源管理程序即對計算機中各種資源進行管理的程序,計算機中一般可將資源分為四類:處理器、存儲器、I/O設備以及信息(數據和程序)。因此資源管理程序可以分為處理機管理、存儲器管理、設備管理、文件管理這四個功能模塊。

資源管理程序處理機管理

在傳統的多道程序系統中,處理機的分配和運行都是以進程為基本單位,因而對處理機的管理可歸結為對進程的管理;在引入了線程的 OS 中,也包含對線程的管理。處理機管理的主要功能是創建和撤消進程(線程),對諸進程(線程)的運行進行協調,實現進程(線程)之間的信息交換,以及按照一定的算法把處理機分配給進程(線程)。

資源管理程序存儲器管理

存儲器管理的主要任務是為多道程序的運行提供良好的環境,方便用户使用存儲器,提高存儲器的利用率以及能從邏輯上擴充內存。為此,存儲器管理應具有內存分配、內存保護、地址映射和內存擴充等功能。
內存分配
內存分配的主要任務是為每道程序分配內存空間,使它們“各得其所” ;提高存儲器的利用率,以減少不可用的內存空間;允許正在運行的程序申請附加的內存空間,以適應程序和數據動態增長的需要。
OS 在實現內存分配時,可採取靜態和動態兩種方式。在靜態分配方式中,每個作業的內存空間是在作業裝入時確定的;在作業裝入後的整個運行期間,不允許該作業再申請新的內存空間,也不允許作業在內存中“移動” 。在動態分配方式中,每個作業所要求的基本內存空間也是在裝入時確定的,但允許作業在運行過程中繼續申請新的附加內存空間,以適應程序和數據的動態增長,也允許作業在內存中“移動” 。
為了實現內存分配,在內存分配的機制中應具有這樣的結構和功能:
(1) 內存分配數據結構。該結構用於記錄內存空間的使用情況,作為內存分配的依據;
(2) 內存分配功能。系統按照一定的內存分配算法為用户程序分配內存空間;
(3) 內存回收功能。系統對於用户不再需要的內存,通過用户的釋放請求去完成系統的回收功能。 [1] 
內存保護
內存保護的主要任務是確保每道用户程序都只在自己的內存空間內運行,彼此互不干擾;絕不允許用户程序訪問操作系統的程序和數據;也不允許用户程序轉移到非共享的其它用户程序中去執行。
為了確保每道程序都只在自己的內存區中運行,必須設置內存保護機制。一種比較簡單的內存保護機制是設置兩個界限寄存器,分別用於存放正在執行程序的上界和下界。系統須對每條指令所要訪問的地址進行檢查,如果發生越界,便發出越界中斷請求,以停止該程序的執行。如果這種檢查完全用軟件實現,則每執行一條指令,便須增加若干條指令去進行越界檢查,這將顯著降低程序的運行速度。因此,越界檢查都由硬件實現。當然,對發生越界後的處理,還須與軟件配合來完成。
地址映射
一個應用程序(源程序)經編譯後,通常會形成若干個目標程序;這些目標程序再經過鏈接便形成了可裝入程序。這些程序的地址都是從“0”開始的,程序中的其它地址都是相對於起始地址計算的。由這些地址所形成的地址範圍稱為“地址空間” ,其中的地址稱為“邏輯地址” 或 “相對地址” 。 此外, 由內存中的一系列單元所限定的地址範圍稱為 “內存空間” ,其中的地址稱為“物理地址” 。
在多道程序環境下,每道程序不可能都從“0”地址開始裝入(內存),這就致使地址空間內的邏輯地址和內存空間中的物理地址不相一致。為使程序能正確運行,存儲器管理必須提供地址映射功能,以將地址空間中的邏輯地址轉換為內存空間中與之對應的物理地址。該功能應在硬件的支持下完成。
內存擴充
存儲器管理中的內存擴充任務並非是去擴大物理內存的容量,而是藉助於虛擬存儲技術,從邏輯上去擴充內存容量,使用户所感覺到的內存容量比實際內存容量大得多,以便讓更多的用户程序併發運行。這樣,既滿足了用户的需要,又改善了系統的性能。為此,只需增加少量的硬件。為了能在邏輯上擴充內存,系統必須具有內存擴充機制,用於實現下述各功能:
(1) 請求調入功能。 允許在裝入一部分用户程序和數據的情況下, 便能啓動該程序運行。在程序運行過程中,若發現要繼續運行時所需的程序和數據尚未裝入內存, 可向 OS 發出請求,由 OS 從磁盤中將所需部分調入內存,以便繼續運行。
(2) 置換功能。若發現在內存中已無足夠的空間來裝入需要調入的程序和數據時,系統應能將內存中的一部分暫時不用的程序和數據調至盤上,以騰出內存空間,然後再將所需調入的部分裝入內存。

資源管理程序設備管理

設備管理用於管理計算機系統中所有的外圍設備,而設備管理的主要任務是:完成用户進程提出的 I/O 請求;為用户進程分配其所需的 I/O 設備;提高 CPU 和 I/O 設備的利用率;提高 I/O 速度;方便用户使用 I/O 設備。為實現上述任務,設備管理應具有緩衝管理、設備分配和設備處理以及虛擬設備等功能。

資源管理程序緩衝管理

CPU 運行的高速性和 I/O 低速性間的矛盾自計算機誕生時起便已存在了。而隨着 CPU速度迅速提高,使得此矛盾更為突出,嚴重降低了 CPU 的利用率。如果在 I/O 設備和 CPU之間引入緩衝,則可有效地緩和 CPU 與 I/O 設備速度不匹配的矛盾,提高 CPU 的利用率,進而提高系統吞吐量。因此,在現代計算機系統中,都無一例外地在內存中設置了緩衝區,而且還可通過增加緩衝區容量的方法來改善系統的性能。
對於不同的系統,可以採用不同的緩衝區機制。最常見的緩衝區機制有單緩衝機制、能實現雙向同時傳送數據的雙緩衝機制,以及能供多個設備同時使用的公用緩衝池機制。上述這些緩衝區都將由 OS 中的緩衝管理機制將它們管理起來。

資源管理程序設備分配

設備分配的基本任務是根據用户進程的 I/O 請求、 系統的現有資源情況以及按照某種設備的分配策略,為之分配其所需的設備。如果在 I/O 設備和 CPU 之間還存在着設備控制器和 I/O 通道時,還須為分配出去的設備分配相應的控制器和通道。
為了實現設備分配,系統中應設置設備控制表、控制器控制表等數據結構,用於記錄設備及控制器的標識符和狀態。根據這些表格可以瞭解指定設備當前是否可用,是否忙碌,以供進行設備分配時參考。在進行設備分配時,應針對不同的設備類型而採用不同的設備分配方式。 對於獨佔設備(臨界資源)的分配, 還應考慮到該設備被分配出去後系統是否安全。在設備使用完後,應立即由系統回收。

資源管理程序設備處理

設備處理程序又稱為設備驅動程序。其基本任務是用於實現 CPU 和設備控制器之間的通信,即由 CPU 向設備控制器發出 I/O 命令,要求它完成指定的 I/O 操作;反之,由 CPU接收從控制器發來的中斷請求,並給予迅速的響應和相應的處理。
處理過程是:設備處理程序首先檢查 I/O 請求的合法性,瞭解設備狀態是否是空閒的,瞭解有關的傳遞參數及設置設備的工作方式。 然後, 便向設備控制器發出 I/O 命令, 啓動 I/O設備去完成指定的 I/O 操作。 設備驅動程序還應能及時響應由控制器發來的中斷請求, 並根據該中斷請求的類型,調用相應的中斷處理程序進行處理。對於設置了通道的計算機系統,設備處理程序還應能根據用户的 I/O 請求,自動地構成通道程序。

資源管理程序文件管理功能

在現代計算機管理中,總是把程序和數據以文件的形式存儲在磁盤和磁帶上,供所有的或指定的用户使用。為此,在操作系統中必須配置文件管理機構。文件管理的主要任務是對用户文件和系統文件進行管理,以方便用户使用,並保證文件的安全性。為此,文件管理應具有對文件存儲空間的管理、目錄管理、文件的讀/寫管理,以及文件的共享與保護等功能。
文件存儲空間的管理
為了方便用户的使用,對於一些當前需要使用的系統文件和用户文件,都必須放在可隨機存取的磁盤上。在多用户環境下,若由用户自己對文件的存儲進行管理,不僅非常困難,而且也必然是十分低效的。因而,需要由文件系統對諸多文件及文件的存儲空間實施統一的管理。其主要任務是為每個文件分配必要的外存空間,提高外存的利用率,並能有助於提高文件系統的存、取速度。
為此,系統應設置相應的數據結構,用於記錄文件存儲空間的使用情況,以供分配存儲空間時參考;系統還應具有對存儲空間進行分配和回收的功能。為了提高存儲空間的利用率,對存儲空間的分配,通常是採用離散分配方式,以減少外存零頭,並以盤塊為基本分配單位。盤塊的大小通常為 1~8 KB。
目錄管理
為了使用户能方便地在外存上找到自己所需的文件,通常由系統為每個文件建立一個目錄項。目錄項包括文件名、文件屬性、文件在磁盤上的物理位置等。由若干個目錄項又可構成一個目錄文件。目錄管理的主要任務是為每個文件建立其目錄項,並對眾多的目錄項加以有效的組織,以實現方便的按名存取,即用户只須提供文件名便可對該文件進行存取。其次,目錄管理還應能實現文件共享,這樣,只須在外存上保留一份該共享文件的副本。此外,還應能提供快速的目錄查詢手段,以提高對文件的檢索速度。
文件的讀/寫管理和保護
(1) 文件的讀/寫管理。該功能是根據用户的請求,從外存中讀取數據,或將數據寫入外存。在進行文件讀(寫)時,系統先根據用户給出的文件名去檢索文件目錄,從中獲得文件在外存中的位置。然後,利用文件讀(寫)指針,對文件進行讀(寫)。一旦讀(寫)完成,便修改讀(寫)指針,為下一次讀(寫)做好準備。由於讀和寫操作不會同時進行,故可合用一個讀/寫指針。
(2) 文件保護。為了防止系統中的文件被非法竊取和破壞,在文件系統中必須提供有效的存取控制功能,以實現下述目標:
① 防止未經核准的用户存取文件;
② 防止冒名頂替存取文件;
③ 防止以不正確的方式使用文件。
參考資料
  • 1.    湯子瀛.計算機操作系統(第3版):西安電子科技大學出版社,2010