三記憶體管理 第3章講義

2022-09-15 14:39:04 字數 4808 閱讀 4795

三、記憶體管理

一、考試大綱

(一)記憶體管理基礎

1.記憶體管理概念;程式裝入與鏈結;邏輯位址與實體地址空間;記憶體保護。2.交換與覆蓋 3.連續分配管理方式

單一連續分配;分割槽分配。 4.非連續分配管理方式

分頁管理方式;分段管理方式;段頁式管理方式

(二)虛擬記憶體管理 1.虛擬記憶體基本概念2.請求分頁管理方式3.頁面置換演算法

最佳置換演算法(opt);先進先出置換演算法(fifo);最近最少使用置換演算法(lru);時鐘置換演算法4.頁面分配策略5.抖動抖動現象;工作集

6.請求分段管理方式 7.請求段頁式管理方式

二、知識點歸納

(一)記憶體管理基礎

1.記憶體管理概念

記憶體是指處理器可以直接訪問指令和資料的儲存器,記憶體和處理器都是計算機系統的一種重要資源。在多道程式設計技術出現以後,對儲存管理提出了更高的要求。記憶體管理的主要任務是為多道程式的執行提供良好的環境,方便使用者使用儲存器,提高儲存器的利用率以及從邏輯上擴充儲存器。

在作業系統中,將乙個使用者的源程式變為乙個可在記憶體中執行的程序,通常要經過以下幾步:

1)編譯。由編譯程式將使用者源**編譯成若干個目標模組;

2)鏈結。由鏈結程式將編譯後形成的一組目標模組,以及它們所需要的庫函式鏈結在一起,形成乙個完整的裝入模組;

3)裝入。由裝入程式將裝入模組裝入記憶體。

(1)程式的鏈結

源程式經過編譯後,可得到一組目標模組,這時需要利用系統中鏈結程式將這組目標模組鏈結在一起,形成裝入模組。根據鏈結時間的不同,可以分成三種鏈結方式,即靜態鏈結、裝入時的動態鏈結和執行時的動態鏈結。

1)靜態鏈結。在程式執行前,先將各目標模組及它們所需的庫函式,鏈結成乙個完整的裝配模組,以後不再拆開。靜態鏈結方式需要解決兩個問題:

外部呼叫符號到相對位址的轉換;相對位址到絕對位址的的轉換;

2)裝入時的動態鏈結。在將目標模組裝入記憶體時,採用邊裝入邊鏈結的方式。該方式具有以下優點:便於目標模組的修改和更新;便於實現對目標模組的共享。

3)執行時的動態鏈結。事先不對各個模組進行鏈結,而是在程式執行中當需要該模組時,再將該模組調入記憶體,並進行鏈結。採用這種方式,凡在執行過程中沒有用到的目標模組,都不會被調入記憶體,這樣不僅可加快程式的裝入過程,而且可以節省大量的記憶體空間。

(2)程式的裝入

程式的裝入方式有三種,它們分別是絕對裝入方式、可重定位的裝入方式以及動態裝入方式,現介紹如下。

1)絕對裝入方式

在編譯時,如果知道程式將駐留在記憶體的什麼位置,那麼編譯程式將產生包含有記憶體絕對位址(也稱實際位址)的目標**。這樣裝入程式就會按照目標**中的位址,將程式和資料裝入到記憶體的實際位置。程式中使用的絕對位址,既可以在編譯或彙編時給出,也可由程式設計師直接賦予。

但因為需要程式設計師熟悉當前記憶體的使用情況,所以要求較高。

2)可重定位的裝入方式

在多道程式的環境下,所得到的目標模組的起始位址通常是從0開始的,程式中的其它位址都是相對於起始位址進行計算的。此時應採用重定位裝入方式,根據記憶體的當前情況,將裝入模組裝入到記憶體的適當位置。由於裝入模組中的所有位址與實際裝入記憶體的實體地址不同,所以需要進行位址變換(在原先相對位址的基礎上加上記憶體裝入位置的位址)。

如下圖所示

通常,把在裝入程式時對目標模組中的指令和資料的位址變換過程稱為重定位。又因為位址變換是在裝入時一次完成的,所以稱為靜態重定位。

3)動態執行時的裝入方式

動態執行時的裝入程式,在把裝入模組裝入記憶體後,並不立即將其中的相對位址轉換為絕對位址,而是把位址轉換推遲到程式執行前再進行。因此,裝入記憶體後的所有位址都仍是相對位址。

(3)邏輯位址與實體地址空間;

由編譯程式所產生的所有目標模組中,使用的都是相對位址,即其起始位址為0,每個模組中的位址都是相對於起始位址計算的。而實體地址是指記憶體中的實際的位址空間。

