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