操作系統(tǒng)-習題-分章-詹煒_第1頁
操作系統(tǒng)-習題-分章-詹煒_第2頁
操作系統(tǒng)-習題-分章-詹煒_第3頁
操作系統(tǒng)-習題-分章-詹煒_第4頁
操作系統(tǒng)-習題-分章-詹煒_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上第一章 OS概述操作系統(tǒng):操作系統(tǒng)是控制和管理計算機硬件和軟件資源,合理地組織計算機的工作流程,以及方便用戶的程序的集合。其主要功能是實現(xiàn)處理機管理、內存管理、I/O設備管理、文件管理和用戶接口。填空題1操作系統(tǒng)是運行在計算機裸機系統(tǒng)上的最基本的系統(tǒng)軟件。2. 操作系統(tǒng)目前有五大類型:批處理操作系統(tǒng)、分時操作系統(tǒng)、實時操作系統(tǒng)、網絡操作系統(tǒng)和分布式操作系統(tǒng)。3現(xiàn)代操作系統(tǒng)的兩個重要特征是并發(fā)和共享。4以多道程序設計為基礎的現(xiàn)代操作系統(tǒng)具有_、_、_和_四個基本特征。5操作系統(tǒng)提供給編程人員的唯一接口是 。6現(xiàn)代操作系統(tǒng)的兩個重要特征是 和共享。7計算機操作系

2、統(tǒng)是方便用戶、管理和控制計算機 的系統(tǒng)軟件。8現(xiàn)代操作系統(tǒng)的兩個重要特征是并發(fā)和 。9對于系統(tǒng)的總體設計目標來說,批處理系統(tǒng)應注重提高系統(tǒng)的效率,盡量增加系統(tǒng)的 ,分時系統(tǒng)應保證用戶 ;而實時系統(tǒng)則應在保證及時響應和可靠性的前提下,再考慮系統(tǒng)資源的利用率。吞吐率 響應時間10計算機操作系統(tǒng)是方便用戶、管理和控制計算機系統(tǒng)資源的系統(tǒng)軟件。11在操作系統(tǒng)中的異步性主要是指在系統(tǒng)中進程推進的順序是走走停停。12. 現(xiàn)代操作系統(tǒng)的特征是并發(fā)、共享、虛擬和異步性。13.操作系統(tǒng)的五大功能是CPU管理、存儲管理、設備管理、文件系統(tǒng)和用戶接口。14操作系統(tǒng)是運行在計算機基本硬件(或:硬件)系統(tǒng)上的最基本的系

3、統(tǒng)軟件。 15.操作系統(tǒng)的主要設計目標是方便用戶使用或界面友好和系統(tǒng)能高效工作或資源利用率高。16. 操作系統(tǒng)的基本類型有批處理操作系統(tǒng),分時操作系統(tǒng)和實時操作系統(tǒng)三種。17在分時系統(tǒng)中,當用戶數(shù)目為100時,為保證響應時間不超過2秒,此時時間片最大應為20ms。分時系統(tǒng)采用的調度方法是時間片輪轉調度算法。選擇題1.實時操作系統(tǒng)追求的目標是(c)。 A.高吞吐率 B.充分利用內存 C. 快速響應 D. 減少系統(tǒng)開銷 2.操作系統(tǒng)是為了提高計算機的1和方便用戶使用計算機而配置的基本軟件。它負責管理計算機系統(tǒng)中的2,其中包括3,4,外部設備和系統(tǒng)中的數(shù)據。操作系統(tǒng)中的3管理部分負責對進程進行管理。

4、操作系統(tǒng)對系統(tǒng)中的數(shù)據進行管理的部分通常叫做5。 供選擇的答案: 1(B) A、速度 B、利用率 C、靈活性 D、兼容性 2(A) A、程序 B、功能 C、資源 D、進程 3 (F)4(A) A、主存儲器 B、虛擬存儲器 C、運算器 D、控制器 E、微處理器 F、處理機 5(B) A、數(shù)據庫系統(tǒng)B、文件系統(tǒng)C檢索系統(tǒng)D數(shù)據庫E數(shù)據存儲系統(tǒng)F數(shù)據結構 G數(shù)據庫管理系統(tǒng) 3.批處理系統(tǒng)的主要缺點是(B)。 A.CPU的利用率不高B.失去了交互性 C.不具備并行性 D.以上都不是 4.操作系統(tǒng)是計算機系統(tǒng)的核心軟件。按功能特征的不同,可把操作系統(tǒng)分為1、2、3、網絡操作系統(tǒng)和分布式操作系統(tǒng)基本類型。

