作業系統考研複習第三章記憶體管理

2022-09-11 12:57:05 字數 4713 閱讀 1793

第三章儲存器管理

1 源程式變為記憶體中可執行的程式需要經過哪些步驟?這些步驟分別有哪幾種方式?

a編譯:源**編譯成目標模組.obj

b鏈結:與庫函式鏈結在一起,形成裝入模組(靜態鏈結、裝入記憶體時動態鏈結、執行時動態鏈結)

c裝入:裝入記憶體執行。有絕對裝入(絕對位址)、可重定位裝入(靜態重定位;裝入時位址重定位)、動態執行時裝入(動態重定位;執行時位址重定位,需要重定位暫存器支援);

2 什麼叫重定位?動態重定位特點是什麼?(重定位的好處)

在儲存器管理中什麼是重定位?為什麼要引進重定位技術?2014

當裝入程式將可執行**裝入記憶體時,把邏輯位址轉換成實體地址的過程,叫重定位。(一般沒特殊說明,指的就是動態重定位)

1將程式分配到不連續的儲存器中;

2只需投入部分**即可執行;

3執行期間,根據**需求動態申請記憶體;

4便於程式段的共享,可用向使用者提供乙個比儲存空間大很多大位址空間。

3 記憶體是如何進行保護的?(訪問記憶體的位址是如何識別正確性的?)

(記憶體保護是為了確保作業系統的位址區不受使用者程序的影響)

使用重定位暫存器(含最小實體地址)和界位址暫存器(邏輯位址)來保護的。

首先將邏輯位址與界位址比較,小於則與重定位位址相加對映成實體地址;大於則出現越界中斷。

4 什麼是覆蓋技術、交換技術?

覆蓋:把使用者空間分成乙個固定區和若干的覆蓋區,經常活躍的放在固定區,其他按需要調入覆蓋區。

覆蓋優缺點:打破了將程序全部資訊裝入記憶體才能執行的限制;

當同時執行的程式**量大於記憶體仍不能執行、並且使用者需給出覆蓋區的結構

交換:即中級排程的程序的換入和換出。

(現在已經不使用覆蓋技術,現在是通過虛擬儲存技術來解決的)

1 記憶體分配管理有哪些方式?

根據作業是否在同一分區劃為連續分配和非連續分配。

a連續分配:1單一連續分配、2固定分割槽、3動態分割槽。

b非連續分配:1分頁、2分段、3段頁式(每個又根據是否使用虛擬記憶體技術分為基本和請求)

2 簡述連續分配管理的方式有哪些?優缺點有什麼?

a單一連續分配:分為系統區和使用者區。無需記憶體保護。

優缺點:有內部碎片,記憶體利用率低,且只適用於單任務單使用者的os中。

b固定分割槽分配:將記憶體空間劃分為固定大小區域,每個區域只裝入一道作業。

缺點:程式太大放不進去、主存利用率低、產生內部碎片。

c動態分割槽分配:根據程序大小動態建立分割槽,使分割槽大小正好適應程序需要。

缺點:剛開始的時候是比較好的,後面會導致外部碎片的產生。

3 什麼是內部碎片?外部碎片、通過什麼技術來解決?

內部碎片:程式小於固定分割槽大小,導致分割槽內部空間有剩餘。

外部碎片:在分割槽外部產生難以使用的碎片。

外部碎片通過「緊湊」技術來解決。

4 動態分割槽分配的空閒分割槽的分配策略有哪些?優缺點是什麼?

首次適應演算法first fit:空閒分割槽按位址順序次序鏈結起來,每次都分配第乙個;

最佳適應演算法best fit:空閒分割槽按從小到大鏈結起來,每次分配最能適應程式大小的那乙個;

最壞適應演算法worst fit:空閒分割槽按從大到小順序鏈結起來,每次分配最大的空間;

迴圈首次適應演算法next fit:首次適應演算法;只不過下一次尋找是從上一次結束位置開始。

first fit:最簡單,且效果最好、最快的。

缺點是記憶體低址部分出現很多小的分割槽,且每次查詢都要經過這些分割槽。

best fit:實際上比較差,因為每次分配都留下難以利用的記憶體塊,產生最多的碎片。

worst fit:導致很快沒有可用的大的記憶體塊。

