(操作系统题目题型总结)第二章:处理器管理
費翔林操作系統課后題
(1)思考題
1:什么是PSW?它有何作用 ★★★
【答案】
操作系統將程序運行時的一組動態信息匯集在一起,稱為程序狀態字PSW,并放在處理器的一組特殊寄存器里,以方便系統的控制和管理
- PSW用來指示運行程序狀態、控制指令執行順序,并且保留和指示與運行程序有關的各種信息,主要作用是實現程序狀態的保護和恢復
2:為什么要把機器指令分為特權指令和非特權指令
【答案】
操作系統是系統資源的管理者和控制者,所以操作系統程序具有較高特權,而應用程序權限較低,前者可以使用全部機器指令,如果讓應用程序也能執行全部整理,那么在運行時極易造成系統混亂,造成系統或用戶信息被破壞,所以要分為特權指令和非特權指令
3:硬件如何發現中斷事件?發現中斷事件后應該做什么工作
由外部設備、時鐘部件或其他機器發出的,發現中斷源并產生中斷的硬件稱為中斷裝置,這些硬件包括中斷邏輯線路和中斷寄存器。需要做4件事情
- 發現中斷源
- 保護現場
- 轉向中斷服務程序
- 恢復現場
4:試分別從中斷事件的性質、來源和實現角度對其進行分類★★★
可以將中斷分為外中斷和內中斷
- 外中斷:又稱為中斷,是指來自處理器之外的中斷信號,包括時鐘中斷,鍵盤等。外中斷又可以分為可屏蔽和不可屏蔽中斷
- 內中斷:又稱為異常,是指來自處理器內部的中斷信號。具體可分為訪管中斷、硬件故障中斷、程序性異常
5:概述程序性中斷的處理方式
【答案】
應用程序錯誤有以下幾類:
- 語法錯誤:可由編譯程序發現并報錯
- 邏輯錯誤:可由測試程序發現并報錯
- 程序運行時異常(例如浮點異常):不同用戶往往有不同的處理要求,借助于信號機制,操作系統可以將捕獲的中斷事件原封不動地轉交給應用程序自行處理
6:何為中斷優先級?為什么要對中斷事件進行分級?
- 中斷是隨機發生的,在計算機執行的每一瞬間都可能有多個中斷同時出現,這時中斷裝置如何響應這些中斷便成了一個問題。因此,可以按照緊迫程度把中斷源進行分級,級別高中斷自然擁有優先響應的權利。所以中斷裝置所預設的響應順序就稱為中斷優先級
- 因為優先級是按照中斷請求的輕重緩急程度而定的,如果嚴重的事件得不到及時響應將會導致嚴重后果
7:為什么中斷事件的處理可以嵌套,但是不能遞歸
【答案】
因為在計算機系統運行過程中可能同時出現多個中斷,或者前一個中斷尚未處理完接著又發生新的中斷,于是CPUU暫停正在運行的中斷處理程序,轉而執行新的中斷處理程序,這就是中斷嵌套
8:試述中斷在操作系統中的重要性及主要作用★★★
【答案】
在計算機運行過程中,可能會有很多隨機事件發生,如硬件故障、網絡通信、人機交互等,因此必須對這些事件及時處理。所以中斷正是在這種需求下提出的,使用中斷可以暫停當前正在運行的程序,轉去處理緊急事件,處理完畢還可以回到原來的位置繼續執行。中斷大大提高了計算機的靈活性,可靠性和并行性
9:試述時鐘中斷在操作系統中的重要性及其主要作用
【答案】
時鐘中斷是一種硬中斷,由時間硬件(系統定時器,一種可編程硬件)產生,CPU處理后交由時間中斷處理程序來完成更新系統時間、執行周期性任務等。利用時鐘中斷可以確保操作系統在必要時獲得控制權,陷入死循環的進程最終會因為時間片耗盡而被迫讓出處理機
10:試述中斷屏蔽的作用★★★
【答案】
中斷屏蔽是指禁止CPU響應中斷或禁止中斷產生,前者指硬件產生中斷請求后,CPU暫時不予響應的狀態,等到直到中斷開放后,被屏蔽的中斷才能被相應并獲得處理;后者指可引起中斷的事件產生時,硬件不允許提出中斷請求而不通知處理器
作用如下
- 延遲或禁止某些中斷的響應,系統程序執行過程中不希望產生干擾事件,以免共享數據結構收到破壞
- 協調中斷響應與中斷處理的關系,確保高優先級中斷可以打斷低優先級中斷,反之則不能
- 防止同級中斷相互干擾,在處理某優先級中斷事件時,必須屏蔽該級中斷,以免造成混亂
11:操作系統如何處理多重中斷事件
【答案】
對于多重中斷,可能是同一優先級的不同中斷,也可能是不同優先級的中斷,對于前者,通常由同一個中斷處理程序按自左至右的順序逐個處理并清除之;對于后者,可以分不同情況處理
- 串行處理:在運行一個中斷處理程序時,禁止再次發生中斷,可以通過屏蔽終端實現
- 嵌套處理:這是系統應負責保護被中斷的中斷處理程序現場,然后轉向處理新中斷事件的中斷處理程序,以便在結束時可以返回原來的中斷處理程序繼續運行
- 即時處理:在運行中斷處理程序時,如果出現程序性中斷事件,在一般情況下,表明此時中斷處理程序有異常,應對其立即響應并做處理
12:什么進程?計算機操作系統為何要引入進程★★★
【答案】
- 在多道程序系統出現后,為了刻畫系統內部動態狀況,描述運行程序活動規律,為此引入了進程的概念
- 從原理上看,進程是支持程序執行的一種系統機制,他對處理器上運行程序的活動規律進行抽象;從實現角度看,進程則是一種數據結構,用來準確刻畫運行程序的狀態和系統動態變化狀況
- 引入的主要目的:刻畫程序的并發性和解決資源的共享性
13:進程有哪些屬性★★★
【答案】
- 動態性:進程是程序在數據集合上的一次執行過程,而程序則是一組有序指令序列
- 共享性:同一程序同時運行于不同數據集合上時構成不同進程
- 獨立性:每個進程是操作系統的一個獨立實體,有自己的虛存空間,程序計數器和內部狀態
- 制約性:進程因為共享資源或協同工作會產生相互制約關系,造成進程運行的異步性
- 并發性:多個進程的執行再時間上可以重疊,在單處理系統中可并發執行
14 :進程最基本的狀態有哪些?★★★
【答案】
- 運行態:進程占有處理器
- 就緒態:進程具備運行條件,正等待系統分配處理器
- 阻塞態:進程不具備運行條件,正在等待某個事件完成
15:五態模型的進程中,新建態和終止態的主要作用是什么
【答案】
- 新建態對應于進程被創建時的狀態,尚未進入就緒隊列。此狀態內可以為進程分配所需要的資源和建立必要的管理信息
- 終止態是指進程完成任務到達正常結束點,或出現無法克服的錯誤而異常終止,或被操作系統及有終止權的進程所終止時所處的狀態,處于終止態的進程不再被調度執行,下一步將會被系統撤銷
16:試說明引發創建一個進程的事件★★★
17:什么是進程的掛起狀態
【答案】
掛起進程等同于不在內存的進程,因此掛起進程將不參與低級調度直到它們被對換進內存,有如下特征
- 該進程不能立即被執行
- 該進程可能會等待事件,但所等待的事件是獨立于掛起條件的,事件結束并不能導致進程具備執行條件
- 該進程進入掛起狀態是由于操作系統、父進程或進程自身阻止它的運行
- 結束進程掛起狀態的命令只能通過操作系統或父進程發出
18:試述組成進程的基本要素,并說明其作用★★★
【答案】
- 進程控制塊(PCB):每個進程捆綁一個,用來存儲進程的標志信息,現場信息和控制信息
- 進程程序塊:是被進程執行的程序,規定進程一次運行所應該完成的功能
- 進程核心塊:每個進程捆綁一個,進程在核心態工作時使用,用來保存中斷/異常現場,局部變量等
- 進程數據塊:是進程的私有地址空間,存放各種私有數據
19:何謂PCB,它包含哪些基本信息★★★
【答案】
每個進程有且僅有一個進程控制塊(PCB),它是進程存在的唯一標識,是操作系統用來記錄和刻畫進程狀態及環境信息的數據結構,是進程動態特征的話匯集,也是操作系統掌握進程的唯一資料結構和管理進程的主要依據。主要包含
- 標識信息:用于唯一表示一個進程
- 現場信息:保留進程在運行時存放在處理器現場中的各種信息
- 控制信息:用于管理和調度進程
20:何謂進程隊列
【答案】
- 進程隊列:并發系統中往往同時存在很多進程,其狀態千差萬別。因此為了便于對進程進行管理和調度,常常將進程的PCB通過某種方法組織起來。一般來說,把處于統一狀態的所有進程的PCB鏈接在一起的數據結構稱之進程隊列
21:請列舉組織進程隊列的各種方法
- 鏈接方式:對于同一狀態進程的PCB,通過PCB中的鏈接指針將其鏈接成隊列
- 索引方式:利用索引表記錄不同狀態進程的PCB地址或在PCB中的編號,系統會建立若干索引表
22:試述內核創建進程所要做的主要工作★★★
【答案】
- 在進程列表中增加一項,從PCB池中申請一個空閑PCB,為新進程分配一個進程標識符
- 為新進程的進程映像分配地址空間,以便容納進程實體,由進程管理程序確定加載進地址空間中的程序
- 為新進程分配各種資源
- 初始化PCB,如進程標識符、處理器初始狀態、進程優先級等
- 把新進程的狀態設置為就緒態,并將其移入就緒隊列
- 通知操作系統某些模塊
23:什么是進程上下文
【答案】
進程上下文一般在進程切換中提到,也就是當進程要切換時關于當前進程的寄存器內容以及內存頁表的詳細信息等等內容,一句話概括也就是關于描述進程的信息
24:什么是進程切換?簡述進程切換的主要步驟★★★
【答案】
【答案】
從用戶態到內核態或從內核態到用戶態的轉換是處理器的狀態轉換,此時仍在同一個進程中運行,進程仍然在自己的上下文中執行,僅處理器狀態發生了變化。處理器狀態轉換不同于進程上下文切換,在大多數情況下,狀態轉換不一定引起上下文切換。處理器上執行進程在任何時刻必定處于以下4個活動范圍之內
- 用戶空間中,處于進程上下文,應用進程在用戶態下運行,使用用戶棧
- 內核空間中,處于進程上下文,內核代表參加在內核態下運行,使用核心態
- 內核空間中,處于中斷上下文,與任何進程無關,中斷服務例程在內核態下處理特定中斷
- 內核空間中,內核線程運行于內核態
25:試述引起撤銷一個進程的主要事件,系統撤銷進程時所作的主要工作有哪些
【答案】
引起進程撤銷的事件有
- 進程運行結束
- 進程執行非法指令
- 進程在用戶態執行特權指令
- 進程運行時間超過所分配的最大時間配額
- 進程等待時間超過所設定的最長等待時間
- 越界錯誤
- 對共享內存區的非法使用
- 出現程序性故障
- I/O操作故障
- 操作員干預等
所做工作
- 根據撤銷進程的標識號從相應隊列中查找并移除它
- 將此進程所擁有的的資源歸還給父進程或操作系統
- 若此進程擁有子進程,先撤銷其所有子進程以防止他們脫離控制
- 回收PCB并將其歸還至PCB池
- 轉向進程調度程序工作
26:列舉進程被阻塞和喚醒的主要事件
【答案】
阻塞步驟
- 停止進程運行,將現場信息保存到PCB
- 修改進程PCB的有關內容,例如進程狀態由運行態改為阻塞態等,并把狀態已修改的進程移入相應事件的等待隊列
- 轉向進程調度程序,調度其他進程運行
喚醒步驟
- 從相應等待隊列中移出進程
- 修改進程PCB的有關內容,例如將狀態改為就緒態等,并將進程移入就緒隊列
- 若被喚醒的進程比當前運行進程的優先級更高,則重新設置調度標志
27:為什么要引入線程★★★
【答案】
- 引入進程是為了使多個程序更好的并發執行,以便改善資源利用率和提高系統效率
- 引入線程是為了減少程序并發執行時所付出的時空開銷,使得并發粒度更細,并發性更好
28:試述多線程環境中進程和線程的定義★★★
- 進程:操作系統中除處理器以外的資源分配和保護的基本單位,它有一個獨立的虛擬地址空間,用來容納進程映像,并以進程為單位對各種資源,如文件,I/O設備等資源實施保護
- 線程: 是進程中能夠并發執行的實體,是進程的組成部分,也是處理器調度和分配的基本單位,線程可以共享進程的內存空間和資源
于是,進程可以分為兩個部分:資源集合和線程集合。進程要支持線程運行,為線程提供虛擬地址空間和各種資源,進程封裝管理信息,包括對指令代碼,全局數據、打開的文件和信號量等共享部分的管理;線程封裝執行信息,包括狀態信息,寄存器,執行棧和局部變量等。由于線程具有傳統進程的諸多特征,所以線程也叫做輕量級進程(LWP)
29:什么是線程控制塊,它有哪些主要內容★★★
【答案】
線程控制塊(Thread Control Block,TCB)是與進程的控制塊(PCB)相似的子控制塊,只是TCB中所保存的線程狀態比PCB中保存少而已
30:試從調度性、并發性、 擁有資源和系統開銷4個方面對進程和線程進行比較★★★
【答案】
-
調度性: 線程在OS中作為調度和分派的基本單位,進程只作為資源擁有的基本單位
-
并發性: 進程可以并發執行,一個進程的多個線程也可以并發執行
-
擁有資源: 進程始終是擁有資源的基本單位,線程只擁有運行時必不可少的資源,本身基本不擁有資源,但可以訪問隸屬進程的資源
-
系統開銷: 操作系統在創建、撤銷和切換進程時付出的開銷遠大于線程
31:什么是內核級線程、用戶級線程和混合式線程,比較他們★★
【答案】
-
內核級線程:線程管理工作由內核完成,并提供線程API來使用線程。內核需要為進程及進程中的單個線程維護現場信息,所以應在內核空間中建立和維護進程控制塊及線程控制塊,內核調度在線程的基礎上進行
-
用戶級線程:是指線程的管理工作由應用程序來做,在用戶空間內實現,內核不知道線程的存在。應用程序需要通過線程庫進行程序設計,再與線程庫連接后運行來實現多線程
-
混合式線程:即支持用戶級線程,又支持內核級線程
32:掛起狀態與線程有什么關系
【答案】
由于線程不是自愿擁有單位,掛起狀態對于線程是沒有意義的。如果進程在掛起后被對換出內存,那么它的所有線程就會因共享地址空間而被全部對換出去
33:試述并發多線程程序設計的主要優點及其應用★★★
【答案】
34:列舉線程的組織方式應用場合★
【答案】
組織方式
- 調度員-工作者模式:一個線程擔任調度員,接受和處理工作請求,其他線程但仍工作者
- 組模式:進程中的各個線程都可以取得并處理工作請求
- 流水線模式
應用:
- 前臺和后臺工作
- Server-Client應用模式
- 任務異步處理
- 用戶界面設計
35:何謂訪管指令?它是特權指令嗎
【答案】
訪管指令是一條可以在用戶態下執行的指令,用戶程序中凡是要調用操作系統功能時就安排一條訪管指令。當處理器執行到訪管指令時就產生一個中斷事件(自愿中斷),暫停用戶程序的執行,而讓操作系統來為用戶服務
36:處理器調度分為哪幾種類型★★★
【答案】
37:試述衡量一個處理器調度算法優劣的主要標準
【答案】
38:作業和進程的關系
【答案】
作業是任務實體,進程是完成任務的執行實體;沒有作業任務,進程無事可做,沒有進程,作業無法完成。作業的概念更多用于批處理系統中,進程更多用于多道程序設計系統中
39:試述作業調度和低級調度之間的關系
【答案】
作業調度是指按照某種算法從后背作業隊列中選擇部分作業進入內存運行,當作業運行結束時完成善后工作,主要完成以下任務
- 選擇作業:
- 分配資源
- 創建進程:每當選中作業將其裝入內存時,系統就為此作業創建進程,生成PCB及各種進程實體,這些進程將在低級調度控制下占有處理器運行
40:試述中級調度的主要作用
【答案】
中級調度就是要決定處于掛起狀態的進程重新調入內存。 因為在引入虛擬存儲技術后,可以將暫時不能運行的進程調至外存等待,等它重新具備了運行條件且內存又有空閑時,再重新調入內存,這樣做可以提高內存利用率和系統吞吐量
41:簡述各調度算法的思想
【答案】
- 先來先服務算法思想(FCFS):先來后到,每次從就緒隊列選擇最優先進入隊列的進程,然后一直運行,直到進程退出或被阻塞,才會繼續在隊列中選擇下一個第一個進程繼續運行,屬于非搶占
- 最短作業優先調度算法思想(SJF):最短(要求服務時間最短)的作業/進程優先得到服務,既可以用于作業調度,也可以用于進程調度
- 最短剩余時間優先算法思想(SRTN是SJF的搶占式版本):
- 高響應比優先調度算法思想(HRRN):該算法綜合考慮作業/進程的等待時間和要求服務的時間。在每次調度時先計算各個作業/進程的響應比,選擇響應比最高的作業/進程為其進行服務,屬于非搶占
- 時間片輪轉調度算法思想(RR):
- 優先級調度算法思想(HPF):
- 多級反饋隊列調度算法思想(MFQ)
1.進程創建及其對應事件
2.進程終止及其對應事件
3.進程切換及其對應事件
(2)應用題
【答案】
(1)
FCFS
SJF
非搶占HPF
(2)
FCFS
- 周轉時間分別為:job1=10,job2=11,job3=13,job4=14,job5=19
- 平均周轉時間為:(10+11+13+14+19)/5=13.4
- 帶權周轉時間分別為:job1=10/10=1,job2=11/1=11,job3=13/2,job4=14/1,job5=19/5
- 平均帶權周轉時間:(1+11+6.5+14+19/5)/5=1.82
SJF
- 周轉時間分別為:job1=19,job2=1,job3=4,job4=2,job5=9
- 平均周轉時間為:(19+1+4+2+9)/5=7
- 帶權周轉時間分別為:job1=19/10,job2=1/1=1,job3=4/2,job4=2/1,job5=9/5
- 平均帶權周轉時間:(19/10+1+4/2+2+9/5)/5=0.43
非搶占HPF
- 周轉時間分別為:job1=16,job2=1,job3=18,job4=19,job5=6
- 平均周轉時間為:12
- 平均帶權周轉時間:(16/10+1+9+19+1.2)/5=6.36
【答案】
- 周轉時間分別為:job1=60,job2=120,job3=50,job4=50
- 平均周轉時間為:70
- 平均帶權周轉時間:(1+120/50+50/30+50/10)/5=2.52
【答案】
(1)先來先服務
(2)最高響應比優先算法
當Job1在12:00結束時,job3和job2的響應比為
- job3=95+2525=4.8\frac{95+25}{25}=4.82595+25?=4.8
- job2=110+6060=2.8\frac{110+60}{60}=2.860110+60?=2.8
所以在12:00時選擇job3調度
所以高響應比優先算法要由于先來先服務算法
(1)分別給出6個颙的執行時間序列,也即開始執行時間,作業完成時間,作業周轉時間
(2)計算平均作業周轉時間
【答案】
總結
以上是生活随笔為你收集整理的(操作系统题目题型总结)第二章:处理器管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux系统挂载操作mount详解
- 下一篇: 操作系统之I/O管理:1、I/O控制器、