作業系統概論 儲存管理

2021-06-13 21:00:03 字數 3797 閱讀 9873

儲存管理是對主儲存器中的使用者區域進行管理

.包括主存空間的分配與**

,主存空間的共享與保護

,位址轉換以及主存空間的擴充等工作.

單使用者儲存管理是一種最簡單的儲存管理方式

.在這種管理方式下

,作業系統占用了一部分主存空間

,其餘剩下的主存空間都分配給乙個作業使用

,即在任何時刻主儲存器中最多只有乙個作業

,比較適合於單道執行的計算機系統.

由於單使用者連續儲存管理每次只允許乙個作業裝入主儲存器

,因此不必考慮作業在主儲存器中的移動問題

.於是可採用靜態定位方式進行位址轉換

,即在作業被轉入到主儲存是一次性地完成位址轉換

.處理器在執行指令時,要檢查其絕對位址是否屬於規定範圍內的位址,如果屬於,則按此位址訪問,否則將產生「位址越界」中斷。

把主儲存器中可分配的使用者區域預先劃分成若干個連續區

,每乙個連續區稱為乙個分割槽.

記憶體劃分成若干固定大小的分割槽,每個分割槽中最多只能裝入乙個作業。當作業申請記憶體時,系統按一定的演算法為其選擇乙個適當的分割槽,並裝入記憶體執行。由於分割槽大小是事先固定的,因而可容納作業的大小受到限制,而且當使用者作業的位址空間小於分割槽的儲存空間時,造成儲存空間浪費。

系統設定一張「分割槽分配表」來描述各分割槽的使用情況,登記的內容應包括:分割槽號、起始位址、長度和占用標誌。其中占用標誌為「0」時,表示目前該分割槽空閒;否則登記占用作業名(或作業號)。有了「分割槽分配表」,空間分配與**工作是比較簡單的。

固定分割槽管理可以採用靜態重定位方式進行位址對映。

為了實現儲存保護,處理器設定了一對「下限暫存器」和「上限暫存器」。當乙個已經被裝入主儲存器的作業能夠得到處理器執行時,程序排程應記錄當前執行作業所在的分割槽號,且把該分割槽的下限位址和上限位址分別送入下限暫存器和上限暫存器中。處理器執行該作業的指令時必須核對其要訪問的絕對位址是否越界。

為避免小作業被分配到大的分割槽中造成空間的浪費,可採用多作業佇列的方法。即系統按分割槽數設定多個作業佇列,將作業按其大小排到不同的佇列中,乙個佇列對應某乙個分割槽,以提高記憶體利用率。

此管理方式不是預先把主儲存器中的使用者區域劃成分區

,而是在作業要求裝入主儲存器時

,根據作業需要的主存空間大小和當時主存空間使用情況來決定是否為作業分配乙個分割槽

.因此分割槽不是預先固定的

,而是按作業的實際需要來劃分的

,分割槽的個數也不是預先確定的

,而是由裝入的作業數決定的.

這種處理方式使記憶體分配有較大的靈活性,也提高了記憶體利用率。但是隨著對記憶體不斷地分配、釋放操作會引起儲存碎片的產生。

採用可變分割槽儲存管理,系統中的分割槽個數與分割槽的大小都在不斷地變化,系統利用「空閒區表」來管理記憶體中的空閒分割槽,其中登記空閒區的起始位址、長度和狀態。當有作業要進入記憶體時,在「空閒區表」中查詢狀態為「未分配」且長度大於或等於作業的空閒分割槽分配給作業,剩餘的部分仍為空閒區

,當空閒區不能滿足需求時

,作業暫時不能裝入;當乙個作業執行完成時,應將該作業占用的空間作為空閒區歸還給系統。

可變分割槽管理方式常用的主存分配演算法有

:最先適應分配演算法

,最優適應分配演算法

,最壞適應分配演算法.

可變分割槽儲存管理一般採用動態重定位的方式,為實現位址重定位和儲存保護,系統設定相應的硬體:基址/限長暫存器(或上界/下界暫存器)、加法器、比較線路等。

基址暫存器用來存放程式在記憶體的起始位址,限長暫存器用來存放程式的長度。處理機在執行時,用程式中的相對位址加上基址暫存器中的基位址,形成乙個絕對位址,並將相對位址與限長暫存器進行計算比較,檢查是否發生位址越界。

所謂碎片是指記憶體中出現的一些零散的小空閒區域。由於碎片都很小,無法再利用。如果記憶體中碎片很多,將會造成嚴重的儲存資源浪費。解決碎片的方法是移動所有的占用區域,使所有的空閒區合併成一片連續區域,這一技術稱為移動技術(緊湊技術)。移動技術除了可解決碎片問題還使記憶體中的作業進行擴充。顯然,移動帶來系統開銷加大,並且當乙個作業如果正與外設進行