next fit:它試**決首次適應演算法的問題,但實際上會導致在記憶體末尾分配空間。比首次還差。

1 連續分配的固定分割槽分配與非連續的分頁管理有什麼不同?

分頁在形式上看與固定分割槽一樣,但實際上不一樣;

分頁的大小比固定分割槽小很多,且分頁是按程序分頁,記憶體分塊(頁框),程序按塊為單位申請空間,所以只會在最後一塊中產生頁內碎片,所以不會產生外部碎片。這會使乙個作業的程序可能被分到了不同的塊中。

2 什麼是頁表?

分頁儲存管理系統中,頁表的主要作用是什麼?現代大多數計算機系統都支援非常大的邏輯位址空間,這給頁表設計帶來什麼問題?(頁表太大)2014

頁表是為了便於在記憶體中找到程序中每個頁面對應的物理塊號,系統為每乙個程序建立一張頁表,記錄在記憶體中物理塊號,頁表也一般放在記憶體中。

3 分頁管理方式存在哪兩種主要的問題?

每次訪問記憶體需要邏輯位址轉化到實體地址,所以轉化速度必須快;【快表】

每個程序引入頁表機制,頁表不能太大,否則記憶體利用率低【多級分頁和請求分頁】(見下)

4頁表太大會帶來什麼問題?解決方法有哪些?

難以在記憶體中找到一塊連續的位址,放下這麼大的頁表。即便是找到,也會占用記憶體很大的空間,記憶體的空間利用率下降。

1採用離散分配方式解決難以找到一塊連續的大記憶體空間;【多級頁表】

2只需將當前需要的部分頁表項調入記憶體,其餘頁表項駐留在外存上。【請求分頁】

5 頁表是什麼組成的?分頁的位址結構?

整張頁表,是由乙個個頁表項組成。每乙個頁表項由頁號和所對應的塊號組成。

分頁的位址結構由「頁號」+「頁內偏移量」組成。例如位址長度32位(頁號31~12,頁內偏移11~0)則

