1. 程式人生 > 其它 >作業系統錯題

作業系統錯題

  • 實時系統有什麼特點?適用於哪些方面? 正確答案是( )

    A、實時系統具有獨立性、及時性、互動性和同時性
    B、適用於大型作業且不需要人工干預的場合
    C、實時系統對隨機發生的外部事件作出及時的響應並作出處理
    D、實時系統具有高可靠性、實時響應性和事件驅動的特點
    E、適用於較少有人干預的實時監控場合

cde。a中的特徵是分時系統

第三章 互斥與同步




第五章 儲存器管理

設某計算機的邏輯地址空間和實體地址空間均為64KB,按位元組編址。若某程序最多需要6頁資料儲存空間,頁的大小為4KB。作業系統採用固定分配區域性置換策略為此程序分配4個頁框,如下表在10:23時已經有4頁進入記憶體,下表的裝入時間和訪問時間為一天內24小時時間,10:00為10點0分。訪問位為0表示未被訪問,為1表示已被訪問,修改位為0表示未被修改,為1表示已被修改。表中的訪問時間均為對應的頁最近一次被訪問時間。

當該程序執行到時刻10:55時,要訪問邏輯地址為5ABCH的資料,請問答下列問題:

(1)該邏輯地址對應的頁號是( ).

(2)若採用先進先出(FIFO)置換演算法,該邏輯地址對應的實體地址是( ).

(3)若採用最近最少用(LRU)置換演算法,該邏輯地址對應的實體地址是( ).

(4)若採用時鐘(CLOCK)置換演算法,該邏輯地址對應的實體地址是( )。(設搜尋下一頁的指標沿順時針方向移動,且當前指向2號頁框,示意圖如下。)

(1)

  • 這裡需要注意的是,起始給出的邏輯地址5ABCH表示的是一個十六進位制的數:0101 1000 1001 1010
  • 得到頁面的大小是4KB,即2的12次方。所以向右移動12位
    ,即可分為0101和100010011010兩部分,0101即表示當前邏輯地址對應的頁號,即第5頁

(2)(3)

正常的調轉,只是對應的實體地址為替換後頁表的頁框位置。這道題而言是這樣。正規的理解應該是所指頁框號化為2進位制,然後將第一問中的餘數連線起來,才是真正的實體地址。如(2)中,選中的頁框號為7,則其地址0111 100010011010即7ABCH

分別是7ABCH,2ABCH

(4)CLOCK演算法是從當前指向位置順時針轉,若指向的頁的訪問號為0,則把它替換。因為本題中,訪問號全部是1,所以在轉一圈後,重新指向當前位置,單此時的訪問位在轉一圈後變成0.於是替換的頁的頁號就是2號頁。根據上述演算法,得到物理位置

如果一個作業在執行過程中,按下列的頁號依次訪問主存:1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6。作業固定佔用四個主存頁框(塊),試問:

(1) 採用FIFO演算法時,產生( )次缺頁中斷,相應的缺頁中斷率是( )%。

(2) 採用LRU演算法時,產生( )次缺頁中斷,相應的缺頁中斷率是( )%。

(3) 採用OPT演算法時,產生( )次缺頁中斷,相應的缺頁中斷率是( )%。

在固定分割槽管理中,當有1KB、9KB、33KB和121KB四個程序要求進入系統時,試分析主存空間的分配情況(主存初始狀態如圖5-33所示),並說明主存的浪費是( )KB。

直接用已有儲存空間相減

先算該塊的地址佔到第幾塊,如果有餘數,則在結果加一。

1568/512 = 3(號) 三號頁對應的塊號是4

絕對地址=塊號×塊長+單元號=4×512+(1568%512)=2060

單元號為邏輯地址%頁長。

(1)對於訪問序列依然是通過上述題中說到過的:十六進位制序列號化為二進位制序列號,然後根據頁面的大小劃分出頁號和頁內偏移。如2362H則為0010 0011 0110 0010,頁面4KB,即為2的12次方。0010為頁號,0011 0110 0010 為頁內偏移。其次對於這種題,需要認清當前初始狀態,此時的快表為空,每次找到後都需要將專案加入都到快表中。給出圖的是頁表,查詢次序:訪問快表->訪問頁表->缺頁中斷(->表示沒找到才到下一階段)->訪問快表 查詢後,都需要合成物理地址訪問記憶體 頁表的訪問需要訪問記憶體

2362H:頁號2,查快表10,沒有,查頁表100,找到後合成地址,找記憶體100,所以10+100+100=210ns

1565H:頁號1,查快表10,沒有,查頁表100,沒有,缺頁中斷108,查快表10,合成物理地址查記憶體100,所以(220+108)ns

25A5H:頁號2,查快表10,由於之前的2號訪問添加了塊表,所以找到了,合成地址訪問記憶體100,所以110ns

(2)1565H,頁號為1,偏移為0101 0110 0101。查詢過程中,會產生缺頁中斷,所以必須使用淘汰演算法淘汰一個頁面。採用LRU淘汰頁號0,所以其對應頁框號101H,所以它的實體地址應該為101 565H。(頁內偏移不改變,只改變其“標識號”,為了查詢方便快捷)

第六章 檔案系統