5、其中1的主要目標是提高系統(tǒng)的吞吐率和效率,而2是一旦有處理請求和要求處理的數(shù)據時,CPU就應該立即處理該數(shù)據并將結果及時送回,例如4等。 供選擇的答案: 1B2E3C A、單用戶系統(tǒng) B、批處理系統(tǒng)C、分時系統(tǒng) D、微機操作系統(tǒng) E、實時系統(tǒng) 4 (D)A、計算機激光照排系統(tǒng) B、辦公自動化系統(tǒng) C、計算機輔助設計系統(tǒng) D、航空訂票系統(tǒng) 5現(xiàn)代操作系統(tǒng)的兩個基本特征是(C) 和資源共享。 A.多道程序設計 B. 中斷處理 C.程序的并發(fā)執(zhí)行 D. 實現(xiàn)分時與實時處理 6.以下(C)項功能不是操作系統(tǒng)具備的主要功能。A內存管理 B中斷處理 C文檔編輯 DCPU調度7.批處理系統(tǒng)的主要缺點是(B)

6、。 A.CPU的利用率不高 B.失去了交互性 C.不具備并行性 D.以上都不是 8.在分時系統(tǒng)中,時間片一定,(B),響應時間越長。 A.內存越多 B.用戶數(shù)越多 C.后備隊列 D.用戶數(shù)越少 9. 操作系統(tǒng)有多種類型:允許多個用戶以交互方式使用計算機的操作系統(tǒng),稱為 B ;允許多用戶將若干個作業(yè)提交給計算機系統(tǒng)集中處理的操作系統(tǒng),稱為 A ;在 C的控制下,計算機系統(tǒng)能及時處理由過程控制反饋的數(shù)據,并作出響應;在IBMPC機上的操作系統(tǒng)稱為 D 。A批處理操作系統(tǒng)B分時操作系統(tǒng)C實時操作系統(tǒng)D微機操作系統(tǒng)E多處理機操作系統(tǒng)F分布式操作系統(tǒng)10. 關于操作系統(tǒng)的敘述 D 是不正確的。 A“管理

7、資源的程序”B“管理用戶程序執(zhí)行的程序” C“能使系統(tǒng)資源提高效率的程序”D“能方便用戶編程的程序”11()不是分時系統(tǒng)的基本特征A 同時性 B獨立性 C實時性 D交互12實時系統(tǒng)應具有兩個基本特征: 及時性和_.。A、虛擬性 B、同步性 C、可靠性 D、有效性13分時系統(tǒng)采用時間片輪轉算法,主要是為了解決_A、減小CPU空閑 B、縮短響應時間 C、增加人機交互 D、提高吞吐率14分時系統(tǒng)追求的目標是( ).A、提高系統(tǒng)吞吐量 B、緩沖設備速度差異 C、提供設備獨立性 D、縮短響應時間15以下( )項功能是操作系統(tǒng)具備的主要功能A、內存管理 B、中斷處理 C、文檔編輯 D、CPU調度16在操作

8、系統(tǒng)的層次結構中,( )是操作系統(tǒng)的核心部分,它位于最內層。A存儲管理 B處理機管理 C設備管理 D作業(yè)管理17 UNIX操作系統(tǒng)是一個( )A交互式分時操作系統(tǒng) B多道批處理操作系統(tǒng) C實時操作系統(tǒng) D分布式操作系統(tǒng)18以下著名的操作系統(tǒng)中,屬于多用戶、分時系統(tǒng)的是( )。 ADOS系統(tǒng) BUNIX系統(tǒng) CWindows NT系統(tǒng) DOS2系統(tǒng)判斷題操作系統(tǒng)提供了大量的服務,在最高層是系統(tǒng)調用,它允許正在運行的程序直接得到系統(tǒng)的服務( )()雖然分時系統(tǒng)也要求系統(tǒng)可靠,但實時系統(tǒng)對可靠性的要求更高。()操作系統(tǒng)是整個計算機系統(tǒng)的控制管理中心,它對其它軟件具有支配權利。因而,操作系統(tǒng)建立在其它

9、軟件之上第二章 進程管理填空題1當一個進程獨占處理器順序執(zhí)行時,具有兩個特性:封閉性和可再現(xiàn)性。 2進程由程度、數(shù)據和FCB組成。 3對信號量S的操作只能通過原語操作進行,對應每一個信號量設置了一個等待隊列。 4. 在操作系統(tǒng)中,進程是一個資源分配的基本單位,也是一個獨立運行和調度 的基本單位。5.在信號量機制中,信號量S > 0時的值表示可用資源數(shù)目;若S < 0,則表示等待該資源的進程數(shù),此時進程 應阻塞。6. 常用的進程通信方式有管道、共享存儲區(qū)、消息機制和郵箱機制。7. 正在執(zhí)行的進程等待I/O操作,其狀態(tài)將由執(zhí)行狀態(tài)變?yōu)樽枞麪顟B(tài)。8若干個事件在同一時刻發(fā)生稱為并行,若干個

