1. 某個OS采用可變分區分配方法管理,用戶主存512KB,自由區由可用空區表管 理。若分配時采用分配自由區的低地址部分的方案,假設初始時全為空。對於 下列申請順序: 申請(300KB), 申請(100KB), 釋放(300KB), 申請(150KB),申請 (30KB),申請(40KB),申請(60KB),釋放(30KB)。 回答下列問題: ( 1) 采用首次適應( FF),自由空區中有哪些空塊(給出地址和大小)? ( 2) 若采用最佳適應( BF),回答( 1)中的問題。 ( 3) 如果再申請100KB,針對( 1)和( 2)各有什么結果?
1)如圖
空閑區: 起始地址: 150K 280K 400K
大小: 30K 20K 112K
(2)如圖
空閑區: 起始地址: 210K 400K 470K
大小: 90K 30K 42K
(3) 針對(1) 可分配在400K位置
針對(2) 無法分配
2. 考慮下面的頁訪問串: 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6 假定有4,5,6個頁塊, 應用下面的頁面替換算法,計算各會出現多少次缺頁中斷。注意,所給定的頁 塊初始均為空,因此,首次訪問一頁時就會發生缺頁中斷。
( 1) LRU ( 2) FIFO ( 3) Optimal
(1) LRU
4個頁塊:
頁面 |
1 |
2 |
3 |
4 |
2 |
1 |
5 |
6 |
2 |
1 |
2 |
3 |
7 |
6 |
3 |
2 |
1 |
2 |
3 |
6 |
內存塊 |
1 |
2 |
3 |
4 |
2 |
1 |
5 |
6 |
2 |
1 |
2 |
3 |
7 |
6 |
3 |
2 |
1 |
2 |
3 |
6 |
|
1 |
2 |
3 |
4 |
2 |
1 |
5 |
6 |
2 |
1 |
2 |
3 |
7 |
6 |
3 |
2 |
1 |
2 |
3 |
|
|
|
1 |
2 |
3 |
4 |
2 |
1 |
5 |
6 |
6 |
1 |
2 |
3 |
7 |
6 |
3 |
3 |
1 |
2 |
|
|
|
|
1 |
1 |
3 |
4 |
2 |
1 |
5 |
5 |
6 |
1 |
2 |
2 |
7 |
6 |
6 |
6 |
1 |
|
缺頁 |
y |
y |
y |
y |
|
|
y |
y |
|
|
|
y |
y |
y |
|
|
y |
|
|
|
可得共出現缺頁中斷10次
步驟同上圖可得5個頁塊共出現缺頁中斷8次,6個頁塊共出現缺頁中斷7次
(2) FIFO
4個頁塊:
頁面 |
1 |
2 |
3 |
4 |
2 |
1 |
5 |
6 |
2 |
1 |
2 |
3 |
7 |
6 |
3 |
2 |
1 |
2 |
3 |
6 |
內存塊 |
1 |
2 |
3 |
4 |
4 |
4 |
5 |
6 |
2 |
1 |
1 |
3 |
7 |
6 |
6 |
2 |
1 |
1 |
3 |
3 |
|
1 |
2 |
3 |
3 |
3 |
4 |
5 |
6 |
2 |
2 |
1 |
3 |
7 |
7 |
6 |
2 |
2 |
1 |
1 |
|
|
|
1 |
2 |
2 |
2 |
3 |
4 |
5 |
6 |
6 |
2 |
1 |
3 |
3 |
7 |
6 |
6 |
2 |
2 |
|
|
|
|
1 |
1 |
1 |
2 |
3 |
4 |
5 |
5 |
6 |
2 |
1 |
1 |
3 |
7 |
7 |
6 |
6 |
|
缺頁 |
y |
y |
y |
y |
|
|
y |
y |
y |
y |
|
y |
y |
y |
|
y |
y |
|
y |
|
可得共出現缺頁中斷14次
步驟同上圖可得5個頁塊共出現缺頁中斷10次,6個頁塊共出現缺頁中斷10次
(3) Optimal
4個頁塊:
頁面 |
1 |
2 |
3 |
4 |
2 |
1 |
5 |
6 |
2 |
1 |
2 |
3 |
7 |
6 |
3 |
2 |
1 |
2 |
3 |
6 |
內存塊 |
1 |
2 |
3 |
4 |
4 |
4 |
5 |
6 |
6 |
6 |
6 |
6 |
7 |
7 |
7 |
7 |
1 |
1 |
1 |
1 |
|
1 |
2 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
6 |
|
|
|
1 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
|
|
|
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
|
缺頁 |
y |
y |
y |
y |
|
|
y |
y |
|
|
|
|
y |
|
|
|
y |
|
|
|
可得共出現缺頁中斷8次
步驟同上圖可得5個頁塊共出現缺頁中斷8次,6個頁塊共出現缺頁中斷7次
3. 一台計算機有4個頁塊,裝入時間、上次引用時間、它們的R(讀)與M(修改) 位如下表所示(時間:滴答),請問NRU、 FIFO、 LRU和第二次機會算法將替 換那一頁?
NRU算法將替換0類編號頁頁0;
FIFO算法將替換最早裝入頁頁2
LRU算法將替換最近未被使用頁頁1
第二次機會算法將替換載入時間早且R位為零的頁頁0。
4. 有一頁式系統,其頁表存放在主存中。
( 1)如果對主存的一次存取需要1.5微秒,試問實現一次頁面訪問時的存取時間是 多少?
( 2)如果系統加有快表且平均命中率為85%,而頁表項在快表中的查找時間忽略為 0,試問此時的存取時間為多少?
(1)需要兩次訪問內存:
第一次是訪問頁表,從而找到線性地址對應的物理地址;
第二次是利用找到的物理地址來訪問實際的內存頁面。
所以共需要3微秒。
(2)在快表中得到物理地址到主存找的概率是85%,需要1.5微秒;頁表不在快表中在主存的概率是15%,需要3微秒,所以存取時間為1.5*0.85+3*0.15=1.725微秒。
5. 已知某系統頁面長4KB,頁表項4B,采用多層分頁策略映射64位虛擬地址空間。 若限定最高層頁表占1頁,問它可以采用幾層分頁策略。
頁面大小為4KB,總共有212位信息,其中只有210位信息是所需要的信息,而另外4字節的內容是管理這張頁表的信息。64位地址空間,事實上每頁只能存放10位的容量,去掉作為頁內地址的12位空間,將有252頁表,將這些頁表按每頁存放10位容量計算,則需要[52/10]=6層,故必須采取6層分頁策略。
6. 在一個段式存儲管理系統中,其段表如表1所示。試求表2所示中的邏輯地址所 對應的物理地址。
(1)由於第0段的內存始址為210,段長為500,故邏輯地址[0,430]是合法地址。邏輯地址[0,430] 對應的物理地址為210+430=640。
(2)由於第1段的內存始址為2350,段長為20,故邏輯地址[1,10]是合法地址。邏輯地址[1,10]對應 的物理地址為2350+10=2360。
(3)由於第段起始地址為100,段長為90,所給邏輯地址[2,500]非法。
(4)由於第3段的內存始址為1350,段長為590,故邏輯地址[3,400]是合法地址。邏輯地址[3,400] 對應的物理地址為1350+400=1750 。
(5)由於第4段的內存始址為1938,段長為95,所給邏輯地址[4,112]非法。
(6)由於系統中不存在第5段,所給邏輯地址[5,32]非法。
7. 請求分頁管理系統中,假設某進程的頁表內容如下表所示:
頁面大小為 4KB,一次內存的訪問時間是 100ns,一次快表(TLB)的訪問時間是10ns, 處理一次缺頁的平均時間 10^8 ns(已含更新 TLB 和頁表的時間),進程的駐留集大小固定為 2,采用最近最少使用置換算法(LRU)和局部淘汰策略。
假設( 1) TLB 初始 為空;( 2) 地址轉換時先訪問 TLB,若 TLB 未命中,再訪問頁表(忽略訪問頁表之后 的 TLB 更新時間);( 3) 有效位為 0 表示頁面不在內存,產生缺頁中斷,缺頁中斷處理后,返回到產生缺頁中斷的指令處重新執行。設有虛地址訪問序列2362H、 1565H、 25A5H,
請問: (1)依次訪問上述三個虛地址,各需多少時間?給出計算過程。
(2)基於上述訪問序列,虛地址 1565H 的物理地址是多少?請說明理由。
(1)根據頁式管理工作原理,應先考慮頁面大小,以便將頁號和頁內位移分解出來。頁面大小為4KB,即212,則得到頁內位移占虛地址12位,頁號占剩余高位。可得三個虛地址的頁號P如下:
2362H: P=2,訪問快表10ns,因初始為空,訪問頁表100ns得到頁框號,合成物理地址后訪問主存100ns,共計10ns+100ns+100ns=210ns。
1565H:P=1,訪問快表10ns,落空,訪問頁表100ns,落空,進行缺頁中斷處理108ns,合成物理地址后訪問主存100ns,共計10ns+100ns+108ns+100ns≈108ns。
25A5H:P=2,訪問快表,因第一次訪問已將該頁號放入塊表,因此花費10ns便可合成物理地址,訪主存100ns,共計10ns+100ns=110ns。
(2)當訪問虛地址1565H時,產生缺頁中斷,合法駐留集為2,必須從頁表中淘汰一個頁面,根據題目的置換算法,應淘汰0號頁面,因此1565H的對應頁框號為101H。由此可得1565H物理地址為101565H。
8. 設某計算機的邏輯地址空間和物理地址空間均為 64KB,按字節編址。若某進程 最多需要 6 頁(Page)數據存儲空間,頁的大小為 1KB,操作系統采用固定分配 局部置換策略為此進程分配 4 個頁框(Page Frame)。在時刻 260 前的該進程 訪問情況如下表所示(訪問位即使用位)。
當該進程執行到時刻 260 時,要訪問邏輯地址為 17CAH 的數據。請回答下列問題:
(1) 該邏輯地址對應的頁號是多少?
(2) 若采用先進先出(FIFO)置換算法,該邏輯地址對應的物理地址是多少?要求給出計算過程。
(3) 若采用時鍾(CLOCK)置換算法,該邏輯地址對應的物理地址是多少?要求給出計算過程 (設搜索下一頁的指針沿順時針方向移動,且當前指向2號頁框,示意圖如下) 。
(1)17CAH=(0001 0111 1100 1010)2。頁大小為1K,所以頁內偏移地址為10位,於是前6位是頁號,所以得到頁號為:5。
(2)若采用FIFO算法,則被置換的頁面所在頁框為7,所以對應的物理地址為(0001 1111 1100 1010)2=1FCAH。
(3)若采用時鍾算法,第一次循環時訪問位都置為0,又當前指針指向2號頁框,故第二次循環將置換2號頁框對應的頁,所以對應的物理地址為(0000 1011 1100 1010)2=0BCAH。