一、基本概念:填空、選擇、判斷、簡答
1、什麼是操作系統:操作系統是控制和管理計算機硬件和軟件資源、合理地組織計算機工作流程,並方便用戶使用計算機的一組程序集合。
2、常見操作系統
l WindowsXP、Windows 2003、Windows 2000、Windows Vista
l Linux、Unix
l IBMAIX、IBM OS/2
l SunSolais
3、操作系統分類:單道批處理系統、多道批處理系統、分時系統、實時系統、微機操作系統、網絡操作系統、分佈式操作系統、嵌入式操作系統
4、多道批處理系統的優缺點
l 優點:CPU、內存以及I/O設備等資源的利用率高;系統吞吐量(單位時間內完成的總工作量)大。
l 缺點:平均週轉時間(作業進入內存到運行結束時間)長;沒有交互能力。
5、分時系統的特點
l 多路性:多個用戶同時使用一臺計算機;
l 獨立性:用戶之間互不干擾,就像各自獨立使用一臺計算機一樣;
l 及時性:用戶的各種請求(如輸入數據)能夠得到及時的響應;
l 交互性:用戶通過各自的終端,與自己運行的程序進行交流。
6、操作系統的特點
l 併發性:兩個或多個程序在一段時間內“同時”執行。它們不是絕對地並行執行,而是在這一段時間內交替執行。併發性是操作系統最主要的特徵。
l 共享性:系統資源可供多個併發執行的程序共同使用。分爲互斥共享和非互斥共享兩種。
l 虛擬性:通過軟件方式,將一個物理資源變成多個虛擬的對等資源。
l 異步性:多個程序的執行順序和一個程序的執行與中斷次數無法確定。但是其結果始終是確定的。
7、操作系統的功能
l 處理機管理功能:進程控制
l 存儲器管理功能:內存分配、內存保護、內存擴充以及地址轉換
l 設備管理功能:緩衝區管理、設備分配和回收、設備驅動
l 文件和磁盤存儲管理功能:目錄管理、文件讀寫、存取控制、磁盤空間分配、空閒空間管理
l 用戶接口:操作接口(分命令接口和圖形接口)、程序接口(即系統調用)
8、進程的含義和組成:進程是某個程序在一組OS數據集合基礎上的一次運行過程。進程運行所依賴的OS數據集合叫做“進程控制塊”(PCB),所以進程由程序和PCB組成。
9、進程的特點
l 動態性:是程序的一次併發執行過程,具有一定的生命週期。每個進程在執行過程中都會按“執行-暫停-執行”方式推進,因此可以對不同階段的進程定義不同的狀態。
l 併發性:兩個或多個進程在一段時間內“同時”執行,但某一瞬間只執行其中之一。因此實際上這些進程是交替執行的。
l 獨立性:任何進程都是一個程序的一次獨立運行過程,也是系統進行資源分配和調度的單位。
l 異步性:進程按不可預知的速度向前推進,所以OS應提供相應的措施保證其併發性。
l 結構性:每個進程都程序(由代碼和數據組成)和PCB組成。
10、進程的狀態
l 就緒(Ready)狀態:此時進程等待CPU,並獲得了除CPU以外所有的運行所需資源。由於存在多個就緒進程,OS將將它們排列成一個就緒隊列。
l 執行(Running)狀態:進程獲得了CPU,並正在運行的狀態。單CPU系統中只能有一個進程處於執行狀態。
l 阻塞(Blocked)狀態:進程由於等待除CPU以外的其它資源或I/O操作結束,而不能繼續執行的狀態。由於存在多個多個阻塞進程,系統將它們排列成一個或多個阻塞隊列。
11、進程的狀態轉換關係
l 執行到就緒:執行進程被操作系統強制剝奪CPU,從而變成就緒進程。
l 就緒到執行:就緒進程被操作系統調度,從而變成執行進程。
l 執行到阻塞:由於申請資源未獲準,或開始了I/O操作,執行進程將CPU讓給其它就緒進程,從而變成阻塞進程。
l 阻塞到就緒:阻塞進程得到所請求資源,或執行的I/O操作結束,從而變成就緒進程。
12、動態分區式內存分配的含義:根據所要運行的程序大小,在內存中動態地劃分出一個區域,並將程序轉入該區域。等到程序運行結束時又回收此區域。
13、常用的動態分區分配算法:首次適應算法、循環首次適應算法、最佳適應算法、最差適應算法
14、分頁式存儲管理方法的基本原理:用戶程序開始執行時,根據CPU中規定的大小,把用戶程序劃分成多個小塊(稱爲“頁面”)。每個頁面裝入內存中相同大小的不連續區域(該區域稱爲“物理塊”)。同時建立該進程的頁表,記錄哪個頁面裝在哪個塊內。
15、分頁式存儲管理方法的地址變換過程:
l 將程序指令從內存讀入CPU
l 根據塊大小,將指令中的地址劃分成兩個部分:頁號、頁內地址
l 從內存頁表中查找與頁號對應的頁表項,得到塊號;
l 將指令中的頁號替換成塊號,完成地址轉換
16、虛擬存儲器:具有請求調入和置換(交換)功能,能從邏輯上擴充內存容量的存儲管理系統。該系統應由硬件和軟件配合實現。
17、虛擬存儲器的容量:實際容量爲內存容量和交換空間容量,最大容量爲內存容量+外存容量。
18、虛擬存儲器的實現方式:請求分頁、請求分段
19、請求分頁系統的置換算法:將外存的頁面調入內存的同時,將內存中暫時不使用的頁面換到外存的策略。一個好的置換算法應儘量避免“抖動”現象。
20、設備分類:獨佔設備、共享設備、虛擬設備
21、I/O控制方式的類型:程序訪問方式、中斷控制方式、直接存儲器訪問方式、通道方式
22、緩衝區的分類:單緩衝、雙緩衝、循環緩衝、緩衝池
23、文件分類
l 按邏輯結構劃分:有結構文件、無結構文件
l 按物理結構劃分:順序文件、鏈接文件、索引文件
l 按存取控制劃分:可執行文件、只讀文件、可讀寫文件
24、外存空間的分配方式:連續分配、鏈接分配、索引分配
23、磁盤調度算法:對於多個磁盤訪問請求,OS根據不同策略完成不同順序的訪問操作。其目的是減少磁頭移動距離,提高整體訪問性能。
24、常見的磁盤調度算法:先來先服務(FCFS算法)、最短尋道時間優先(SSTF)、掃描算法(SCAN算法)、循環掃描算法(CSCAN算法)
25、進程調度算法:將CPU分配給就緒進程的算法,具體類型包括先來先服務調度算法(FCFS)、短作業(或進程)優先調度算法(SJF)、時間片輪轉調度算法、優先權調度算法
二、綜合題:計算、分析
1、分別計算按FCFS算法和SJF算法調度以下進程時的平均週轉時間和平均帶權週轉時間。
進程名稱 |
A |
B |
C |
D |
E |
到達時間 |
0 |
1 |
2 |
3 |
4 |
服務時間 |
4 |
3 |
5 |
2 |
4 |
解:
FCFS(先來先服務)算法
進程名稱 |
A |
B |
C |
D |
E |
到達時間 |
0 |
1 |
2 |
3 |
4 |
服務時間 |
4 |
3 |
5 |
2 |
4 |
完成時間 |
4 |
7 |
12 |
14 |
18 |
週轉時間 (完成時間-到達時間) |
4 |
6 |
10 |
11 |
14 |
帶權週轉時間 (週轉時間/服務時間) |
1 |
2 |
2 |
5.5 |
3.5 |
平均週轉時間=(4+6+10+11+14)/5=9
平均帶權週轉時間=(1+2+2+5.5+3.5)/5=2.8
SJF(短作業優先)算法
進程名稱 |
A |
B |
C |
D |
E |
到達時間 |
0 |
1 |
2 |
3 |
4 |
服務時間 |
4 |
3 |
5 |
2 |
4 |
完成時間 |
4 |
9 |
18 |
6 |
13 |
週轉時間 (完成時間-到達時間) |
4 |
8 |
16 |
3 |
9 |
帶權週轉時間 (週轉時間/服務時間) |
1 |
8/3 |
16/5 |
3/2 |
9/4 |
平均週轉時間=(4+8+16+3+9)/5=8
平均帶權週轉時間=(1+2.67+3.2+1.5+2.25)/5=2.124
2、在如下分區表的基礎上,按照首次適應和最佳適應三種算法依次分配五個進程P0、P1、P2、P3、P4時的進程開始地址。五個進程的大小爲P0:200k,P1:15K,P2:100K,P3:80K,P4:20K。
分區編號 |
1 |
2 |
3 |
4 |
5 |
6 |
起始地址 |
10K |
200K |
250K |
320K |
500K |
850K |
分區大小 |
100K |
30K |
50K |
150K |
300K |
220K |
解:所有進程的分配結果如下表所示。
首次適應是指根據進程的大小,在分區表中查找第一個能夠裝下進程內容的分區。對於本例來說,P0進程爲200K,在分區表中從左到右查找能夠裝下P0進程的分區(即分區大小>=進程大小)爲5號分區,所以P0進程的起始地址爲5號分區的起始地址500K。分配P0後5號分區就會變成起始地址700K(原始起始地址500K+進程P0大小200K)、大小爲100K(原始大小300K-P0進程大小200K),以此類推,可計算出其他進程的起始地址。
最佳適應是指查找某個分區大小最接近當前進程大小。對於P0進程來說,最接近其容量(必需大於等於)的分區爲6號分區,所以P0進程在最佳適應分配算法的處理下,起始地址爲6號分區的起始地址850K。分配P0進程後6號分區變成起始地址爲1050K,大小爲20K的分區,可以最佳裝入P1進程,因此P1進程的起始地址爲1050K。
答題時上述分析過程不需要寫出,只需要寫出下面的表格即可。
|
P0 |
P1 |
P2 |
P3 |
P4 |
首次適應: |
500K |
10K |
320K |
25K |
200K |
最佳適應 |
850K |
1050K |
10K |
320K |
200K |
3、一個分頁式存儲管理系統中頁面大小爲2K(2048字節),某進程的頁表內容如下表所示。請將該進程的邏輯地址1FD3和205C轉換爲物理地址。
頁號 |
0 |
1 |
2 |
3 |
4 |
塊號 |
3 |
7 |
12 |
13 |
31 |
解:
(1FD3)16=1*163+15*162+13*161+3*160=(8147)10,因此頁號=(8147整除2048)=3,頁內偏移地址=(8147取餘2048)=2003,查頁表可知頁號3對應的塊號爲13,即3號頁裝入13號塊,因此物理地址=13*2048+2003=28627。
(205C)16=2*163+0*162+5*161+12*160=(8284)10,因此頁號=(8284整除2048)=4,頁內偏移地址=(8284取餘2048)=92,查頁表可知4號頁裝入31號塊,因此物理地址=31*2048+92=63580。
4、在一個請求分頁虛擬存儲器系統中,假定某個進程將按如下順序訪問頁面:
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6,則:
(1)在內存中只爲該進程分配3個物理塊,請使用先進先出置換算法計算出訪問過程中所發生的置換次數;
(2)如果爲該進程分配4個物理塊,並使用LRU算法,置換次數又爲多少?
解:
先進先出算法:
1 |
2 |
3 |
4 |
2 |
1 |
5 |
6 |
2 |
1 |
2 |
3 |
7 |
6 |
3 |
2 |
1 |
2 |
3 |
6 |
|
|
3 |
4 |
4 |
1 |
5 |
6 |
2 |
1 |
1 |
3 |
7 |
6 |
6 |
2 |
1 |
1 |
3 |
6 |
|
2 |
2 |
3 |
3 |
4 |
1 |
5 |
6 |
2 |
2 |
1 |
3 |
7 |
7 |
6 |
2 |
2 |
1 |
3 |
1 |
1 |
1 |
2 |
2 |
3 |
4 |
1 |
5 |
6 |
6 |
2 |
1 |
3 |
3 |
7 |
6 |
6 |
2 |
1 |
|
|
|
√ |
|
√ |
√ |
√ |
√ |
√ |
|
√ |
√ |
√ |
|
√ |
√ |
√ |
√ |
√ |
置換次數爲14次
LRU算法:
1 |
2 |
3 |
4 |
2 |
1 |
5 |
6 |
2 |
1 |
2 |
3 |
7 |
6 |
3 |
2 |
1 |
2 |
3 |
6 |
|
|
|
4 |
2 |
1 |
5 |
6 |
2 |
1 |
2 |
3 |
7 |
6 |
3 |
2 |
1 |
2 |
3 |
6 |
|
|
3 |
3 |
4 |
2 |
1 |
5 |
6 |
2 |
1 |
2 |
3 |
7 |
6 |
3 |
2 |
1 |
2 |
3 |
|
2 |
2 |
2 |
3 |
4 |
2 |
1 |
5 |
6 |
6 |
1 |
2 |
3 |
7 |
6 |
3 |
3 |
1 |
2 |
1 |
1 |
1 |
1 |
1 |
3 |
4 |
2 |
1 |
5 |
5 |
6 |
1 |
2 |
2 |
7 |
6 |
6 |
6 |
1 |
|
|
|
|
|
|
√ |
√ |
|
|
|
√ |
√ |
√ |
|
|
√ |
|
|
|
置換次數爲6次
5、某磁盤有8192個磁道,編號爲0~8191,在完成了磁道1250處的請求後,當前正在磁道3500處爲一個請求服務。若此時請求隊列的先後順序爲1000,4000,3300,5600,1300,6000,1200,2500。回答下述問題:
(1)採用SSTF(最短尋道時間優先)算法完成上述請求。請寫出磁頭移動的順序,並計算平均尋道長度。
(2)採用SCAN(電梯)算法完成上述請求。請寫出磁頭移動的順序,並計算平均尋道長度。
解:
SSTF(最短尋道時間優先)算法:哪個進程的尋道位置與當前位置最近,先爲該進程服務
(1) 3500->3300 移動200
(2) 3300->4000 移動700
(3) 4000->2500 移動1500
(4) 2500->1300 移動1200
(5) 1300->1200 移動100
(6) 1200->1000 移動200
(7) 1000->5600 移動4600
(8) 5600->6000 移動400
平均尋道長度=(200+700+1500+1200+100+200+4600+400)/8= 1112.5
SCAN(電梯)算法:模仿電梯動作規律,由於磁頭從1250到達3500,因此先向大磁道號方向處理,再向小磁道號方向處理
(1) 3500->4000 移動500
(2) 4000->5600 移動1600
(3) 5600->6000 移動400
(4) 6000->3300 移動2700
(5) 3300->2500 移動800
(6) 2500->1300 移動1200
(7) 1300->1200 移動100
(8) 1200->1000 移動200
平均尋道長度=(500+1600+400+2700+800+1200+100+200)/8= 937.5