10、事件在同一時間間隔內發(fā)生稱為并發(fā)。9進程間通信的方式有管道、共享存儲區(qū)和消息傳遞方式。10進程由程序、數(shù)據和PCB組成。11在生產者消費者問題中,消費者進程的兩個wait原語的正確順序為 Wait(full);和wait(mutex);。12進程間通信的類型有:共享存儲區(qū)、管道機制、消息隊列和信箱機制。13進程和線程都是系統(tǒng)進行 的基本單位,它們最大的區(qū)別在于 。14如果信號量的當前值為3,表示可用的資源數(shù)目為3,如果信號量的當前值為-3,則表示 。15如果信號量的當前值為4,則表示 ,如果信號量的當前值為-4,則表示 。16在操作系統(tǒng)中進程是一個擁有資源的單位,也是一個調度和執(zhí)行的基本單位。

11、17.一次只允許一個進程訪問的資源叫臨界資源。18操作系統(tǒng)中,進程可以分為系統(tǒng)進程和用戶進程兩類。19當一個進程獨占處理器順序執(zhí)行時,具有兩個特性:封閉性和可再現(xiàn)性。 20對信號量S的操作只能通過P、V操作進行,對應每一個信號量設置了一個等待隊列。 21進程由程度、數(shù)據集合、進程控制塊及相關表格組成。 22.當一個進程完成了特定的任務后,系統(tǒng)收回這個進程所占的工作區(qū)或主存空間或資源和取消該進程的進程控制塊(PCB)就撤消了該進程。23.在操作系統(tǒng)中進程和線程的區(qū)別是:擁有資源。24進程由程序、數(shù)據和 組成。25當一個進程獨占處理器順序執(zhí)行時,具有兩個特性: 和 。封閉性 可再現(xiàn)性26在單CPU

12、系統(tǒng)中有n(n>1)個進程,在任一時刻處于就緒的進程最多是_個,最少是_個。27進程通信中的消息通信是通過_和_兩個原語來實現(xiàn)的。28在消息緩沖通信方式中通信的基本方式是_。選擇題1共享變量是指( )訪問的變量。 A、只能被系統(tǒng)進程 B、只能被多個進程互斥 C、只能被用戶進程 D、可被多個進程 2臨界區(qū)是指并發(fā)進程中訪問共享變量的(D)段。 A、管理信息 B、信息存儲 C、數(shù)據 D、程序 3若系統(tǒng)中有五臺繪圖儀,有多個進程均需要使用兩臺,規(guī)定每個進程一次僅允許申請一臺,則至多允許(D)個進程參于競爭,而不會發(fā)生死鎖。 A、5 B、2 C、3 D、4 4 .我們把在一段時間內,只允許一個進

13、程訪問的資源,稱為臨界資源,因此,我們可以得出下列論述,正確的論述為 D 。A:對臨界資源是不能實現(xiàn)資源共享的。B:只要能使程序并發(fā)執(zhí)行,這些并發(fā)執(zhí)行的程序便可對臨界資源實現(xiàn)共享。C:為臨界資源配上相應的設備控制塊后,便能被共享。D:對臨界資源,應采取互斥訪問方式,來實現(xiàn)共享。5. 對于記錄型信號量,在執(zhí)行一次P操作時,信號量的值應當 C ;在執(zhí)行V操作時,信號量的值應當 B 。A:不變; B:加1; C:減1; D:加指定數(shù)值; E:減指定數(shù)值。6.引入多道程序的目的在于( A )。 A.充分利用CPU,減少CPU等待時間 B.提高實時響應速度 C.有利于代碼共享,減少主、輔存信息交換量 D

14、 充分利用存儲器 7 在消息緩沖通信方式中通信的基本方式是_。 A、文件 B、消息 C、記錄 D、字段8 進程是程序的執(zhí)行過程,可以處于不同的狀態(tài),這種性質稱作進程的( )。A、動態(tài)性 B、并發(fā)性 C、調度性 D、異步性9如果信號量S的值是0,此時進程A執(zhí)行wait(S)操作,那么,進程A會( ) A、繼續(xù)運行 B、進入阻塞態(tài),讓出CPU C、進入就緒態(tài),讓出CPU D、繼續(xù)運行,并喚醒S隊列頭上的等待進程10原語是一種特殊的系統(tǒng)調用命令,它的特點是( ) A、功能強 B、自己調用自己 C、可被外層調用 D、執(zhí)行時不可中斷11程序在運行時需要很多系統(tǒng)資源,如內存、文件、設備等,因此操作系統(tǒng)以程