i/o時,該作業是無法移動的。

前面介紹的幾種儲存管理方式

,要求作業的邏輯位址空間連續地存放在主儲存器的某個區域中

.當主儲存區屋足夠大的區域時

,則作業無法裝入

,或必須移動某些作業後才能裝入.

頁式儲存管理把作業的連續邏輯位址空間分散到幾個不連續的主存區域

,既可充分利用主存空間又可減少移動所花費的開銷

.不僅如此

,還可採用虛擬儲存管理技術

,實現在較小的主存空間裡執行較大的作業.

頁式儲存管理是把主儲存器分成大小相等的許多區

,每個區稱為一塊

.與此對應

,編制程式的邏輯位址也分成頁

,頁的大小與塊的大小相等.

邏輯位址:

系統可用一張「位示圖」來登記記憶體中各塊的分配情

況,儲存分配時以頁面(塊)為單位,並按程式的頁數多少進行分配。相鄰的頁面在記憶體中不一定相鄰,即分配給程式的記憶體塊之間不一定連續。

對程式位址空間的分頁是系統自動進行的,即對使用者是透明的。由於頁面尺寸為

2的整數次冪,故相對位址中的高位部分即為頁號,低位部分為頁內位址。

系統為每個程序建立一張頁表,用於記錄程序邏輯頁面與記憶體物理頁面之間的對應關係。位址空間有多少頁,該頁表裡就登記多少行,且按邏輯頁的順序排列,形如:

頁式儲存管理採用動態重定位,即在程式的執行過程中完成位址轉換。處理器每執行一條指令,就將指令中的邏輯位址(

p,d)取來從中得到邏輯頁號

(p),硬體機構按此頁號查頁表,得到記憶體的塊號

b』,便形成絕對位址(b』

,d),處理器即按此位址訪問主存。

當多個不同程序中需要有相同頁面資訊時,可以在主存中只保留乙個副本,只要讓這些程序各自的有關項中指向記憶體同一塊號即可。同時在頁表中設定相應的「訪問許可權」,對不同程序的訪問許可權進行各種必要的限制。

由來:一方面:程式的有些部分是互斥的,即在程式的一次執行中,執行了這部分程式就不會去執行那部分程式

另一方面:程式的執行往往有侷限性,某一時刻可能會迴圈執行某些指令或多次地訪問某一部分的資料

問題:

當把有關作業的全部資訊都裝入主儲存器後,作業執行時實際上不是同時使用這些資訊,甚至於有些部分在作業執行的整個過程中都不會被使用到。

解決:虛擬儲存器

不把作業的全部資訊同時轉入主儲存器中,而是將其中一部分裝入,另一部分存放在磁碟上,作業執行過程中要用到那些不在主儲存器中的資訊時,再把它們裝入主儲存器中。

頁面排程

1,先進先出演算法(

first-in-first-out

)注:已經存在的頁面無需再次調且指標不需要移動

2,最近最久未使用演算法

(least recently used)

--規定隊首總是為最久未使用的頁,而隊尾總是最近才被訪問的頁。每訪問一頁時就要對佇列調整一次,把當前訪問的頁調到隊尾。每當發生缺頁中斷時總是選擇隊首所指示的頁面調出

3,最近最不經常使用演算法

(least frequently used)

作業系統概論

作業系統 operation system,縮寫為os 是管理計算機系統資源 控制程式執行 改善人機介面和應用軟體提供支援的一種系統軟體。定義 把乙個程式在乙個資料集上的一次執行稱為乙個程序 process 程序是動態的。在現代作業系統中,把使用者的乙個計算問題或乙個應用問題作為乙個程序,把該程序中...

作業系統概論

作業系統的三個基本型別是 批處理作業系統 分時作業系統和實時作業系統。批處理作業系統的主要缺點是 缺少互動性允許多個使用者以互動方式使用計算機的作業系統稱為 允許多個使用者將多個作業提交給計算機集中處理的作業系統稱為 計算機系統能及時處理過程 控制資料並做出響應的作業系統稱為 分時作業系統 批處理作...

作業系統概論

計算機系統是能夠按照人的要求接收和儲存資訊,能對資訊進行處理並提供所需結果,其結果 輸出資訊 取決於所接受的資訊 輸入資訊 及相應的處理方法。1.學習過程 原先在學習計算機四級的開始中,邊學習過一部分相關的作業系統的知識,這次也算是一步簡單的複習吧。在本次學習過程中,了解了先前沒有看過的細節的知識部...