每個索引塊最大索引數 = 256/4 = 64.

4個直接地址索引4×256 = 1K

一級間接索引64*256 =16K

二級間接索引64×64×256 = 1024K

所以單個檔案的最大長度 = 1024+1+16 = 1041K


由於是UNIX的儲存方式,所以使用i-node的方式儲存資訊。首先得到每一地址空間佔據的儲存量,即每個索引塊最大有1KB索引數。

所以應該是10×4KB+1K×4K+1K×1K×4K+1K×1K×1K×4K = 4TB4GB4MB40KB

直接地址佔的就是它對應的塊的大小。使用塊的大小除以地址得到的就是每個索引中含有的最大索引數。比如說1級索引,他就有4K/4=1K個索引數,然後每個索引數對應一個儲存塊。二級則是每一個索引數都對應一個一級的索引這樣類推。

注意題目只要求得到幾次訪問。

根目錄的i-node在記憶體,而路徑中的其它i-node不在記憶體。
需要下列的磁碟操作:讀根目錄;讀/usr的 i-節點;讀/usr的目錄;讀/usr/ast的 i-節點;讀/usr/ast 的目錄;讀/usr/ast/courses的 i-節點;讀/usr/ast/courses的目錄;讀/usr/ast/courses/os的 i-節點; 讀/usr/ast/courses/os的目錄;讀/usr/ast/courses/os/handout.t的 i-節點。
總共 10次磁碟讀操作。

可以看到都是先看一個目錄的i-,然後再看其目錄,得到下一級我們需要的內容。注意讀取時,首先是從根目錄開始的。

主要了解存放指標個數的演算法。

位示圖表示當前磁碟中的儲存狀態。開始時1000 0000 0000 0000

A佔6位 1111 1110 0000 0000

寫入B,佔5位 1111 1111 1111 0000

刪除A 1000 0001 1111 0000

寫入C,佔8位 1111 1111 1111 1100

刪除B 1111 1110 0000 1100

可以看到C在寫入時,它的儲存位置是可以不連續的。刪除資料時,將其原來位置的值置0即可

(1)同上面的題

(2)假設除了檔案i節點已經在主記憶體中之外沒有其他資訊,那麼要在位置30000中訪問該位元組需要多少磁碟訪問?

答:因為 30000<40K,故該地址落入直接索引中,由於 i-node 已在記憶體,因此只需要 1 次訪問磁碟塊,一次訪問含有該位置資料的資料塊。

(3)4GB<2T<4TB,所以坐落在三級間接索引中。所以需要4次訪問磁碟塊。

第七章 IO管理

86 91 94 102 130 147 150 175 177

(1)

FCFS先來先服務

86 -> 147 -> 91 -> 177 -> 94 -> 150 -> 102 -> 175 -> 130

39+61+56+86+83+56+48+73+45=547

(2)

SSTF最短查詢時間優先(125開始)

130 -> 147 -> 150 -> 175 -> 177 -> 102 -> 94 -> 91 -> 86

5+17+3+25+2+75+8+3+5=143

(3)

SCAN掃描策略(電梯演算法)(初始時是往增大的方向走)

130 -> 147 -> 150 -> 175 -> 177 -> 102 -> 94 -> 91 -> 86

5+17+3+25+2+75+8+3+5=143

(4)

CSCAN迴圈掃描策略

130 -> 147 -> 150 -> 175 -> 177 -> 86 -> 91 -> 94 -> 102

5+17+3+25+2+91+5+3+8=159

由於轉速為6000r/min,則平均旋轉延遲為60×1000/(6000×2)=5ms,總的旋轉延遲時間為5*5ms=25ms。

由於旋轉一週的時間為10ms,每個磁軌有100個扇區,讀取一個磁軌上一個扇區的平均讀取時間為10ms/100=0.1ms,總的讀取扇區的時間=0.1ms*5=0.5ms。這裡是因為題目要求找到時還需要讀取一個扇區

1s = 1000ms

旋轉延遲用磁碟旋轉一週所需時間的一半來表示

此旋轉週期:60×1000÷6000*0.5=5ms。總旋轉延遲=磁軌號個數×旋轉週期 = 25ms

(1)

FCFS排程:60 -> 90->50->120->150

100號處開始

40+30+40+70+30 = 210

210*1+ 25+0.5 = 235.5ms

總時間=查詢時間+平均旋轉延遲+讀取扇區時間(這一項根據題目要求選擇)

(2)

SCAN :120 -> 150 -> 90 -> 60 -> 50

50+100 = 150

150+25+0.5 = 175.5

(3)

CSCAN:120 -> 150 -> 50 -> 60 -> 90

50+40+100 = 190

190+ 25.5 = 215.5ms

(1)

位示圖表示磁碟的空閒狀態。每一位表示一個磁碟的空閒狀態,共需要16384/8=2048個位元組=2KB,正好放在系統提供的記憶體中

(2)

延遲時間:(60×1000)/ 6000 *0.5 = 5ms

總延遲 :5 × 4 = 20ms

讀取扇區:60 × 1000 / 6000 / 100 = 0.1ms

總讀取扇區時間:0.4ms

CSCAN: 120 -> 30 -> 50 -> 90

(20+90+60)+20+0.4 = 190.4ms