15、序為單位分配系統(tǒng)資源。( )12原語是一種特殊的系統(tǒng)調用命令,它的特點是( ) A、功能強 B、自己調用自己 C、可被外層調用 D、執(zhí)行時不可中斷13在操作系統(tǒng)中,進程的最基本的特征是( )。A動態(tài)性和并發(fā)性 B順序性和可再現(xiàn)性 C與程序的對應性 D執(zhí)行過程的封閉性14下面關于線程的敘述中,正確的是( )。A.不論是系統(tǒng)支持線程還是用戶級線程,其切換都需要內核的支持。 B.線程是資源的分配單位,進程是調度和分配的單位。C.不管系統(tǒng)中是否有線程,進程都是擁有資源的獨立單位。 D.在引入線程的系統(tǒng)中,進程仍是資源分配和調度分派的基本單位。15處于運行狀態(tài)的操作系統(tǒng)程序應放在( )A寄存器中 B高速

16、緩沖存儲器中 C主存儲器中 D輔助存儲器中16引入進程的原因是( ) A提高資源的利用率和控制程序的執(zhí)行 B提高資源的利用率和正確描述程序的執(zhí)行情況 C提高程序的執(zhí)行速度和控制程序的執(zhí)行 D提高程序的執(zhí)行速度和正確描述程序的執(zhí)行情況判斷題(×)1并發(fā)性是指若干事件在同一時刻發(fā)生。(×)2用戶為每個自己的進程創(chuàng)建PCB,并控制進程的執(zhí)行過程。()3原語是一種不可分割的操作。(×)4線程是最小的擁有資源的單位。(×)5進程可以刪除自己的PCB表。()6執(zhí)行原語時不會響應任何中斷。()7對臨界資源應采取互斥訪問方式來實現(xiàn)共享。(×)8并發(fā)性是指若干事

17、件在同一時刻發(fā)生。() 9并發(fā)性是指若干進程在一段時間內都往前推進了一段,給用戶同時執(zhí)行的感覺,但微觀上還是串行的。( )10進程是最小的擁有資源的單位。()11執(zhí)行原語時不會響應任何中斷。(×)12用戶為每個自己的進程創(chuàng)建PCB,并控制進程的執(zhí)行過程。( )13 PCB是由操作系統(tǒng)初啟時在一次創(chuàng)建的,它形成PCB池,由進程創(chuàng)建原語分配使用(×)14執(zhí)行原語時有跟高優(yōu)先級的進程要執(zhí)行時它將被中斷。( )15在進程狀態(tài)的轉換中,從就緒態(tài)轉換到阻塞態(tài)是不可能實現(xiàn).( )16進程之間的互斥,主要源于進程之間的資源競爭,從而實現(xiàn)多個相關進程在執(zhí)行次序上的協(xié)調。( )17進程從運行狀

18、態(tài)變?yōu)樽枞麪顟B(tài)的原因是輸入或輸出事件發(fā)生。( )18進程A和進程B都要使用系統(tǒng)中同一臺打印機,為了保證打印結果的正確性,兩個進程要先后分別使用打印機,這屬于進程的同步關系。簡答題1.原語:它是由若干條機器指令所構成,用以完成特定功能的一段程序,為保證其操作的 正確性,它應當是原子操作,即原語是一個不可分割的操作。2.進程:進程是程序在一個數(shù)據集合上的運行過程,是系統(tǒng)進行資源分配和調度的一個獨立的基本單位。3.PCB4.簡述進程的幾種狀態(tài)和引起狀態(tài)轉換的典型原因,以及相關的操作原語。5. 進程的基本狀態(tài)有:新、就緒,阻塞,執(zhí)行、掛起和終止六種。新到就緒:交換,創(chuàng)建原語就緒到執(zhí)行:進程調度執(zhí)行到阻

19、塞:I/O請求,阻塞原語阻塞到就緒:I/O完成,喚醒原語執(zhí)行到就緒:時間片完阻塞到掛起:掛起原語掛起到就緒:喚醒原語執(zhí)行到終止:進程執(zhí)行完畢6在生產者消費者問題中,能否將生產者進程的wait(empty)和wait(mutex)語句互換,為什么?不能。(2分)因為這樣可能導致系統(tǒng)死鎖。當系統(tǒng)中沒有空緩沖時,生產者進程的wait(mutex)操作獲取了緩沖隊列的控制權,而wait(empty) 導致生產者進程阻塞,這時消費者進程也無法執(zhí)行。(3分)7不同用戶的不同任務之間的進程是有臨界區(qū)?為什么?請舉例說明。答:完全可能有臨界區(qū),如打印程序是可以由不同用戶的不同進程使用,但是只能有一個進程在某一

