北航操作系統2011年期末試卷試題解析

操作系統試卷(2011年)參考答案及部分解析

一、名詞解釋題(每題4分,共24分)
1、文件控制塊
答案:文件控制塊是操作系統爲管理文件而設置的數據結構,存放了爲管理文件所需的所有有關信息。文件控制塊是文件存在的標誌
文件控制塊一般包括的內容:
文件名
文件類型
物理地址
文件大小
最近訪問日期
最近修改日期
文件主標識
訪問權限

2、臨界資源
答案:一次僅允許一個進程使用的共享資源。

3、虛擬存儲器
答案:虛擬存儲技術是在主存和輔存之間,增加部分軟件及必要的硬件支持,使主、輔之間的信息交換、程序的重定位、地址轉換都能自動進行,從而主、輔存形成一個有機的整體,這種存儲器的概念成爲虛擬存儲器。

4、死鎖
答案:兩個以上的進程相互等待一個永遠不可能發生的條件出現,這種僵

5、頁表
答案:頁式存儲管理使用的數據結構,主要用於邏輯地址到物理地址的映射。

二、判斷題(每題1分,共6分)
1、由於P、V操作描述同步、互斥等問題的能力不足,所以有必要引入其它的通訊原語或機制,如send, receive或Monitor等。 (F)
解析:
在這裏插入圖片描述
P/V操作完全可以實現所有要求

2、信號量是隻允許由P/V操作進行訪問和修改的數據結構。 (T)
解析:
在這裏插入圖片描述

3、在請求頁式存儲管理中,頁面淘汰所花費的時間不屬於系統開銷。(F)
解析:對操作系統進行管理的操作都屬於系統開銷

4、預防死鎖就是破壞死鎖存在的某個必要條件。(T)

5、磁盤是一類典型的字符設備。 (F)
解析:
有兩類設備。
塊設備:系統中可以隨機訪問(不按順序訪問)數據,這種設備稱爲塊設備。比如我們常用的磁盤就是一種典型的塊設備。

字符設備: 系統中按字符流的方式有序的訪問數據,這種設備稱爲字符設備。比如我們常用的鍵盤。
https://blog.csdn.net/longwang155069/article/details/43418891

三、簡答題(每題5分,共20分)
1、如果普通用戶程序可以自行修改頁表,會產生什麼問題?
答案:頁表用於完成地址映射。如果用戶可以修改頁表,那麼該用戶就可以訪問任何地址,從而產生安全問題。

2、進程與線程之間有何區別?
答案:
進程是操作系統中併發單元,也是能分得資源的最小單位。線程是在進程內部活動的併發單元,它只是進程行爲的一條獨立的執行路線,它能使用的資源僅限於它所在的進程範圍之內,惟一能通過線程獲得的資源就是使用處理機的時間片。有時也把線程稱爲輕量級進程。

3、簡述並比較SCAN(掃描)磁盤調度算法與最短尋道時間優先算法。
答案:最短尋道時間優先算法選擇訪問磁道與當前磁頭所在磁道距離最近的進程,容易產生飢餓現象。SCAN優先考慮磁頭移動方向(按照一個方向移動)。
解析:
在這裏插入圖片描述

4、信號量的物理意義是什麼?
答案:信號量的值爲正時,表示系統中某類資源的數量;爲負時,表示等待進程個數。

四、資源分配(共10分)
某計算機系統中有8 臺打印機,有k個進程競爭使用,每個進程最多需要3 臺打印機. 該系統可能會發生死鎖的k 的最小值是多少?並說明理由。
答案:k=4.
分析:假設k=3,3 個進程共享8 臺打印機,每個進程最多可以請求3 臺打印機,若3個進程都分別得到2 臺打印機,系統還剩下2 臺打印機,接下去無論哪個進程申請打印機,都可以得到滿足,3 個進程都可以順利執行完畢,這種情況下不會產生死鎖。假設k=4,4個進程共享8 臺打印機,都得不到滿足,產生了互相等待,可能會發生死鎖。

五、進程同步(共15分)
(1)寫出P、V操作的定義。(5分)
(2)某銀行提供1個服務窗口和10個供顧客等待的座位。顧客到達銀行時,若有空座位,則到取號機上領取一個號,等待叫號。取號機每次僅允許一位顧客使用。當營業員空閒時,通過叫號選取一位顧客,併爲其服務。試用PV操作同步顧客和營業員的活動過程。(10分)
答案:
(1)S爲一個信號量,P、V操作可描述爲:
P(S): while S<=0 do skip
S := S-1;
V(S): S := S+1;
(2) 程序結構2分
信號量初值2分
程序邏輯6分

六、存儲管理(15分)
某計算機提供給用戶232字節的虛擬存儲空間,虛擬存儲器採用一級頁表實現,頁面大小是4K字節。某進程的頁表內容如下表所示,操作系統最多爲進程分配2頁物理內存,採用最近最少使用置換算法(LRU)和局部淘汰策略。設又虛地址訪問序列2111H、191AH、2315H,請問:
(1)進程頁表佔用多少內存空間?請說明理由。(5分)
(2)191AH的物理地址是多少?請說明理由。(10分)
在這裏插入圖片描述

答:
(1)4MB
解析:2^32/ 212=220
2^20*4=4M
解析:一個頁表大小爲4K,因此需要2^20個頁表
每個頁表項對應一個頁表,但每個頁表項只有4B,因此爲4M

(2)物理地址爲1091AH。
虛地址191AH被分成兩部分,頁號P=1,頁內偏移D=91AH。由於進程工作集爲2,需要替換第0頁,因此191AH的對應的物理塊號爲10H。物理地址爲10H*4K+91AH=1091AH。
注:已經訪問過對應頁號爲2的2111H,因此按照LRU原則應該訪問0(頁號1的內容不存在)
最多分配兩頁內存,故不能再分配,只能從已經分配的內容中提取
工作集概念:
https://blog.csdn.net/zhuliting/article/details/6118702

七、併發問題(10分)
下面是兩個併發執行的進程。它們能正確運行嗎?若不能請舉例說明,並改正之:
cobegin
var x:integer;
procedure P1 procedure P2
var y,z:integer; var t,u:integer;
begin begin
x:=1; x:=0;
y:=0; t:=0;
if x1 then y:=y+1; if x1 then t:=t+2;
z:=y; u:=t;
end end
coend

答:不能正確運行。例如:先執行完整個P1,再執行P2,那麼P1中y的值爲1。但是如果執行到P1:x:=1;時,切換到P2執行,然後再執行P1,那麼那麼P1中y的值爲0。同樣條件的兩次運行,其結果是不確定的。
有很多種改正方法,下面是一個例子。
cobegin
var empty: semaphore := 0;
var x:integer;
procedure P1 procedure P2
var y,z:integer; var t,u:integer;
begin begin
P(empty);
x:=1; x:=0;
y:=0; t:=0;
if x1 then y:=y+1; if x1 then t:=t+2;
z:=y; u:=t;
V(empty);
end end
coend

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章