(4)記憶體保護

保證進入記憶體的各道作業都在自己的儲存空間內執行,互不干擾。既要防止一道作業由於發生錯誤而破壞其他作業,也要防土破壞系統程式。這種保護一般由硬體和軟體配合完成

2.交換與覆蓋

交換技術就是把暫時不用的某個程式及資料部分(或全部)從記憶體移到外存中去,以便騰出必要的記憶體空間,或把指定的程式或資料從外存讀到相應的記憶體中,並將控制權交給它,使其在系統上執行的一種記憶體擴充技術。

覆蓋技術,就是把乙個大的程式劃分為一系列覆蓋,每個覆蓋就是乙個相對獨立的程式單位,把程式執行時並不要求同時裝入記憶體的覆蓋組成一組,稱為覆蓋段,這個覆蓋段分配到同乙個儲存區域,這個儲存區域稱為覆蓋區,它與覆蓋段一一對應。

交換技術不要求程式設計師給出程式段之間的覆蓋結構,而且交換主要是在程序或作業之間進行;而覆蓋則主要在同乙個作業或程序中進行。另外,覆蓋只能覆蓋與覆蓋程式段無關的程式段。

3.連續分配管理方式

連續分配方式,是指為使用者程式分配乙個連續的記憶體空間。可分為單一連續分配方式和分割槽分配方式兩大類。

(1)單一連續分配

這是一種最簡單的儲存管理方式,只能用於單使用者、單任務的作業系統。採用該方式時,可把記憶體分為系統區和使用者區兩部分,系統區位於記憶體的低址部分,供os使用;使用者區是除系統區以外的全部記憶體空間,是供使用者程式使用的部分。

單一連續分配方式的主要特點是管理簡單,只需要很少的軟體和硬仍支援。且便於使用者了解和使用。但採用這種儲存分配方式,記憶體中只能裝入一道作業執行,從而導致各類資源的利用率都不高。

(2)分割槽分配

分割槽式分配是能滿足多道程式設計需要的一種最簡單的儲存管理技術。通常,按照分割槽的劃分方式,它又可分為固定分割槽分配、動態分割槽分配以及可重定位的分割槽分配等三種方式。

1)固定分割槽分配

固定式分割槽法是一種最簡單的可執行多道程式的儲存管理方式。它將使用者的記憶體空間劃分為若干個固定大小的區域,在每個分割槽中只裝入一道作業,這樣,使用者空間被劃分為幾個分割槽,便允許有幾道作業併發執行。當有乙個空閒分割槽時,便可以再從外存的後備作業佇列中選擇—個適當大小的作業裝入該分割槽,當該作業結束時,又可再從後備作業佇列中找出另一作業調入該分割槽。

可用下述兩種方法將記憶體的使用者空間劃分為若干個固定大小的分割槽:

a)分割槽大小相等,就是使所有的記憶體分割槽大小相等。其缺點是缺乏靈活性,即當程式太小時,會造成記憶體空間的浪費;當程式太大時,乙個分割槽又不足以裝入該程式,致使該程式無法執行。儘管如此,這種劃分方式仍被用於利用一台計算機去控制多個相同物件的場合,因為這些物件所需的記憶體空間是大小相等的。

例如,爐溫群控系統,就是利用一台計算機去控制多台相同的冶煉爐。

b)分割槽大小不等。為了克服分割槽大小相等而缺乏靈活性的這個缺點,把記憶體區劃分成含有多個較小的分割槽、適量的中等分割槽及少量的大分割槽。這樣,便可根據程式的大小為之分配適當的分割槽。

2)動態分割槽分配

動態分割槽分配是在作業裝入和處理過程中建立的分割槽,要求分割槽的容量能正好適應作業的大小。在作業進入系統前,根據作業的大小來申請所需儲存容量,然後由系統實施分配。

為了實現分割槽分配,系統中必須設定相應的資料結構,常用的有兩種形式:空閒分割槽表和空閒分割槽鏈。

為把乙個新作業裝入記憶體,須按照一定的分配演算法,從空閒分割槽表或空閒分割槽鏈中選出一分割槽分配給該作業。目前常用的有以下三種分配演算法。

a)首次適應演算法。以空閒分割槽鏈作為資料結構,在分配記憶體時,從鏈首開始順序查詢,直至找到乙個大小能滿足要求的空閒分割槽為止,從該分割槽中劃出一塊記憶體空間分配給請求者,餘下的空閒分割槽仍留在空閒鏈中。如果從鏈首直至鏈尾都不能找到滿足要求的分割槽,則此次記憶體分配失敗。