20、時刻進入。8.什么是進程?什么是線程?線程與進程有什么關系? 答:進程是程序關于某個數(shù)據集的一次運行,一個程序多次運行可以形成多個進程。線程是系統(tǒng)處理機調度的單元,是進程為了爭奪處理機而產生一個進程至少有一個主線程,隨著業(yè)務的需要,它可以創(chuàng)建多個線程,它們是進程的多個線程,共享進程的資源,但替進程爭取處理機9.信號量一般是由哪些成員組成的?它的值表示什么含義?組成:一個整數(shù):表示資源量的數(shù)目 一個隊列:存放等待資源而阻塞的進程隊列的隊首進程同步程序題1 假設有三個進程R、W0、W1共享一個緩沖區(qū)B,而B中一次只能存放一個數(shù)據。進程R從輸入設備上讀數(shù)據送緩沖區(qū)B,若存放的數(shù)是偶數(shù),則允許W0將其

21、取出并打??;若存放的數(shù)是奇數(shù),則允許W1將其取出并打印。試利用信號量和wait、signal操作寫出實現(xiàn)這三個進程能同步工作的程序。(要求說明所設信號量的作用及初值)解:Var empty , full1 , full2 := semaphore := 1 , 0 , 0 ; / empty表示B是否為空,full1表示B中是否有奇數(shù),full2表示B中是否有偶數(shù)beginparbeginR: begin從設備上讀數(shù)據;wait ( empty );將數(shù)據送入B中;if ( 奇數(shù) ) signal ( full1 );else signal ( full2 );endW0: beginwait

22、 ( full2 );從B中取出數(shù)據;signal ( empty );打印;endW1: beginwait ( full1);從B中取出數(shù)據;signal ( empty );打印;endparendend2 假定系統(tǒng)有三個并發(fā)進程read, move和print共享緩沖器B1和B2。進程read負責從輸入設備上讀信息,每讀出一個記錄后把它存放到緩沖器B1中。進程move從緩沖器B1中取出一記錄,加工后存入緩沖器B2。進程print將B2中的記錄取出打印輸出。緩沖器B1和B2每次只能存放一個記錄。要求三個進程協(xié)調完成任務,使打印出來的與讀入的記錄的個數(shù),次序完全一樣。請用wait和sign

23、al原語寫出它們的并發(fā)程序。解:SRB1為空可以寫入,SMB1有內容可讀,SM2B2為空可寫入,SPB2有內容可讀begin SR,SM1,SM2,SP:semaphore;B1,B2:record;SR:=1;SM1:=0;SM2:=1;SP:=0Cobeginprocess read (3分)X:record;begin R: (接收來自輸入設備上一個記錄)X:=接收的一個記錄;wait(SR);B1:=X;signal(SM1);goto R;end;Process move (3分)Y:record;BeginM:wait(SM1);Y:=B1;signal(SR)加工 Ywait(S

24、M2);B2:=Y;signal(SP);goto M;end;Process print (3分)Z:record;BeginP:wait(SP);Z:=B2;signal(SM2)打印Zgoto P;end;coend;end;3系統(tǒng)運行有三個進程:輸入進程、計算進程和打印進程,它們協(xié)同完成工作。輸入進程和計算進程之間共用緩沖區(qū)buffer1,計算進程和打印進程之間共用緩沖區(qū)buffer2。輸入進程接收外部數(shù)據放入buffer1中;計算進程從buffer1中取出數(shù)據進行計算,然后將結果放入buffer2;打印進程從buffer2取出數(shù)據打印輸出。用算法描述這三個進程的工作情況,并用wait

25、和signal原語實現(xiàn)其同步操作。解:解答:輸入進程、計算進程和打印進程之間的同步問題描述如下:var:mutex1,mutex2,empty1,empty2,full1,full2:=1,1,1,1,0,0;InP:begin (3分) repeat wait(empty1); wait(mutex1); input a data from keyboard;Add to buffer1;signal(mutex1);signal(full1);until falseendCalP:begin (3分) repeatwait(full1);wait(mutex1);Take a data f

26、orm buffer1;Add to ch1;signal(mutex1);signal(empty1);calculate ch1;wait (empty2);wait(mutex2);Take a data form ch1;Add to buffer2;signal (mutex2);signal (full2); until falseendOutP:begin (3分) repeat wait(full2);wait(mutex2);Take a data from buffer2;Add to printer controler;signal(mutex2);signal(empt

27、y2);start printer; until falseend4 這是一個從鍵盤輸入到打印機輸出的數(shù)據處理流圖,其中鍵盤輸入進程通過緩沖區(qū) buf1 把輸入數(shù)據傳送給計算進程,計算進程把處理結果通過緩沖 buf2 傳送給打印進程。buf1 和 buf2 為臨界資源,試寫出鍵盤輸入進程,計算進程及打印進程間的同步算法。(10分) 輸入進程 buf1 計算進程 buf2 打印進程解答:從鍵盤輸入到打印機輸出的數(shù)據傳送過程,可以看作是由鍵盤輸入進程到計算進程,以及由計算進程到打印輸出進程這兩個數(shù)據傳送進程所組成。其中,對鍵盤輸入進程而言,計算進程是消費者進程;而對打印輸出進程而言,計算進程又是生

