操作系統(tǒng)原理習(xí)題與實驗指導(dǎo)
定 價:29 元
叢書名: 21世紀高等學(xué)校計算機教育實用規(guī)劃教材
- 作者:于世東,王泓,孫笑微
- 出版時間:2017/5/1
- ISBN:9787302465416
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP316
- 頁碼:135
- 紙張:膠版紙
- 版次:1
- 開本:16K
操作系統(tǒng)原理是計算機及相關(guān)專業(yè)的重要基礎(chǔ)課, 對學(xué)生理解計算機系統(tǒng)結(jié)構(gòu)、進行高級程序開發(fā)等方面有著重要的理論指導(dǎo)作用。該課程對學(xué)生來說感覺理論性較強。
1.“以問題為導(dǎo)向,以學(xué)生為中心”為指導(dǎo)思想,突出學(xué)生應(yīng)用知識思考和解決問題的能力是本教材的主線。通過典型例題解析啟發(fā)學(xué)生的思維,加深對理論知識的理解。自測題全面且具代表性,對于重點、難點的問題既給出了解答又有解題分析。
2.通過自測題讓學(xué)生獨立思考,了解自己對知識的掌握程度,也可作為考研等的復(fù)習(xí)資料。實驗內(nèi)容包括:高響應(yīng)比作業(yè)調(diào)度、時間片輪轉(zhuǎn)進程調(diào)度、進程同步與互斥、內(nèi)存分配與回收、FIFO頁面置換算法、LRU頁面置換算法、獨占設(shè)備分配與回收、銀行家算法,共8個實驗。每個實驗首先給出了明確的實驗?zāi)繕撕蛯嶒瀮?nèi)容,然后講明實驗原理并給出相應(yīng)的知識點提示,*后給出參考程序和運行效果圖。通過這些典型實驗讓學(xué)生對理論問題有更直觀的認識和體驗,激發(fā)他們學(xué)習(xí)的興趣和創(chuàng)新的動力。
3.本書的作者都是講解操作系統(tǒng)課程多年的一線教師,內(nèi)容上吸收了眾多相關(guān)資源的精華,同時結(jié)合教學(xué)中的實踐經(jīng)驗合理地進行內(nèi)容的取舍,使習(xí)題具有代表性,實驗內(nèi)容典型豐富而且有利于培養(yǎng)學(xué)生的創(chuàng)新應(yīng)用能力。另外提供相應(yīng)的PPT課件滿足實驗課堂教學(xué)、課后練習(xí)和學(xué)生自學(xué)的需要。
操作系統(tǒng)是計算機系統(tǒng)的重要組成部分,是用戶使用計算機的基礎(chǔ),作為計算機專業(yè)的核心課程,不僅高等學(xué)校計算機相關(guān)專業(yè)的學(xué)生必須學(xué)習(xí),從事計算機行業(yè)的人員也需要深入了解。由于操作系統(tǒng)具有概念性強、內(nèi)容靈活、所涉及概念和算法比較抽象的特點,因此初學(xué)者往往找不到感覺,面對習(xí)題更是無從下手。此外,操作系統(tǒng)是一門實踐性非常強的學(xué)科,只看書、做習(xí)題是絕對不夠的,必須在實踐和應(yīng)用中加以深刻的體會。因此,在操作系統(tǒng)的教學(xué)中,除了課堂教學(xué)外,必須有一定學(xué)時的實驗課。
作者在多年教學(xué)實踐和科學(xué)研究的基礎(chǔ)上,結(jié)合操作系統(tǒng)教學(xué)大綱、研究生入學(xué)考試要求和全國計算機技術(shù)與軟件專業(yè)技術(shù)資格考試大綱,并在參考了國內(nèi)外多種操作系統(tǒng)資料的基礎(chǔ)上編寫了本書。
本書與清華大學(xué)出版社出版的《操作系統(tǒng)原理》教材相配套,全書共分為9章,具體內(nèi)容包括:操作系統(tǒng)引論、進程與線程、進程并發(fā)控制、內(nèi)存管理、頁式和段式內(nèi)存管理、I/O管理、文件管理、死鎖、實驗指導(dǎo)。
前8章每一章的內(nèi)容分為例題解析、課后自測題、自測題答案及分析三部分。通過例題解析啟發(fā)學(xué)生的思考,引導(dǎo)學(xué)生如何去思考問題、解決問題。通過課后自測題學(xué)生可以進行自我檢驗,教師也可以對學(xué)生進行測試。自測題答案及分析部分給出了詳細的解答并對難點問題進行了分析,有利于學(xué)生平時的學(xué)習(xí),也可作為考研的復(fù)習(xí)資料。
第9章實驗指導(dǎo)包括:高響應(yīng)比作業(yè)調(diào)度、時間片輪轉(zhuǎn)進程調(diào)度、進程同步與互斥、內(nèi)存分配與回收、FIFO頁面置換算法、LRU頁面置換算法、獨占設(shè)備分配與回收和銀行家算法。每一個實驗內(nèi)容包括:實驗?zāi)康暮鸵、實驗?nèi)容、實驗原理與提示、參考程序。通過實驗可以對理論知識進行鞏固和加深理解,也激發(fā)了學(xué)生的探索熱情,促進學(xué)生進行創(chuàng)新的思考和應(yīng)用,可以提出新的算法和方法來改進目前的操作系統(tǒng)。
本書第3、4章由于世東編寫,第6~8章由王泓編寫,第1、2、5章由孫笑微編寫,第9章由于世東、王泓、孫笑微共同編寫。東北大學(xué)于楊博士審閱了全稿并提出了許多有益的意見;沈陽工業(yè)大學(xué)牛連強教授在本書編寫過程中給予了指點和幫助,在此謹向他們表示衷心的感謝。感謝清華大學(xué)出版社在本書的出版過程中給予的支持。
由于作者學(xué)識淺陋,見聞不廣,書中必有不足之處,敬請讀者提出批評、指正和建議。也歡迎大家與我們進行交流和探討。
編者
2016年11月
第1章操作系統(tǒng)引論
1.1例題解析
1.2課后自測題
1.3自測題答案及分析
第2章進程與線程
2.1例題解析
2.2課后自測題
2.3自測題答案及分析
第3章進程并發(fā)控制
3.1例題解析
3.2課后自測題
3.3自測題答案及分析
第4章內(nèi)存管理
4.1例題解析
4.2課后自測題
4.3自測題答案及分析
第5章頁式和段式內(nèi)存管理
5.1例題解析
5.2課后自測題
5.3自測題答案及分析
第6章I/O管理
6.1例題解析
6.2課后自測題
6.3自測題答案及分析
第7章文件管理
7.1例題解析
7.2課后自測題
7.3自測題答案及分析
第8章死鎖
8.1例題解析
8.2課后自測題
8.3自測題答案及分析
第9章實驗指導(dǎo)
9.1高響應(yīng)比作業(yè)調(diào)度
9.2時間片輪轉(zhuǎn)進程調(diào)度
9.3進程同步與互斥
9.4內(nèi)存分配與回收
9.5FIFO頁面置換算法
9.6LRU頁面置換算法
9.7獨占設(shè)備分配與回收
9.8銀行家算法
參考文獻
第3章
進程并發(fā)控制
3.1例 題 解 析
例題1進程間的互斥與同步表示了各進程間的。
A. 競爭與協(xié)作B. 相互獨立與相互制約
C. 臨界區(qū)調(diào)度原則D. 動態(tài)性與并發(fā)性
分析: 答案A。當多個進程都去訪問非共享資源時就會產(chǎn)生競爭,需要互斥執(zhí)行,通過臨界區(qū)加以控制,當多個進程相互協(xié)作共同完成一個任務(wù)時,需要同步相關(guān)的信息以達到合作的目的。
例題2若執(zhí)行信號量S操作的進程數(shù)為3,信號量S初值為2,當前值為-1,表示有個等待相關(guān)臨界資源的進程。
A. 0B. 1C. 2D. 3
分析: 答案B。每當一個進程申請S信號量時,S的值就減1,當S的值為0時再申請的進程就需等待,負值的絕對值就表示在臨界區(qū)等待的進程數(shù)。
例題3由于并發(fā)進程執(zhí)行的隨機性,一個進程對另一個進程的影響是不可預(yù)測的,甚至造成結(jié)果的不正確,。
A. 造成不正確的因素與時間有關(guān)
B. 造成不正確的因素只與進程占用的處理機有關(guān)
C. 造成不正確的因素與執(zhí)行速度無關(guān)
D. 造成不正確的因素只與外界的影響有關(guān)
分析: 答案A。由于各進程的異步推進,進程之間的制約關(guān)系與時間有關(guān),也即與進程的執(zhí)行速度有關(guān)。
例題4下列機構(gòu)中不能用于進程間數(shù)據(jù)通信的是。
A. 消息B. 共享存儲區(qū)C. 信號量D. 管道
分析: 答案C。能傳送大量數(shù)據(jù)的高級通信機制可歸結(jié)為三大類: 共享存儲器系統(tǒng)、消息傳遞系統(tǒng)以及管道通信系統(tǒng)。信號量主要用于進程的同步與互斥控制,不是為了數(shù)據(jù)通信。
例題5下面有關(guān)管程的說法,不正確的是。
A. 管程是一種進程同步機制
B. 管程是一種編程語言成分
C. 管程是一種系統(tǒng)調(diào)用
D. 管程比信號量更容易保證并行編程的正確性
分析: 答案C。使用信號量和PV操作實現(xiàn)進程同步時,對共享資源的管理分散于各個進程中,這樣不利于系統(tǒng)對臨界資源的管理,難以防止進程有意或無意地違反同步操作,且容易造成程序設(shè)計錯誤。因此提出管程的概念以解決上述問題,管程實質(zhì)上是把臨界區(qū)集中到抽象數(shù)據(jù)類型模板中,可作為程序設(shè)計語言的一種結(jié)構(gòu)成分。
例題6什么是臨界資源和臨界區(qū)?一個進程進入臨界區(qū)的調(diào)度原則是什么?
答: 不允許兩個或兩個以上進程同時訪問的資源稱為臨界資源。進程執(zhí)行訪問臨界資源的程序段稱為臨界區(qū)、臨界段或互斥段。
能支持各進程互斥地執(zhí)行臨界區(qū)的調(diào)度機制必須滿足下列要求。
(1) 在臨界區(qū)中,每次只能允許一個進程進入。
(2) 一個進程在非臨界區(qū)中的暫停運行不能影響其他進程。
(3) 一個進程如需要進入臨界區(qū),不能發(fā)生無限延遲的情況,既不會死鎖,也不會饑餓。
(4) 當無進程在臨界區(qū)時,必須讓任何希望進入該程序段的進程無延遲地進入。
(5) 一個進程只能在臨界區(qū)內(nèi)停留有限的時間。
(6) 對于相關(guān)進程的運行速度和處理機的數(shù)量不做假設(shè)。
例題7進程之間存在哪幾種制約關(guān)系?各是什么原因引起的?下列活動分別屬于哪種制約關(guān)系?
(1) 圖書館借書。
(2) 兩隊舉行籃球賽。
(3) 流水生產(chǎn)線。
(4) 樂隊演奏。
(5) 購買火車票。
答: 有直接制約關(guān)系(即同步問題)和間接制約關(guān)系(即互斥問題); 同步問題是存在關(guān)系的進程之間的相互等待所產(chǎn)生的制約關(guān)系,互斥問題是進程間競爭使用資源所發(fā)生的制約關(guān)系。
(1) 屬于互斥關(guān)系,因為書的個數(shù)是有限的,一本書只能借給一個同學(xué)。
(2) 既存在互斥關(guān)系,也存在同步關(guān)系;@球只有一個,兩隊都要競爭; 但對于同一個隊的隊員之間需要相互協(xié)作才有可能取得比賽的勝利。
(3) 屬于同步關(guān)系,生產(chǎn)線上各道工序的開始都依賴前道工序的完成。
(4) 屬于同步關(guān)系,樂隊中的每個成員需要相互協(xié)作共同完成樂曲演奏任務(wù)。
(5) 屬于互斥關(guān)系,一張火車票只能賣給一個人。
例題8在生產(chǎn)者消費者問題中,如果將兩個P操作即生產(chǎn)者程序流程中的P(buffers)和P(mutex)互換位置,結(jié)果會如何?
答: P(buffers)和P(mutex)互換位置后,因為mutex是生產(chǎn)者和消費者公用的信號量變量,生產(chǎn)者在執(zhí)行完P(guān)(mutex)后,則mutex賦值為0,倘若當前無空閑緩沖區(qū),buffers也為0,在執(zhí)行了P(buffers)后,buffers為-1,該生產(chǎn)者進程就會進入阻塞狀態(tài),這樣不僅其他的生產(chǎn)者進程會因mutex不能繼續(xù)存放產(chǎn)品,并且消費者也因mutex不能取產(chǎn)品,從而無法釋放緩沖區(qū),使緩沖區(qū)始終為0,這樣就形成了死鎖。
例題9試用P、V操作描述下列理發(fā)師和顧客之間的同步問題。
某個理發(fā)師當沒有顧客時,去睡覺; 當有顧客來理發(fā),若理發(fā)師正在睡覺時,這個顧客會叫醒他,理發(fā)師給該顧客理發(fā),理發(fā)期間若還有顧客到達則等待理發(fā)師依次理發(fā),直到?jīng)]有顧客到來,理發(fā)師又去睡覺。
分析: 將此題看作是N個生產(chǎn)者和一個消費者問題。顧客作為生產(chǎn)者,每到來一位,就應(yīng)將計數(shù)器rc計數(shù)一次,以便讓理發(fā)師理發(fā)至*后一位顧客,因此,顧客進程執(zhí)行的*個語句便是rc=rc+1。而*個到來的顧客應(yīng)負責(zé)喚醒理發(fā)師,理發(fā)師此時正在信號量wakeup上等待(P(wakeup)); 該信號量初值為0,由*個顧客執(zhí)行V(wakeup)。若該顧客不是*個到達者,則在信號量wait上等待(P(wait)); 該信號量初值為0,等到理發(fā)師給前一位顧客理完發(fā)后執(zhí)行V(wait),便給該顧客理發(fā)。以上過程循環(huán)往復(fù),理發(fā)師每處理完一個顧客,就令計數(shù)器rc值減1,當rc=0時,便知此時無顧客,理發(fā)師可繼續(xù)睡覺,等待下一個顧客的到達。為了保證對計數(shù)器rc互斥使用,還需要設(shè)置信號量mutex(初值為1)。
答: 用P、V操作描述理發(fā)師和顧客之間的同步問題:
wakeup, wait, mutex :Semaphore;
wakeup :=0;wait :=0;mutex :=1;
cobegin
顧客進程:
{
P(mutex);
rc= rc+1;
if(rc==1)
V(wakeup);
else
P(wait);
V(mutex);
理發(fā);
}
理發(fā)師進程:
{
P(wakeup);
while (rc!=0)
{
理發(fā);
P(mutex);
rc=rc-1;
if (rc!=0)
V(wait);
V(mutex);
}
}
coend
3.2課后自測題
一、 選擇題
1. 并發(fā)性是指若干事件在發(fā)生。
A. 同一時刻B. 同一時間間隔內(nèi)
C. 不同時刻D. 不同時間間隔內(nèi)
2. 進程間的基本關(guān)系為。
A. 相互獨立B. 同步與互斥
C. 信息傳遞與信息緩沖D. 并行執(zhí)行與資源共享
3. 操作系統(tǒng)中P、V操作是一種。
A. 系統(tǒng)調(diào)用B. 進程通信原語C. 控制命令D. 軟件模塊
4. 兩個進程合作完成一個任務(wù),在并發(fā)執(zhí)行中,一個進程要等待其合作伙伴發(fā)來信息或者建立某個條件后再向前執(zhí)行,這種關(guān)系是進程間的關(guān)系。
A. 同步B. 互斥C. 競爭D. 合作
5. 一段不能由多處進程同時執(zhí)行的代碼稱為。
A. 臨界區(qū)B. 臨界資源C. 鎖操作D. 信號量操作
6. 臨界區(qū)是指并發(fā)進程中。
A. 用于實現(xiàn)進程互斥的程序段B. 用于實現(xiàn)進程同步的程序段
C. 用于實現(xiàn)進程通信的程序段D. 與互斥的共享資源有關(guān)的程序段
7. 不能利用實現(xiàn)父子進程間的互斥。
A. 文件B. 外部變量C. 信號量D. 鎖
8. 解決進程間同步與互斥問題常用的方法是使用。
A. 鎖操作B. 存儲管理C. 信號機構(gòu)D. 信號量
9. 讀者、寫者是一個問題。
A. 互斥B. 半同步C. 全同步D. 共享
10. 如果系統(tǒng)只有一個臨界資源,同時有很多進程要競爭該資源,那么系統(tǒng)發(fā)生死鎖。
A. 一定會B. 一定不會
C. 不一定會D. 由進程數(shù)量決定
11. 在操作系統(tǒng)中,對信號量的s的P操作定義中,使進程進入相應(yīng)等待隊列的條件是。
A. s>0B. s=0C. s<0D. s≤0
12. N個進程訪問一個臨界資源,則設(shè)置的互斥信號量s的取值范圍是。
A. 0~N-1B. 1~-(N-1)C. 1~N-1D. 0~-1
13. 臨界區(qū)就是指。
A. 一段程序B. 一段數(shù)據(jù)區(qū)C. 一個緩沖區(qū)D. 一個共享資源
14. M個生產(chǎn)者,N個消費者共享長度為L的有界緩沖區(qū),則對緩沖區(qū)互斥操作而設(shè)置的信號量的初值應(yīng)設(shè)為。
A. LB. MC. ND. 1
15. 對于使用一個臨界資源的兩個并發(fā)進程,若互斥信號量等于1,則表示。
A. 沒有進程進入臨界區(qū)
B. 有一個進程進入了臨界區(qū)
C. 有一個進程進入了臨界區(qū),另一個進程等待進入
D. 這兩個進程都在等待進入臨界區(qū)
16. 若信號量S的初值為2,當前值為-1,則表示有個等待進程。
A. 0B. 1C. 2D. 3
17. 類似于電子郵件系統(tǒng)的進程間的通信方法是通信。
A. 管道B. 共享存儲區(qū)C. 信號量D. 消息
18. 在進程之間要傳遞大量的數(shù)據(jù),效率高而且互斥與同步控制方便的方法是采用。
A. 管道B. 共享存儲區(qū)C. 全局變量D. 信號量
19. 信箱通信是一種通信方式。
A. 低級B. 直接C. 間接D. 中級
20. 下列不屬于管程的組成部分。
A. 對管程內(nèi)數(shù)據(jù)結(jié)構(gòu)進行操作的一組過程
B. 管程外過程調(diào)用管程內(nèi)數(shù)據(jù)結(jié)構(gòu)的說明
C. 管程內(nèi)共享變量的說明
D. 共享變量初始化語句序列
21. 測試并設(shè)置指令testandset是一種。
A. 鎖操作指令B. 互斥指令C. 判斷指令D. 信號量指令
22. 關(guān)于管程與進程比較的論述中,正確的是。
A. 管程內(nèi)定義的是公用數(shù)據(jù)結(jié)構(gòu),進程內(nèi)定義的是私有數(shù)據(jù)結(jié)構(gòu)
B. 管程作為操作系統(tǒng)或編程語言成分,與進程一樣也具有生命周期,由創(chuàng)建而產(chǎn)生,由撤銷而消亡
C. 管程能被系統(tǒng)中所有的進程調(diào)用
D. 管程和調(diào)用它的進程能夠并行工作
23. 任何進程使用管程所管理的臨界資源時,需要調(diào)用特定的才能互斥地進入管程,使用資源。
A. 系統(tǒng)調(diào)用B. 訪管指令
C. 管程中的有關(guān)入口過程D. 同步操作原語
二、 填空題
1. 并發(fā)的實質(zhì)是一個處理機在多個程序之間的。
2. 通常將并發(fā)進程之間的制約關(guān)系分為兩類: 和。
3. P、V操作原語是對執(zhí)行的操作,其值只能由P、V操作改變。
4. 若一個進程已經(jīng)進入臨界區(qū),其他欲進入同一臨界區(qū)的進程必須。
5. 一次僅允許一個進程訪問的資源稱為。
6. 進程訪問臨界資源的那段代碼稱為。
7. 在進程的同步和互斥問題中,可以用布爾變量實現(xiàn)。
8. 在操作系統(tǒng)中,使用信號量可以解決進程間的與問題。
9. 每執(zhí)行一次Wait()操作,信號量的數(shù)值S減1。若,則該進程繼續(xù)執(zhí)行,否則進入狀態(tài)。
10. 每執(zhí)行一次Signal()操作,信號量的數(shù)值S加1。若,則該進程繼續(xù)執(zhí)行; 否則,從對應(yīng)的隊列中移出一個進程,該進程的狀態(tài)將為。
11. 有m個進程共享一個同類臨界資源,如使用信號量解決進程間的互斥問題,那么信號量的取值范圍為。
12. 有m個進程共享n個同類臨界資源,如使用信號量解決進程間的互斥問題,那么信號量的取值范圍為。
13. 互斥信號量S的當前值為-2表示。
14. 某一時刻系統(tǒng)中共有6個進程,每個進程要使用一個相關(guān)臨界資源;コ庑盘柫縎的初值為3,當前值為-2,則表示有個進程正在訪問相關(guān)臨界資源,有個訪問相關(guān)臨界資源的進程進入了阻塞狀態(tài),有個進程還沒有申請訪問相關(guān)臨界資源。
15. 信號量當前值大于零時其數(shù)值表示。
16. 有m個進程共享一個臨界資源,若使用信號量機制實現(xiàn)對臨界資源的訪問,則信號量的初值應(yīng)設(shè)為,其取值范圍為
17. 利用信號量實現(xiàn)進程的,應(yīng)為臨界區(qū)設(shè)置一個信號量mutex,其初值為1,表示該資源尚未使用,臨界區(qū)應(yīng)置于和原語之間。
18. 操作系統(tǒng)中信號量的值與的使用情況有關(guān),它的值僅能由來改變。
19. 操作系統(tǒng)中的一種同步與互斥機制,由共享資源的數(shù)據(jù)及其在該數(shù)據(jù)上的一組操作組成,該機制稱為。
20. 一個進程要向另一個進程傳送大量數(shù)據(jù),如不考慮進程間的同步,效率*高的進程通信機制為。
21. 與Email類似的進程間數(shù)據(jù)通信機制是。
22. 在默認的情況下,大多數(shù)信號會導(dǎo)致接收進程。
23. 實現(xiàn)一個管程時,必須考慮的三個主要問題是互斥、和。
24. 信箱通信機制通常采用原語和原語。
……