b)迴圈首次適應演算法。該演算法是由首次適應演算法演變而成的。在為程序分配記憶體空間時,不再是每次都從鏈首開始查詢,而是從上次找到的空閒分割槽的下乙個空閒分割槽開始查詢。

這種分配方式的優點是,使得記憶體中的空閒分割槽分布的更均勻,減少查詢空閒分割槽的開銷。

c)最佳適應演算法。該演算法要求將所有的空閒分割槽按其容量從小到大的順序形成乙個空閒分割槽鏈,這樣,從鏈首開始查詢時,第一次找到的合適分割槽,就是既能滿足要求又是最小的空閒分割槽。

3)可重定位分割槽分配

在連續分配方式中,必須把乙個作業裝入連續的記憶體空間,時間長了,記憶體中會出現很多記憶體碎片,而重定位式分割槽分配是解決碎片問題的簡單而有效的辦法。共基本思想是移動記憶體中的所有作業使之成為乙個連續區域,繼而留下乙個較大的空白記憶體區。這種過程我們稱之為「拼接」或「緊湊」。

由於經過緊湊後的某些使用者程式在記憶體中的位置發生了變化,所以還需要對程式和資料的位址進行修改,這叫做重定位。

4.非連續分配管理方式

連續分配方式會形成許多「碎片」,雖然可通過「緊湊」方法將許多碎片拼接成可用的大塊空間,但需要為之付出很大開銷。如果允許將乙個程序直接分散地裝入到許多不相鄰接的分割槽中,則無須再進行「緊湊」。基於這一思想而產生了離散分配方式。

(1)分頁管理方式

所謂分頁管理方式,是允許將乙個程序直接分散地裝入到許多不相鄰接的分割槽中,分配的基本單位是頁。

1)頁面與頁表

頁面。分頁儲存管理是將乙個程序的邏輯位址空間分成若干個大小相等的片,稱為頁面,並為各頁加以編號。相應地,把記憶體空間也分成與頁面相同大小的若干個儲存塊,稱為(物理)塊。

在為程序分配記憶體時,以塊為單位將程序中的若干個頁分別裝入到多個可以不相鄰接的物理塊中。乙個頁的位址分成兩部分:頁號和位移量,如下圖

頁表。在分頁系統中,為了能在記憶體中找到每個頁面所對應的物理塊。系統又為每個程序建立了一張頁面映像表,簡稱頁表。

在程序位址空間內的所有頁,依次在頁表中有—頁表項,其中記錄了相應頁在記憶體中對應的物理號。如圖3-2所示

2)位址變換機構

為了能將使用者位址空間中的邏輯位址變換為記憶體空間個的實體地址,在系統中必須設定位址變換機構。由於頁內位址和實體地址是一一對應的,因此,位址變換任務就是借助於頁表來完成的。

基本位址變換。在系統中只設定乙個頁表暫存器,用來存放頁表在記憶體中的始址和頁表的長度。當程序要訪問某個邏輯位址中的資料時,分頁位址變換機構會自動地將位址分為頁號和頁內位址兩部分,再以頁號為索引去檢索頁表。

在檢索前先將頁號與頁表長度相比較,判斷是否有效。然後將頁表始址與頁號和頁表項長度的乘積相加,便得到該表項在頁表中的位置,進而得到該頁的物理塊號。

風險管理講義第7章

風險管理精講班第24講課件講義 環球職業教育 風險管理精講班第24講講義 聲譽風險管理的內容及作用 第七章聲譽風險和戰略風險管理 7.1 聲譽風險管理 7.1.1 聲譽風險管理的內容及作用 有效的聲譽風險管理體系應當重點強調以下內容 明確商業銀行的戰略願景和價值理念 有明確記載的聲譽風險管理政策和流...

第3章程序管理 第3講

作業系統 主講人 黃伯虎 上一講內容回顧 程序間的相互作用 基本概念 同步 互斥 臨界資源 臨界區帶來的問題 解決方案 鎖變數法 測試和設定指令 訊號量和p v操作 訊號量的物理含義 s 0 表示可用資源數目。s 0 表示沒有資源可用。s 0 其絕對值表示因為此訊號量而被阻塞的程序數。p ss為訊號...

第3章溝通管理

3.1溝通概述 3.1.1溝通的含義 溝通 這一術語就如同 組織 或稱機構 這一術語一樣,是一種很難定義的術語。我們不妨這樣看待這個術語,即 溝通 是指人與人之間傳遞和接收具有某種資訊 思想和情感的符號化資訊的過程。也就是說,溝通具有兩方面的含義 首先,溝通是為了乙個特定的目標所進行的人與人之間的資...