28、產者進程。據此可將它們之間的同步問題描述如下: var:mutex1,mutex2,empty1,empty2,full1,full2:=1,1,1,1,0,0;IP:begin repeat P(empty); P(mutex1); input a charcter from keyboard;Add to buffer;V(mutex1);V(full);until false endCP:begin repeatP(full);P(mutex1);Take a charactor form buffer1;Add to ch1;V(mutex1);V(empty1);P(empty2);

29、P(mutex2);Take a charactor form ch1;Add to buffer2;V(mutex2);V(full2); until falseendOP:begin repeat p(full2);P(mutex2);Take a charactor from buffer2;Add to printer controler;start printer;V(mutex2);V(empty2); until falseend(評分標準:信號量設置2分,輸入進程、計算進程、打印進程各2分)5在公共汽車上,乘客上完后,售票員關門,駕駛員開車,售票員售票,到站汽車停穩(wěn)后,售票員開

30、門,乘客上下車,售票員和駕駛員之間密切配合,直到下班。請用信號量描述公共汽車上售票員與駕駛員的工作過程。(10分)解:建立駕駛員和售票員兩進程,駕駛員進程執(zhí)行過程如下:判售票員關門沒有開車到站后停車重復(1)(3)售票員執(zhí)行過程如下:判斷乘客上完沒有關門售票判車停穩(wěn)沒有開門重復(1)(5)評分標準:執(zhí)行過程完善3分, 駕駛員與售票員合作消息正確3分 售票員與駕駛員合作消息正確3分 書寫格式1分公共汽車上,司機和售票員的活動分別是: 司機:啟動車輛 售票員:上乘客 正常行車 關車門 到站停車 開車門 下乘客在汽車不斷地到站,停車,行使過程中,這兩個活動有什么同步關系?并用 wait和signal

31、 原語操作實現(xiàn)它們的同步。解:BEGIN integer stop,run;Stop:=0;Run:=0;COBEGINDriver: BEGIN L1: wait(run);啟動車輛;正常行車;到站停車; signal(stop); Goto L1;ENDConductor:BEGINL2:上乘客;關車門;signal(run);售票;wait(stop);開車門;下乘客;Goto L2;ENDCOENDEND6. 進程 A1,A2,An 通過 K 個緩沖區(qū)向進程 B1,B2,Bm 不斷地發(fā)送消息。發(fā)送和接收工作遵循如下規(guī)則:每個發(fā)送進程一次發(fā)送一個消息,寫入緩沖區(qū),緩沖區(qū)大小與消息長度一致

32、;對每個消息,B1,B2,Bm 都需接收一次,讀入各自的數(shù)據區(qū)內;K 個緩沖區(qū)都滿時,發(fā)送進程等待,沒有可讀的消息時,接收進程等待。試用 wait 和 signal 原語操作組織正確的發(fā)送和接收操作。(10分)解:BEGIN Integer Mutex, Availn, Fullm; Integer I;Mutex:=1;FOR i:=1 TO m DOBEGIN AvailI := k; FullI := 0;ENDPROCEDURE Send(K)Integer I;BEGIN7. Jruassic 公園有一個恐龍博物館和一個公園.有m個旅客和n輛車,每輛車只能容納一個旅客。旅客在博物館逛

33、了一會兒,然后排隊乘坐旅行車。當一輛車可用時,它載入一個旅客,然后繞公園行駛任意長的時間。如果n輛車都已被旅客乘坐游玩,則想坐車的旅客需要等待;如果一輛車已經就緒,但沒有旅客等待,那么這輛車等待。使用信號量同步m個旅客和n輛車的進程。(10分)解:visitors=m;cars=n;mutex=1;Pvi()Pci() repeat repeat wait(cars);wait(visitors); wait(mutex); wait(mutex); get on;start; travell;run; get off;stop; signal(cars); signal(visitors);

34、 wait(mutex); wait(mutex); until false; until false;8.讀者與寫者問題 (reader - writer problems ) (10分) 在計算機體系中,對一個共享文件進行操作的進程可分為兩類:讀操作和寫操作,它們分別被稱為讀者和寫者。訪問該文件時讀者和寫者,寫者和寫者間必須實現(xiàn)互斥。只有在沒有讀者訪問文件時,寫者才允許修改文件?;蛘邔懻咴谛薷奈募r不允許讀者去讀,否則會造成讀出的文件內容不正確。試寫出算法描述讀者和寫者的問題。解: 為了實現(xiàn)讀者與寫者的同步和互斥,我們設置一個信號量S,用于讀者與寫者之間或寫者與讀者之間的互斥,初值為“1”

