作業系統練習題(2)
1、 請求分頁管理系統中,假設某程序的頁表內容如下表所示。頁面大小為4KB,一次記憶體的訪問時間是100ns,一次快表(TLB)的訪問時間是10ns,處理一次缺頁的平均時間是108ns(已含更新TLB和頁表的時間),程序的駐留集大小固定為2,採用最近最少使用置換演算法(LRU)和區域性淘汰策略。假設①TLB初始為空;②地址轉換時先訪問TLB,若TLB未命中,再訪問頁表(忽略訪問頁表之後的TLB更新時間);③有效位為0表示頁面不在記憶體,產生缺頁中斷,缺頁中斷處理後,返回到產生缺頁中斷的指令處重新執行。設有虛地址訪問序列2362H、1565H、25A5H,請問:
(1)依次訪問上述三個虛地址,各需多少時間?給出計算過程。
頁號 |
頁框(Page Frame)號 |
有效位(存在位) |
0 |
101H |
1 |
1 |
— |
0 |
2 |
254H |
1 |
(2)基於上述訪問序列,虛地址1565H的實體地址是多少?請說明理由。
答案(1)
根據頁式管理工作原理,應先考慮頁面大小,以便將頁號和頁內位移分解出來。頁面大小為4KB,即212,則得到頁內位移佔虛地址12位,頁號佔剩餘高位。可得三個虛地址的頁號P如下:
2362H: P=2,訪問塊表10ns,因初始為空,訪問頁表100ns得到頁框號,合成物理地址後訪問主存100ns,共計10ns+100ns+100ns=210ns。
1565H:P=1,訪問塊表10ns,落空,訪問頁表
25A5H:P=2,訪問塊表,因第一次訪問已將該頁號放入塊表,因此花費10ns便可合成物理地址,訪主存100ns,共計10ns+100ns=110ns。
(2)當訪問虛地址1565H時,產生缺頁中斷,合法駐留集為2,必須從頁表中淘汰一個頁面,根據題目的置換演算法,應淘汰0號頁面,因此1565H的對應頁框號為101H。由此可得1565H實體地址為101565H。
2.現有三名學生s1,s2和s3上機實習,程式和資料都存放在同一磁碟上。若三人編寫的程式分別為P1,P2和P3,要求這三個學生用自編的程式呼叫同一個資料檔案A進行運算。請問:(1)若檔案A作為共享檔案,系統應採用何種目錄結構?畫出示意圖。(2)若這三位學生不約而同地把自己的程式名都起為P,利用(1)答案中的目錄結構能否滿足要求?(3)針對(2)的要求,簡要說明系統如何為每個學生索取他們的程式和資料?
答.(1)系統採用二級目錄結構就能滿足需要,其示意圖為下圖。
檔案目錄檔名 始址 末址(2)利用上圖的二級目錄結構能滿足此要求,只要在使用者目錄中把P1、P2、P3都改為P,但這些P都是指向各自不同的程式。
(3)存取程式和資料時,檔案系統會先搜尋主檔案目錄,找到該學生的使用者目錄,然後在使用者目錄中查詢指定的檔案。比如對學生S1,由路徑/S1/P找到的檔案是他的程式檔案。因為它與/S2/P不會指向同一個檔案,不會衝突。而/S1/A和/S2/A是同一個檔案,所以學生S1能取到所需的資料。當然這裡A檔案可以由三個學生同時開啟,一起執行讀操作。
3.假設磁帶的記錄密度為1600bPi(位元組/英寸),每個邏輯記錄長為200位元組,塊與塊之間的間隔為0.5英寸,請回答下列問題:(1)不採用成組操作時,磁帶空間的利用率是多少?(2)採用塊因子為6作成組操作時,磁帶空間的利用率為百分之幾?(3)為了使磁帶空間的利用率大於80%,採用記錄成組時其塊因子至少為多少?
答.(1)間隔=1600×0.5=800(位元組); 200/(200+800)=20%;所以不採用成組操作時磁帶空間的利用率為20%、
(2)(200×6)/(200×6+800)=60%;所以採用成組操作時磁帶空間的利用率為60%。
(3)設塊因子為x,則200x/(200 x +800)>0.8; 250 x>200 x +800; 50 x>800;x>16;所以塊因子至少為17。
4.假設一個磁碟組共有l00個柱面,每鍵面有8個磁軌,每個盤面被分成4個扇區。若邏輯記錄的大小與扇區大小一致,柱面、磁軌、扇區的編號均從“0”開始,現用字長為16位的200個字(第0字~第199字)組成位示圖來指示磁碟空間的使用情況。請問: (1)檔案系統發現位示圖中第15字第7位為0而準備分配給某一記錄時,該記錄會存放到磁碟的哪一塊上?此塊的物理位置(柱面號,磁頭號和扇區號)如何? (2)刪除檔案時要歸還儲存空間,第56柱面第6磁軌第3扇區的塊就變成了空閒塊,此時,位示圖中第幾字第幾位應由1改為0?
答.(1)塊號=15×字長+7=15×16+7=247; 柱面號=[塊號/每柱面扇區數]=[247/(8×4)]=7; 磁頭號=[(塊號mod每柱面扇區數)/每盤面扇區數]=[(247mod 32)/4]=5; 扇區號=(塊號mod每柱面扇區數)mod每盤面扇區數=(247mod 32)mod 4=3;所以該記錄會存放在第247塊上,即在第7個柱面,第5磁頭,第3個扇區上。
(2)塊號=柱面號×每柱面扇區數+磁頭號×每盤面扇區數+扇區號=56×(8×4)+6×4+3=1819 ; 字號=[塊號/字長]=[1819/16]=113; 位號=塊號mod字長=1819mod 16=11;所以位示圖中第113字第11位應由1變成0。
5.現有一檔案FILE _x,其邏輯記錄的大小為125位元組,共有20個邏輯記錄,檔案系統把這個檔案儲存到磁碟上時採用連結結構,磁碟的分塊大小為5l2個位元組,請問: (1)採用什麼方法可有效地利用磁碟空間? (2)畫出檔案FILE _x在磁碟上的連結結構示意圖(磁碟塊號自定)。 (3)若使用者要求讀包含第1285位元組的邏輯記錄,檔案系統將如何工作?
答.(1)採用記錄成組的方法能有效地利用磁碟空間,這裡擬選用塊因子為4。 (2)採用塊因子為4,進行記錄成組時,將佔5個磁碟塊.不妨設這5個磁碟塊依次為6、2、9、1 5、18。檔案FILE—x在磁碟上的連結結構示意圖見下圖。 檔案目錄檔名 始址 末址FILE-X 618
塊 號 629 15 18連結指標 2 9 15 18 -1(3)第一步,由[1285/(125×4)]=2可知包含1285位元組的邏輯記錄在連結結構的第三個塊上,即塊9中,為此檔案系統把塊9讀入主存緩衝區。第二步,由1285 MOD (125×4)=285 且 125×2<285<125×3;所以可知檔案系統從主存緩衝區中取出第3個記錄傳輸給使用者。
且 125×2<285<125×3;所以可知檔案系統從主存緩衝區中取出第3個記錄傳輸給使用者。
6.若有一個磁碟共有l00個柱面,每個柱面上有8個磁軌,每個盤面被劃分成4個扇區。現有一個含3200邏輯記錄的檔案,邏輯記錄的大小與扇面的大小一致,該檔案以順序結構的形式被存放到磁碟上。柱面、磁軌、扇區以及邏輯記錄的編號均從“0”開始。檔案資訊從0柱面、0磁軌、0扇區開始存放,請問:(1)如何確定該檔案的第1838個邏輯記錄存放在磁碟上的位置,其柱面號、磁頭號和扇區號? (2)第56柱面的第7磁軌的第3扇區存放了該檔案的第幾個邏輯記錄?
答案:(1)已知t=8,s=4,b=1838,則D=s×t=4×8=32,M=[b/D]=[1838/32]=57,N=b mod D=1838 mod 32=14,∴ 柱面號=M=57,磁頭號=[N/s]=[14/4]=3, 扇區號=N mod s=14 mod 4=2 (2)已知s=4,t=8,i=56,j=7,k=3,則 記錄號=k+s×(j+i×t)=3+4×(7+56×8)=18237.若某磁碟共有200個柱面,其編號為0~199,假設已完成68號柱面的訪問請求,正在為訪問96號柱面的請求者服務,還有若干個請求者在等待服務,他們依次要訪問的柱面號為:175,52,157,36,159、106,l 08,72,(1)請分別計算用先來先服務排程演算法、最短尋找時間排程演算法、電梯排程演算法和單向掃描排程演算法來確定實際服務的次序。 (2)按實際服務次序計算(1)中四種演算法下移動臂需移動的距離。
答案:用圖解法解此題。並分別按演算法回答2個問題。(1)先來先服務排程演算法: 0 36 52 68 72 96 106 108 157 159 175 199實際服務的次序: 68→96→175→52→157→36→159→106→108→72; ∵ (175-96)+(175-52)+(157-52)+(157-36)+(159-36)+(159-106)+(108-106)+(108-72)=642 ∴ 移動臂需移動642柱面的距離(2)最短尋找時間優先排程演算法: 0 36 52 68 72 96 106 108 157 159 175 199實際服務的次序:68→96→106→108→72→52→36→157→159→175; ∵ (106-96)+(108-l06)+(108-72)+(72-52)+(52-36)+(157-36)+(159-l57)+(175-159)=223 ∴ 移動臂需移動223個柱面的距離(3)電梯排程演算法: 0 36 52 68 72 96 106 108 157 159 175 199實際服務的次序:68→96→106→108→157→159→175→72→52→36; ∵ (106-96)+(108-l06)+(157-108)+(159-l57)+(175-159)+(175-72)+(72-52)+(52-36)=218 ∴ 移動臂需移動218個柱面的距離(4)單向掃描排程演算法: 0 36 52 68 72 96 106 108 157 159 175 199實際服務的次序:68→96→106→108→157→159→175→199→0→36→52→72; ∵ (106-96)+(108- l06)+(157-108)+(159-l57)+(175-159)+(199-175)+(36-0)+(52-36)+(72-52)=175 ∴除了移動臂由裡向外返回所用的時間外,還需移動l 75個柱面的距離8.若現在磁碟的移動臂處於第15號柱面有六個請求者等待訪問磁碟下表,如何響應這些訪問才最省時間? 序號 柱面號 磁頭號 扇區導 ① 12 2 6 ② 5 3 2 ③ 16 87 ④ 6 4 1 ⑤ 16 7 3 ⑥ 12 5 6
答案:針對本題分析各種移臂排程演算法,發現以最短尋找時間排程演算法最優,移動臂距離最短,也就是設訪問的柱面次序為:16,12,6,5。其次,從旋轉排程角度出發無法確定訪問同一柱面上扇區時先響應哪個扇區更快,所以最省時間的響應次序有以下四種:3→5→1→6→4→2;3→5→6→1→4→2;5→3→1→6→4→2;5→3→6→1→4→2;9.若某磁碟的旋轉速度為20毫秒/周,磁碟初始化時每個盤面分成10個扇區,扇區按磁碟旋轉的反向編號,依次為0~9,現有10個邏輯記錄R0,R1,…,R9,依次存放在0~9十個扇區上。處理程式要順序處理這些記錄,每讀出一個記錄後處理程式要花6毫秒進行處理,然後再順序讀下一個記錄並處理,直到全部記錄處理完畢,請回答:(1)順序處理完這10個記錄總共花費多少時間? (2)優化分佈這些記錄,使這10個記錄的處理總時間最短,並算出優化分佈時需花費的時間。
答案:〔1)順序存放:R0→R9;由20ms÷10=2ms知,每讀一個扇區花2ms,由2ms+6ms=8ms知,讀出並處理完R0後,讀寫磁頭已在R4的位置,要讀Rl記錄,則要有14ms延遲時間。順序處理完這十個記錄需花費時間為:10×(2+6)+9×(2×7)=926(ms) (2) 優化分佈:R0→R5→R3→R8→R1→R6→R4→R9→R2→R7,即得邏輯記錄的最優分佈。此時處理十個記錄所花費的時間為:10×(2+6)=80(ms)