1「頁號」就是整張頁表中頁表項的偏移量。(現在頁號20位,即能支援的頁表項個數為220個。最大頁表項所對應的頁號是220-1。

2如果把一頁裡面放滿頁表編號(不是頁號,頁號是一頁裡面的頁表項的偏移量),即該一頁中的頁號中的一位對應一張頁表,就是能支援最大頁數。(位址空間所允許的最大頁數為220頁)

3「頁內偏移量」就是一頁的大小。(現在頁內偏移量為12位,即212b=4kb。即現在一頁的大小為4kb)

6慢表的位址變換過程?(整個過程由硬體自動完成)

整個過程就是把邏輯位址的頁號替換成物理塊號,就變為了實體地址。(假設頁面大小l=1kb,頁號2對應物理塊8,計算邏輯位址2500的實體地址?)

1系統常設「頁表暫存器」,存放該頁表的記憶體開始位址f和頁表長度m。(平時放在pcb中,要用時才調入暫存器)

(先找到該頁表,頁表長度為1024b)

2根據邏輯位址計算頁號p和頁內偏移量w -> 比較頁號p與頁表長度m(頁號是頁表的裡面乙個頁表項的偏移量與頁表長度,即總的頁表項相比較)->

(頁號p=邏輯位址/頁面大小;頁內偏移量w=邏輯位址%頁面大小)

(現在頁號p= 2500/1024b=2;頁內偏移量w=2500%1024b=452)

3 p(2<1024,繼續找到2對應8)

4 最後形成實體地址(注意:塊號在高位上,快內偏移在低位上,不能直接相加,需要把塊號*快內偏移最大量+快內偏移)

(實體地址=8*1024+452=8644)

7 什麼是快表?有快表和只有慢表訪存到次數是多少?

頁式管理中為什麼要設定頁表和快表?(加快位址重定位速度,從而加快了訪問速度)2011

快表:在高速緩衝器cache中增設當前訪問的若干表項,它是記憶體中頁表(慢表)的乙個很小的副本。

只有慢表需訪問兩次:一次訪問記憶體的頁表,轉化成實體地址後,再一次訪問記憶體。

(命中的)快表訪問一次記憶體:雖然是一次cache一次記憶體,但訪問記憶體只有1次。

8快表位址變換過程?快表計算

有些是慢表快表同時查詢、有些是先找快表(一般不用同時查詢);

1快表找到則直接可以形成實體地址。

2快表找不到,則找到慢表中的表項時,同時更新快表。然後再次從頭訪問。

如果是請求分頁,還可能出現該頁(不是頁表項)不在記憶體的情況,需要缺頁中斷處理,調入該頁、並且修改頁表。

最後一定要記住分頁快表中拿到的是位址,還需要再次訪問記憶體拿到資料。

例:現在記快表訪問時間為a,缺頁中斷處理時間為b,訪問記憶體時間為c

則能命中快表的總的訪問時間:a+c(訪問a拿到位址,再訪問c拿資料)

不能命中快表的總的訪問時間:a+c+c(訪問a失敗,訪問c拿到位址,再訪問c拿資料)

不能命中快表且記憶體中沒有該頁框:a+c+b+a+c(訪問a失敗,訪問c失敗,中斷處理b,然後再訪問a拿到位址,再訪問c拿到資料)

9兩級分頁的位址轉換過程?

先找頂級頁表(只有一張),然後找到對應的頁表項,取到二級頁表的塊號;

根據該塊號找二級頁表,然後找到對應的頁表項,取到對應的塊號;

最後塊號與頁內偏移形成最終的實體地址。

10 兩級分頁的位址結構?

「頂級頁表」+「二級頁表」+「頁內偏移量」(假設32位位址,31~22頂級頁表,21~12二級頁表,11~0頁內偏移量)

1二級分頁就是把頂級頁表的一頁來裝二級分頁的頁表編號,所以頂級頁表的一位對應二級分頁的一張頁表。

2二級頁表總的頁表項數=頂級頁表數目*每乙個頂級頁表對應的二級頁表數目(210*210=220項,就是兩個位數相加)

3分頁:一頁大小為akb,乙個頁表項大小為bkb,則一頁可放a/b個頁表項;

程序大小為ckb,則該程序可以分為c/a頁作為二級頁表;

固二級頁表項有c/a個項,將其分頁,可以分為(c/a)/(a/b)=cb/a2頁;

這些頁對應出來的就是就是頂級頁表的頁表項數cb/a2項。

4 32位系統分頁(32位,即232b=4gb,假設一頁4kb,頁表項大小為4b)

則一頁可容納4kb/4b=210個頁表項;

這些位址空間可以分為4gb/4kb=220個頁面,這些頁面對應頁表項也有這麼多,固向上分頁可以分出220/210=210個頁面,這些頁面對應的頁表項剛好塞進一頁,固只需要二級分頁即可。

5 64位系統分頁(64位,即264b,假設一頁4kb,頁表項大小為8b,偏移欄位12位)

作業系統第三章處理器管理

第三章本章從多道程式設計出發,引入了程序的概念,程序的基本狀態和程序佇列等基本內容,同時對中斷系統進行了詳細介紹 在此基礎上,對程序排程策略進行了詳盡的敘述.本章是本節中比較重要的章節,由於程序的概念十分重要又相當抽象,讀者可以結合下面的講解深入理解本章的內容 第1節多道程式設計 一,重要知識點 要...

第三章總複習

1 人體呼吸系統的組成按順序排列應當是 d a 鼻咽喉支氣管氣管肺 b 鼻喉嚥氣管支氣管肺 c.鼻口腔咽喉氣管支氣管 d 鼻咽喉氣管支氣管肺 2 下例各項試圖論述用鼻呼吸的優點,但有一項不正確,應該是 a a 鼻粘膜內的嗅細胞可以感受氣味的刺激 b 鼻粘膜具有豐富的毛細血管,能溫暖吸入的冷空氣c.鼻...

《工程專案管理》考研複習整理第三章

第3 章工程專案資源管理 專案資源管理的任務與內容 專案資源管理的任務就是依據專案目標,按照專案的進度與資金計畫編制資源的採購 使用與 計畫,將專案實施所需用的資源按規定的時間 計畫的耗用量 到指定的地點,並綜合降低專案總成本。專案資源管理的內容包括專案物資材料管理 專案機械裝置管理 專案勞務管理 ...