1. 請畫出進程狀態轉換圖。並說明是什么時間引起的每種狀態變遷。
2. 操作系統一般分為幾個組成部分,各部分都具有什么功能?
3. 某個虛擬存儲器的用戶空間共有32個頁面,每頁為1KB,內存為16KB。假定某時刻一用戶的頁表已調入內存的頁面號和物理塊號對照表如下:
頁號 |
物理塊號 |
0 |
5 |
1 |
10 |
2 |
4 |
3 |
7 |
則邏輯地址0x0A5D所對應的物理地址是什么?
4. 假定某進程共有8個頁面,分配了4個物理內存塊,其頁面的使用情況如下列表,如果進程使用了FIFO置換算法,請畫出進程運行時頁面的置換圖,並在圖上標明進程是否換頁。
1, 2, 3, 4, 2, 1, 5, 6, 2, 1, 2, 3, 7, 6, 3, 2, 0
5. 現有一個作業,在段式存儲管理的系統中已為其主存分配,建立的段表內容如下:
段號 |
主存起始地址 |
段長度 |
0 |
120 |
40 |
1 |
760 |
30 |
2 |
480 |
20 |
3 |
370 |
20 |
計算邏輯地址(2,15),(0,60),(3,18)的絕對地址是多少?
注:括號中第一個元素為段號,第二個元素為段內地址。
6. 有4個並發執行的進程A,B,C,D。在執行時它們都要讀共享文件F,但限制進程A和進程B不能同時讀文件F,進程C和進程D也不能同時讀文件F。請問用PV操作管理時:
(1)應怎樣定義信號量?寫出信號量的初值和含義。
(2)寫出能使它們正確執行的程序。
7. 什么是進程?什么是線程?進程與線程有何區別?
8. 什么是死鎖?產生死鎖的原因和必要條件是什么?
9. 假定一個閱覽室可供50個人同時閱讀。讀者進入和離開閱覽室時都必須在閱覽室入口處的一個登記表上登記,閱覽室有50個座位,規定每次只允許一個人登記或注銷登記。
要求:
(1)用PV操作描述讀者進程的實現算法(可用流程圖表示,登記、注銷可用自然語言描述);
(2)指出算法中所用信號量的名稱、作用及初值。
11. 兩個並發執行的進程A和B的程序如下:
進程A
While (true) {
temp = N
temp = temp + 5
N = temp;
}
進程B
While (true) {
temp = N
打印temp的值;
N=0;
}
其中N為整數,初值為4。若進程A先執行了三個循環后,進程A和進程B又並發執行了一個循環,寫出可能出現的打印值。正確的打印值應該是多少?請用P、V操作進行管理,使進程A和B並發執行時不會出現與時間有關的錯誤。
12. 在請求分頁系統中,某用戶的編程空間為16個頁面,每頁1K,分配的內存空間為8K。假定某時刻該用戶的頁表如下圖所示,試問:
(1)邏輯地址084B(H)對應的物理地址是多少?(用十六進制表示)
(2)邏輯地址5000(十進制)對應的物理地址是多少?(用十進制表示)
(3)當該用戶進程欲訪問24A0H單元時,會出現什么現象?
頁號 |
物理塊號 |
0 |
3 |
1 |
7 |
2 |
4 |
3 |
1 |
4 |
12 |
5 |
9 |
6 |
61 |
7 |
21 |
13. 設有一緩沖池P,P中含有20個可用緩沖區,一個輸入進程將外部數據讀入P,另有一個輸出進程將P中數據取出並輸出。若講程每次操作均以一個緩沖區為單位,試用信號量寫出兩個進程的同步算法,要求寫出信號量的初值。
14. 有一只最多能裝2只兔子的鐵籠子,獵人僅能向籠子中放入兔子(每次只能放入1只),若籠子是滿的,則獵人必須等待;飯店老板僅能從籠子中取兔子(每次只能取出1只),若籠子是空的則他也必須等待。假設初始時籠子是空的。定義信號量並初始化,使用P、V操作模擬獵人和飯店老板進程之間的同步與互斥。
15. 有兩個程序,A程序按順序使用CPU 10S,使用設備甲5S,使用CPU 5S,使用設備乙10S,最后使用CPU 10S。B程序按順序使用設備甲10S,使用CPU 10S,使用設備乙5S,使用CPU 5S,使用設備乙10S。在順序環境下先執行A程序再執行B程序,CPU的利用率是多少?提示:CPU利用率=CPU運行時間/程序運行時間。
16. 設系統中只有一台打印機,有三個用戶的程序在執行過程中都要使用打印機輸出計算結果。設每個用戶程序對應一個進程。問:這三個進程間有什么樣的制約關系?使用P、V操作寫出這些進程使用打印機的算法。
17. 某車站售票廳,任何時刻最多可容納20名購票者進入,當售票廳中少於20名購票者時,則廳外的購票者可立即進入,否則需在外面等待。若把一個購票者看作一個進程,用PV操作管理這些並發進程時,應怎樣定義信號量,寫出信號量的初值以及信號量各種取值的含義。
18. 桌上有一只盤子,每次只能放一只水果,爸爸專向盤子中放蘋果,媽媽專向盤子中放橘子,一個兒子專等吃盤子中的橘子,一個女兒專等吃盤子中的蘋果。用P—V操作實現他們這間的同步機制。
19. 請用信號量實現下圖所示的前趨關系。
20. 下圖描述了A,B,C,D共4個進程在某一時刻使用信號量sem的運行情況,其中粗線是進程進入臨界區(即得到信號量),虛線是進程在等待信號量,細線是進程運行,沒有使用信號量。
請回答下列問題:
1. 信號量sem的初值是多少,請說出理由。
2. 說出各個進程被阻塞的原因(虛線部分)。
3. 假設系統中只有這四個進程,在這10秒內,每個進程除了等待信號量,沒有等待其他事件,如果系統共有3顆CPU,請計算下這10秒內系統的CPU使用率。