關(guān)于我們
書單推薦
新書推薦
|
操作系統(tǒng)原理習題與實驗指導
操作系統(tǒng)原理是計算機及相關(guān)專業(yè)的重要基礎(chǔ)課, 對學生理解計算機系統(tǒng)結(jié)構(gòu)、進行高級程序開發(fā)等方面有著重要的理論指導作用。該課程對學生來說感覺理論性較強。
1.“以問題為導向,以學生為中心”為指導思想,突出學生應(yīng)用知識思考和解決問題的能力是本教材的主線。通過典型例題解析啟發(fā)學生的思維,加深對理論知識的理解。自測題全面且具代表性,對于重點、難點的問題既給出了解答又有解題分析。
2.通過自測題讓學生獨立思考,了解自己對知識的掌握程度,也可作為考研等的復習資料。實驗內(nèi)容包括:高響應(yīng)比作業(yè)調(diào)度、時間片輪轉(zhuǎn)進程調(diào)度、進程同步與互斥、內(nèi)存分配與回收、FIFO頁面置換算法、LRU頁面置換算法、獨占設(shè)備分配與回收、銀行家算法,共8個實驗。每個實驗首先給出了明確的實驗?zāi)繕撕蛯嶒瀮?nèi)容,然后講明實驗原理并給出相應(yīng)的知識點提示,*后給出參考程序和運行效果圖。通過這些典型實驗讓學生對理論問題有更直觀的認識和體驗,激發(fā)他們學習的興趣和創(chuàng)新的動力。 3.本書的作者都是講解操作系統(tǒng)課程多年的一線教師,內(nèi)容上吸收了眾多相關(guān)資源的精華,同時結(jié)合教學中的實踐經(jīng)驗合理地進行內(nèi)容的取舍,使習題具有代表性,實驗內(nèi)容典型豐富而且有利于培養(yǎng)學生的創(chuàng)新應(yīng)用能力。另外提供相應(yīng)的PPT課件滿足實驗課堂教學、課后練習和學生自學的需要。
操作系統(tǒng)是計算機系統(tǒng)的重要組成部分,是用戶使用計算機的基礎(chǔ),作為計算機專業(yè)的核心課程,不僅高等學校計算機相關(guān)專業(yè)的學生必須學習,從事計算機行業(yè)的人員也需要深入了解。由于操作系統(tǒng)具有概念性強、內(nèi)容靈活、所涉及概念和算法比較抽象的特點,因此初學者往往找不到感覺,面對習題更是無從下手。此外,操作系統(tǒng)是一門實踐性非常強的學科,只看書、做習題是絕對不夠的,必須在實踐和應(yīng)用中加以深刻的體會。因此,在操作系統(tǒng)的教學中,除了課堂教學外,必須有一定學時的實驗課。
作者在多年教學實踐和科學研究的基礎(chǔ)上,結(jié)合操作系統(tǒng)教學大綱、研究生入學考試要求和全國計算機技術(shù)與軟件專業(yè)技術(shù)資格考試大綱,并在參考了國內(nèi)外多種操作系統(tǒng)資料的基礎(chǔ)上編寫了本書。 本書與清華大學出版社出版的《操作系統(tǒng)原理》教材相配套,全書共分為9章,具體內(nèi)容包括:操作系統(tǒng)引論、進程與線程、進程并發(fā)控制、內(nèi)存管理、頁式和段式內(nèi)存管理、I/O管理、文件管理、死鎖、實驗指導。 前8章每一章的內(nèi)容分為例題解析、課后自測題、自測題答案及分析三部分。通過例題解析啟發(fā)學生的思考,引導學生如何去思考問題、解決問題。通過課后自測題學生可以進行自我檢驗,教師也可以對學生進行測試。自測題答案及分析部分給出了詳細的解答并對難點問題進行了分析,有利于學生平時的學習,也可作為考研的復習資料。 第9章實驗指導包括:高響應(yīng)比作業(yè)調(diào)度、時間片輪轉(zhuǎn)進程調(diào)度、進程同步與互斥、內(nèi)存分配與回收、FIFO頁面置換算法、LRU頁面置換算法、獨占設(shè)備分配與回收和銀行家算法。每一個實驗內(nèi)容包括:實驗?zāi)康暮鸵蟆嶒瀮?nèi)容、實驗原理與提示、參考程序。通過實驗可以對理論知識進行鞏固和加深理解,也激發(fā)了學生的探索熱情,促進學生進行創(chuàng)新的思考和應(yīng)用,可以提出新的算法和方法來改進目前的操作系統(tǒng)。 本書第3、4章由于世東編寫,第6~8章由王泓編寫,第1、2、5章由孫笑微編寫,第9章由于世東、王泓、孫笑微共同編寫。東北大學于楊博士審閱了全稿并提出了許多有益的意見;沈陽工業(yè)大學牛連強教授在本書編寫過程中給予了指點和幫助,在此謹向他們表示衷心的感謝。感謝清華大學出版社在本書的出版過程中給予的支持。 由于作者學識淺陋,見聞不廣,書中必有不足之處,敬請讀者提出批評、指正和建議。也歡迎大家與我們進行交流和探討。 編者 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章實驗指導 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í)行的隨機性,一個進程對另一個進程的影響是不可預測的,甚至造成結(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ù)是有限的,一本書只能借給一個同學。 (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)負責喚醒理發(fā)師,理發(fā)師此時正在信號量wakeup上等待(P(wakeup)); 該信號量初值為0,由*個顧客執(zhí)行V(wakeup)。若該顧客不是*個到達者,則在信號量wait上等待(P(wait)); 該信號量初值為0,等到理發(fā)師給前一位顧客理完發(fā)后執(zhí)行V(wait),便給該顧客理發(fā)。以上過程循環(huán)往復,理發(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ù)信號會導致接收進程。 23. 實現(xiàn)一個管程時,必須考慮的三個主要問題是互斥、和。 24. 信箱通信機制通常采用原語和原語。 ……
你還可能感興趣
我要評論
|