簡介,處理機管理,存儲器管理,記憶體分配,記憶體保護,地址映射,記憶體擴充,設備管理,緩衝管理,設備分配,設備處理,檔案管理功能,檔案存儲空間的管理,目錄管理,檔案的讀/寫管理和保護,
簡介
資源管理程式即對計算機中各種資源進行管理的程式,計算機中一般可將資源分為四類:
處理器、存儲器、
I/O設備以及信息(數據和程式)。因此資源管理程式可以分為處理機管理、存儲器管理、設備管理、檔案管理這四個功能模組。
處理機管理
在傳統的
多道程式系統中,處理機的分配和運行都是以進程為基本單位,因而對處理機的管理可歸結為對進程的管理;在引入了執行緒的 OS 中,也包含對執行緒的管理。處理機管理的主要功能是創建和撤消進程(執行緒),對諸進程(執行緒)的運行進行協調,實現進程(執行緒)之間的信息交換,以及按照一定的算法把處理機分配給進程(執行緒)。
存儲器管理
存儲器管理的主要任務是為多道程式的運行提供良好的環境,方便用戶使用存儲器,提高存儲器的利用率以及能從邏輯上擴充記憶體。為此,存儲器管理應具有記憶體分配、記憶體保護、地址映射和記憶體擴充等功能。
記憶體分配
記憶體分配的主要任務是為每道程式分配記憶體空間,使它們“各得其所” ;提高存儲器的利用率,以減少不可用的記憶體空間;允許正在運行的程式申請附加的記憶體空間,以適應程式和數據動態增長的需要。
OS 在實現記憶體分配時,可採取靜態和動態兩種方式。在靜態分配方式中,每個作業的記憶體空間是在作業裝入時確定的;在作業裝入後的整個運行期間,不允許該作業再申請新的記憶體空間,也不允許作業在記憶體中“移動” 。在動態分配方式中,每個作業所要求的基本記憶體空間也是在裝入時確定的,但允許作業在運行過程中繼續申請新的附加記憶體空間,以適應程式和數據的動態增長,也允許作業在記憶體中“移動” 。
為了實現記憶體分配,在記憶體分配的機制中應具有這樣的結構和功能:
(1) 記憶體分配數據結構。該結構用於記錄記憶體空間的使用情況,作為記憶體分配的依據;
(2) 記憶體分配功能。系統按照一定的記憶體分配算法為用戶程式分配記憶體空間;
(3) 記憶體回收功能。系統對於用戶不再需要的記憶體,通過用戶的釋放請求去完成系統的回收功能。
記憶體保護
記憶體保護的主要任務是確保每道用戶程式都只在自己的記憶體空間內運行,彼此互不干擾;絕不允許用戶程式訪問作業系統的程式和數據;也不允許用戶程式轉移到非共享的其它用戶程式中去執行。
為了確保每道程式都只在自己的記憶體區中運行,必須設定記憶體保護機制。一種比較簡單的記憶體保護機制是設定兩個界限暫存器,分別用於存放正在執行程式的上界和下界。系統須對每條指令所要訪問的地址進行檢查,如果發生越界,便發出越界中斷請求,以停止該程式的執行。如果這種檢查完全用軟體實現,則每執行一條指令,便須增加若干條指令去進行越界檢查,這將顯著降低程式的運行速度。因此,越界檢查都由硬體實現。當然,對發生越界後的處理,還須與軟體配合來完成。
地址映射
一個應用程式(源程式)經編譯後,通常會形成若干個目標程式;這些目標程式再經過連結便形成了可裝入程式。這些程式的地址都是從“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) 檔案保護。為了防止系統中的檔案被非法竊取和破壞,在檔案系統中必須提供有效的存取控制功能,以實現下述目標:
① 防止未經核准的用戶存取檔案;
② 防止冒名頂替存取檔案;