35、。用一個變量rc 表示當前正在讀的讀者個數(shù),當進程可以去讀或讀結束后都要改變rc 的值,因此rc 又成為若干讀進程的共享變量,它們必須互斥地修改rc。故必須定義另一個用于互斥的信號量Sr,初值也是“1”。讀者-寫者問題可描述如下: S, Sr:semaphore; int rc = 0; S=Sr=1;process Reader I (i=1,2,.,m) process Writer j (j=1,2,.,k)begin begin P(Sr); rc = rc+1; P(S); if (rc=1) P(S); Write file F; V(Sr); V(S); read file F;

36、 end P(Sr); rc = tc-1; if (rc=0) V(S); V(Sr);end9、生產者和消費者問題 (10分)有一組生產者P1,P2,PM和一組消費者C1,C2,CK,他們通過由n個環(huán)形緩沖區(qū)構成的緩沖池進行通信,生產者把產品放入緩沖區(qū),消費者從緩沖區(qū)取產品來消費。請用wait和signal原語實現(xiàn)他們的同步操作。解:生產者和消費者問題begin Var mutex,empty,full:semaphore:=1,n,0; buffer:array0,n-1 of item; in,out:integer := 0,0;parbegin producer: beginrep

37、eatproduce next product ;wait (empty);wait (mutex);buffer(in):=nextp ;in := (in+1) mod n ;signal (full);signal (mutex);until false ;endconsumer: begin repeatwait (full);wait (mutex);nextc := buffer(out);out := (out+1) mod n;signal (empty);signal (mutex);consume the item in nextc;until false ;endpare

38、ndend10、請用信號量描述哲學家進餐問題。(15分)解:哲學家進餐問題(15分)public void philosopher (int i) while (true) think();wait (forki);wait (fork (i+1) % 5);eat();signal(fork (i+1) % 5);signal(forki);11今有三個并發(fā)進程R,M,P,它們共享了一個可循環(huán)使用的緩沖區(qū)B,緩沖區(qū)B共有N個單元。進程R負責從輸入設備讀信息,每讀一個字符后,把它存放在緩沖區(qū)B的一個單元中;進程M負責處理讀入的字符,若發(fā)現(xiàn)讀入的字符中有空格符,則把它改成“,”;進程P負責把處理

39、后的字符取出并打印輸出。當緩沖區(qū)單元中的字符被進程P取出后,則又可用來存放下一次讀入的字符。請用PV操作為同步機制寫出它們能正確并發(fā)執(zhí)行的程序。 (10分)解:(10分)begin Var mutex,input,calculate,output:semaphore:=1,n,0,0; buffer:array0,n-1 of item; in,mid,out:integer := 0,0,0;proR() do wait (input);wait (mutex);buffer(in):=input data;in := (in+1) mod n ;signal (calculate);sig

40、nal (mutex);while true ; proM() do wait (calculate);wait (mutex);buffer(middle):=calculate data ;mid := (mid+1) mod n ;signal (output);signal (mutex); while true ; proP() do wait (output);wait (mutex);buffer(out):=calculate data ;out := (out+1) mod n ;signal (input);signal (mutex); while true ; 12.理

41、發(fā)店里有一位理發(fā)師、一把理發(fā)椅子和五把供等候理發(fā)的顧客坐的椅子。如果沒有顧客,理發(fā)師便在理發(fā)椅上睡覺。當一個顧客到來時,他必須先叫醒理發(fā)師,如果理發(fā)師正在理發(fā)時又有顧客來到,而如果有空椅子可坐,他們就坐下來等,如果沒有空椅子,他就離開。這里的問題是為理發(fā)師和顧客各編寫一段程序來描述他們行為,并用wait和signal原語操作實現(xiàn)其同步。(10分)解:理發(fā)師問題 #define CHAIRS 5 /*為等候的顧客準備椅子數(shù)*/ typedef int semaphore; /* 運用你的想像力*/ semphore customers=0; /*等候服務的顧客數(shù)*/ semaphore barb

42、ers=0 /*等候服務的理發(fā)師數(shù)*/ semaphore mutex=1; /*用于互斥*/int waiting=0; /*還沒理發(fā)的等候顧客*/ void barber (void) while(TRUE) wait(customers); /*如果顧客數(shù)是0,則睡覺*/ wait(mutex); /*要求進程等候*/ waiting=waiting-1; /*等候顧客數(shù)減1*/ signal(barbers); /*一個理發(fā)師現(xiàn)在開始理發(fā)*/ signal(mutex); /*釋放等候*/cut_hair(); /*理發(fā)(非臨界區(qū)操作)*/ void customers (void)

43、wait(mutex);if (waiting<CHAIRS) waiting=waiting+1;signal(customers);signal(mutex);wait(barbers); else signal(mutex); 13、根據如下的前趨圖寫出可并發(fā)執(zhí)行的程序:(10分)1234567解:(10)評分:變量、進程、程序主體每項一分。var a,b,c,d,e,f,g,h,i:semaphore := 0,0,0,0,0,0,0,0;beginparbegin begin S1;signal(a); signal(b); end begin wait(a); S2; sig

44、nal(c);signal(d); end begin wait(c); S3; signal(e);signal(f); end begin wait(b); S4; signal(g); end begin wait(d);wait(e) S5; signal(h); end begin wait(f); wait(g); S6 ; signal(i); end begin wait(h); wait(i); S7; endparendend14、某車站售票廳,任何時刻最多可容納20名購票者進入,當售票廳中少于20名購票者時,則廳外的購票者可立即進入,否則需在外面等待。若把一個購票者看作一

45、個進程,請回答下列問題:(1)用wait和signal操作管理這些并發(fā)進程時,應怎樣定義信號量,寫出信號量的初值以及信號量各種取值的含義。(2)根據所定義的信號量,加上wait和signal原語,寫出購票者進程的算法,以保證進程能夠正確地并發(fā)執(zhí)行。 (3)若欲購票者最多為n個人,寫出信號量可能的變化范圍(最大值和最小值)。解:(1)定義一信號量S,初始值為20。意義:S>0S的值表示可繼續(xù)進入售 票廳的人數(shù)S=0表示售票廳中已有20名顧 客(購票者) S<0|S|的值為等待進入售票 廳的人數(shù)(2) int S=20; COBEGINPROCESSPI(I=1,2,) begin進入

46、售票廳; wait(S);購票;signal(S);退出; end; COEND(3)S的最大值為20 S的最小值為20n第三章 處理解調度與死鎖1死鎖:指多個進程因競爭資源二造成的一種僵局,若無外力的作用,這些進程將永遠不能再向前推進。2在響應比最高者優(yōu)先的作業(yè)調度算法中,當各個作業(yè)等待時間相同時,運行時間短的作業(yè)將得到優(yōu)先調度;當各個作業(yè)要求運行的時間相同時,等待時間長的作業(yè)得到優(yōu)先調度。 3有三個同時到達的作業(yè)J1,J2和J3,它們的執(zhí)行時間分別是T1,T2和T3,且T1<T2<T3。系統(tǒng)按單道方式運行且采用短作業(yè)優(yōu)先算法,則平均周轉時間是(3*T1+2*T2+T3)/3。4

47、一個作業(yè)從進入系統(tǒng)到運行結束,一般要經歷“后備”、“執(zhí)行”和“完成”三個 不同狀態(tài)。 5在批處理兼分時的系統(tǒng)中,往往由分時系統(tǒng)控制的作業(yè)稱為前臺作業(yè),而由批處理系統(tǒng)控制的作業(yè)稱為后臺作業(yè)。 6.一個理想的作業(yè)調度算法應該是既能提高系統(tǒng)效率或吞吐量高 及時得到計算結果又能使進入系統(tǒng)的作業(yè)周轉時間短等_。7產生死鎖的四個必要條件是互斥條件和請求和保持,不剝奪條件和環(huán)路條件。8在響應比最高者優(yōu)先的作業(yè)調度算法中,當各個作業(yè)等待時間相同時,運行時間短的作業(yè)將得到優(yōu)先調度;當各個作業(yè)要求運行的時間相同時,等待時間長的作業(yè)得到優(yōu)先調度。9設單CPU環(huán)境下,有三道作業(yè),它們的提交時間及運行時間如下表:作業(yè)提

48、交時間(單位:基本時間單位)運行時間(單位:基本時間單位)J1J2J3023742若采用短作業(yè)優(yōu)先調度策略,作業(yè)單道串行運行時的調度次序為J1,J3,J2,平均周轉時間=8。10系統(tǒng)為一個有6頁的進程分配4個物理塊,其頁表如下所示(時間單位:滴答),頁的大小為1K,請計算邏輯地址為0x17C8的物理地址。頁號塊號裝入時間 上次引用時間 R(讀) M(修改)0 7126279 0014230 2601 022120 272 1 139160 280 1 111按CLOCK算法為0x03C8;按FIFO算法為0x0BC8;按LRU算法為0x07C8。12用戶要求計算機系統(tǒng)所做的工作的集合稱為作業(yè)。 13一作業(yè)進入內存后,則所屬該作業(yè)的進程初始時處于( )狀態(tài)。 A、運行 B、等待 C、就緒 D、收容 14運行時間最短的作業(yè)被優(yōu)先調度,這種企業(yè)調度算法是(c) A 優(yōu)先級調度 B 響應比高者優(yōu)先 C 短作業(yè)優(yōu)先 D 先來先服務 15產生死鎖的主要原因是進程運行推進的順序不合適(D) A 系統(tǒng)資源不足和系統(tǒng)中的進程太多 B 資源的獨占性和系統(tǒng)中的進程太多 C 進程調度不當和資源的獨占性 D 資源分配不當和系統(tǒng)資源不足16 B 是指從作業(yè)進

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論