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

下載本文檔

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

文檔簡介

1、操作系統(tǒng)原理第一章習題1 簡述計算機系統(tǒng)的組成。參考答案:計算機系統(tǒng)就是按人的要求接收和存儲信息,自動進行數(shù)據(jù)處理和計算,并輸出結果信息的系統(tǒng)。一個完整的計算機系統(tǒng)是由硬件和軟件兩大部分組成的。通常硬件是指計算機物理裝置本身,是完成系統(tǒng)各項工作的物質基礎,主要包括中央處理器(CPU)、存儲器和各種輸入輸出設備(簡稱I/O設備);而軟件是各種程序和文件,用于指揮和管理整個計算機系統(tǒng)按指定的要求進行工作。2 什么是操作系統(tǒng)?它在計算機中的地位如何?其功能有哪些?參考答案:操作系統(tǒng)是一組控制和管理計算機硬件和軟件資源,合理地對各類作業(yè)進行調度,以及方便用戶使用的程序的集合。 操作系統(tǒng)是計算機系統(tǒng)中最

2、靠近硬件的一層軟件,它支持和管理硬件,與具體的應用領域無關,在計算機系統(tǒng)的所有軟件中,操作系統(tǒng)是基礎,其它軟件只有在操作系統(tǒng)的支持下,才能發(fā)揮作用。它是計算機硬件和其它軟件以及計算機用戶之間的聯(lián)系紐帶,如果沒有操作系統(tǒng),用戶幾乎無法使用計算機系統(tǒng)。從資源管理的觀點看,操作系統(tǒng)具有五個方面的功能:處理器管理、存儲器管理、設備管理、文件管理和提供用戶接口。這五大部分相互配合,協(xié)調工作,實現(xiàn)計算機系統(tǒng)的資源管理、控制程序的執(zhí)行、并為用戶提供方便的使用接口。3 操作系統(tǒng)有哪幾種類型?各有什么特點?參考答案:操作系統(tǒng)是隨著計算機硬件技術的不斷發(fā)展和用戶的使用要求的提高而從無到有不斷完善起來的,其主要類型

3、及其特點如下:(1) 批處理操作系統(tǒng):具有很高的資源利用率和系統(tǒng)吞吐量,但作業(yè)的平均周轉時間較長,也沒有交互性。(2) 分時操作系統(tǒng):具有多路性、獨立性、及時性和交互性特征,而交互性是其最重要的特征之一。(3) 實時操作系統(tǒng):實時操作系統(tǒng)通常是專用的,具有高及時性和高可靠性,但交互性較弱。(4) 微機操作系統(tǒng):是配置在微型計算機上的操作系統(tǒng),可以是單任務或多任務,也可以是單用戶或多用戶系統(tǒng)。(5) 網絡操作系統(tǒng):是配置在網絡中的操作系統(tǒng),用于管理網絡通信和共享資源,協(xié)調各計算機上任務的運行,并向用戶提供統(tǒng)一的、有效方便的網絡接口。(6) 分布式操作系統(tǒng):是配置在分布式處理系統(tǒng)上的操作系統(tǒng),其最

4、基本的特征是能實現(xiàn)處理上的分布,而處理分布的實質是資源、功能、任務和控制都是分布的。(7) 嵌入式操作系統(tǒng):通常具有以下特點:(1)操作系統(tǒng)規(guī)模一般較小。因為通常相應硬件配置較低,而且對操作系統(tǒng)提供的功能要求也不高。(2)應用領域差別大。對于不同的應用領域其硬件環(huán)境和設備配置情況有明顯得差別。4 分時操作系統(tǒng)和實時操作系統(tǒng)各有什么特點?兩者有什么區(qū)別?參考答案:分時操作系統(tǒng)具有多路性、獨立性、及時性和交互性特征,而實時操作系統(tǒng)通常是專用的,具有高及時性和高可靠性,但交互性較弱。兩者的主要區(qū)別是:從交互性上,分時系統(tǒng)具有很高的交互性,能向終端用戶提供數(shù)據(jù)處理服務、資源共享等服務,而實時系統(tǒng)雖然也

5、具有交互性,但這里人與系統(tǒng)的交互,僅限于訪問系統(tǒng)中某些特定的轉用服務程序;從及時性上,實時信息系統(tǒng)與分時系統(tǒng)相似,都是以人所能接受的等待時間來確定的,而實時控制系統(tǒng)的及時性則是以控制對象所要求的截止時間來確定的,一般為秒級、百毫秒級直至毫秒級,甚至要低于100微秒;從可靠性上,分時系統(tǒng)雖然也要求系統(tǒng)可靠,但相比之下,實時系統(tǒng)則要求系統(tǒng)高度可靠,因此在實時系統(tǒng)中,往往都采取了多級容錯措施來保證系統(tǒng)的安全性及數(shù)據(jù)的安全性。5 對于用戶來說,分時操作系統(tǒng)與批處理操作系統(tǒng)相比有哪些主要優(yōu)點?參考答案:對于用戶來說,分時系統(tǒng)讓每個用戶都擁有一個獨立的終端,方便用戶隨時上機;同時,為用戶提供了很好的人機交

6、換能力,使用戶能對自己的作業(yè)進行直接控制,這對于程序員調試程序尤為重要。6 什么是多道程序設計技術?它有什么優(yōu)點?試畫出三道作業(yè)的運行情況。參考答案:多道程序設計技術的基本思想是按照一定的算法選擇若干個作業(yè)同時裝入內存,在管理程序的控制下交替執(zhí)行,共享CPU和系統(tǒng)中的其它各種資源,每當正在運行的程序因某種原因(如等待I/O操作的完成)不能繼續(xù)運行時,CPU立即轉去執(zhí)行另一道程序。其主要優(yōu)點是既提高了CPU的利用率,也提高了內存和I/O設備的利用率,同時也大幅增加了系統(tǒng)吞吐量三道作業(yè)的運行情況:7 現(xiàn)有以下計算機的應用場合,請為其選擇適當?shù)牟僮飨到y(tǒng): 航空航天,核變研 究; 國家統(tǒng)計局數(shù)據(jù)處理中

7、心; 機房學生上機學習編程; 鍋爐爐溫控制; 民航機票訂購系統(tǒng); 兩個不同地區(qū)之間發(fā)送電子郵件; 產品組裝流水線。參考答案: 航空航天,核變研究:配置實時操作系統(tǒng); 國家統(tǒng)計局數(shù)據(jù)處理中心:配置批處理操作系統(tǒng); 機房學生上機學習編程:配置分時操作系統(tǒng); 鍋爐爐溫控制:配置實時操作系統(tǒng); 民航機票訂購系統(tǒng):配置實時操作系統(tǒng); 兩個不同地區(qū)之間發(fā)送電子郵件:配置網絡操作系統(tǒng); 產品組裝流水線:配置實時操作系統(tǒng)。8 操作系統(tǒng)有哪些特征?其最基本的特征是什么?它們之間有什么聯(lián)系?參考答案:不同操作系統(tǒng)的特征各不相同,但都具有以下幾個基本特征:并發(fā)性、共享性、虛擬性和異步性。其中最基本的特征是并發(fā)和共享

8、,它們互為存在條件。首先,共享是以并發(fā)執(zhí)行為條件,若系統(tǒng)不支持程序并發(fā)執(zhí)行,則系統(tǒng)中將不存在資源共享;同時,共享也必然會影響程序的并發(fā)執(zhí)行,若資源共享不當,并發(fā)性會減弱,甚至無法實現(xiàn)。9 操作系統(tǒng)一般為用戶提供了哪三種使用接口?參考答案:現(xiàn)代操作系統(tǒng)通常向用戶提供以下三種類型的用戶接口:(1) 命令接口:操作系統(tǒng)向用戶提供一組鍵盤操作命令。用戶從鍵盤上輸入命令, 命令解釋程序接收并解釋這些命令,然后調用操作系統(tǒng)內部的相應程序,完成相應的功能。(2) 程序接口:是操作系統(tǒng)內核與應用程序之間的接口,是為應用程序在執(zhí)行中訪問系統(tǒng)資源而設置的,通常由一組系統(tǒng)調用組成,每一個系統(tǒng)調用都是一個能完成特定功

9、能的子程序。系統(tǒng)調用只能在程序中調用,不能直接作為命令從鍵盤上輸入執(zhí)行。(3) 圖形接口:這是為了方便用戶使用操作系統(tǒng)而提供的圖形化操作界面。用戶利用鼠標、窗口、菜單、圖標等圖形用戶界面工具,可以直觀、方便、有效地使用系統(tǒng)服務和各種應用程序及實用工具,而不必象使用命令接口那樣去記住命令名及格式。第二章習題:1 進程管理主要包括哪些管理功能?參考答案:進程管理實際上就是對處理器的管理,因為傳統(tǒng)的多道程序系統(tǒng)中,處理器的分配和運行都是以進程為基本單位的。主要有以下幾方面的功能:進程控制、進程互斥與同步、進程通信、進程調度。2 什么是進程?進程有哪些特征?其中最基本的特征是什么?參考答案:進程是具有

10、一定獨立功能的程序關于某個數(shù)據(jù)集合的一次運行活動,是系統(tǒng)進行資源分配和調度的一個獨立單位。進程具有動態(tài)性、并發(fā)性、獨立性、異步性、結構性特征,其中最基本的特征是動態(tài)性。3 簡述進程與程序的區(qū)別和聯(lián)系。參考答案:進程與程序是兩個不同的概念,它們之間既有區(qū)別又有聯(lián)系。首先程序是構成進程的組成部分之一,一個進程的運行目標是執(zhí)行它所對應的程序,如果沒有程序,進程就失去了其存在的意義;反之,如果沒有進程,多道程序也不可能并發(fā)運行。但進程與程序又有著本質的區(qū)別:(1) 程序是靜態(tài)概念,本身可以作為軟件資源長期保存;而進程是程序的一次執(zhí)行 過程,是動態(tài)的,有一定的生命期。(2) 進程是一個能獨立運行的單位,

11、是系統(tǒng)進行資源分配和調度的基本單位,能與其它進程并發(fā)執(zhí)行,而程序則不然。(3) 程序和進程無一一對應關系。一個程序可由多個進程共享,而一個進程在其運行過程中又可順序地執(zhí)行多個程序。例如,在分時系統(tǒng)中多個終端用戶同時進行C程序編譯,這樣,一個C編譯程序對應多個用戶進程;而對每個用戶進程來說,在進行編譯的過程中會用到預處理、詞法及語法分析、代碼生成和優(yōu)化等幾個程序模塊。(4) 各進程在并發(fā)執(zhí)行過程中存在異步性特征,而程序本身是靜態(tài)的,沒有這個特征。4 進程有哪三種基本狀態(tài)?試說明引起進程狀態(tài)轉換的典型原因。參考答案:進程有就緒狀態(tài)、執(zhí)行狀態(tài)、阻塞狀態(tài)三種狀態(tài)。引起進程發(fā)生狀態(tài)轉換的典型原因:(1)

12、 就緒執(zhí)行:處于就緒狀態(tài)的進程,當進程調度程序為之分配了處理器后,該進程便由就緒狀態(tài)轉換到執(zhí)行狀態(tài)。 (2)執(zhí)行就緒:在分時系統(tǒng)中,正在執(zhí)行的進程如果時間片用完則將暫停執(zhí)行;在搶占調度方式中,如有更高優(yōu)先級的進程需要運行,將迫使正在運行的進程讓出CPU。 (3)執(zhí)行阻塞:正在執(zhí)行的進程因發(fā)生某事件而無法執(zhí)行,如等待I/O操作的完成或未能申請到所需的系統(tǒng)資源等,則進程轉為阻塞狀態(tài)。 (4)阻塞就緒:處于阻塞狀態(tài)的進程,所等待的事情已經發(fā)生,如I/O操作已完成或獲得了所需的資源,則進程將轉變?yōu)榫途w狀態(tài)。5 進程控制塊的作用是什么?在進程控制塊中主要包括哪些信息?參考答案:進程控制塊,簡稱PCB(P

13、rocess Control Block),是進程實體的重要組成部分,其中記錄了用于描述進程情況及控制進程運行所需要的全部信息。通過PCB,使得原來不能并發(fā)執(zhí)行的程序,成為能并發(fā)執(zhí)行的進程。在進程的控制和管理中,隨進程的創(chuàng)建而建立PCB;因進程的狀態(tài)變化而修改PCB的相關內容;當進程被撤銷時,系統(tǒng)收回其PCB??梢?,系統(tǒng)是根據(jù)PCB來感知進程的存在的,PCB是進程存在的唯一標志。不同的操作系統(tǒng)其PCB所包含的信息會有些不同,但PCB通常都應包含如下基本信息:(1)進程標識符:系統(tǒng)中的每個進程都有唯一的標識符,以標識一個進程,可以用字符串或編號表示。(2)說明信息:是與進程調度有關的一些信息,包

14、括進程所處的狀態(tài)、進程優(yōu)先權、進程等待時間或已執(zhí)行時間、進程阻塞原因等。(3)現(xiàn)場信息:主要是由處理器的各個寄存器中的內容組成,包括通用寄存器內容、指令計數(shù)器的值、程序狀態(tài)字內容以及用戶棧指針。當執(zhí)行中的進程因某種原因而暫停時,必須將這些寄存器中的信息保存在PCB中,以便當進程再次獲得處理器時,能從PCB中恢復上次斷點處的現(xiàn)場信息而正確地繼續(xù)執(zhí)行。(4)管理信息:是進程管理和控制所需要的相關信息,包括程序和數(shù)據(jù)在內存或外存的地址、進程同步和通信機制、資源清單(記錄進程所需的除CPU外的全部資源和已經分配到的資源)、進程隊列的鏈接指針等。6 進程創(chuàng)建、進程撤銷、進程阻塞、進程喚醒幾個原語主要應完

15、成哪些工作?參考答案:(1)進程創(chuàng)建原語的功能是為新進程申請一個空白PCB,分配必要的資源,并把新進程的相關信息填入PCB中,如進程名、父進程標識符、處理器初始狀態(tài)、進程狀態(tài)、進程優(yōu)先級、進程對應程序入口地址、資源申請和分配情況等。然后將其PCB插入就緒隊列等待進程調度。(2)進程撤消原語的主要功能是收回被撤消進程所占用的系統(tǒng)資源,包括PCB。原語首先檢查被撤消進程在系統(tǒng)中是否存在,如果存在,則回收該進程占用的所有系統(tǒng)資源,將其PCB從所在隊列中移出。如果該進程還有子進程,則一并予以撤消。最后撤消其PCB。(3)進程阻塞原語首先停止該進程的執(zhí)行,將CPU中各寄存器內容填入該進程的PCB中,并將

16、其狀態(tài)由“執(zhí)行”改為“阻塞”,然后插入相應的阻塞隊列,最后轉進程調度程序重新進行調度。(4)進程喚醒原語首先將被阻塞進程的PCB從所在阻塞隊列中移出,并將其PCB中的狀態(tài)由“阻塞”改為“就緒”,然后插入就緒隊列中等待調度。7 同步機制應遵循的四個準則是什么?參考答案:同步機制應遵循的四個準則是:(1) 空閑讓進:當無進程處于臨界區(qū)時,相應的臨界資源處于空閑狀態(tài),因而應允許一個請求進入臨界區(qū)的進程立即進入自己的臨界區(qū),以有效地利用資源。(2) 忙則等待:當已有進程進入臨界區(qū)時,表示相應的臨界資源正被訪問,因而所 有其它試圖進入相關臨界區(qū)的進程必須等待,以保證諸進程互斥訪問臨界資源。(3) 有限等

17、待:對要求訪問臨界資源的進程,應保證該進程能在有限的時間內進入 自己的臨界區(qū),以免陷入“永遠等待”狀態(tài)。(4) 讓權等待:當進程不能進入臨界區(qū)時,應立即釋放處理器,以免陷入“忙等”狀態(tài)。8 簡述進程互斥與同步的概念。參考答案:多個進程之間彼此無關,它們并不知道其它進程的存在,但由于同處于一個系統(tǒng)中,必然存在著資源共享關系。系統(tǒng)中某些資源一次只允許一個進程使用,這類資源稱為臨界資源,許多物理設備(如打印機、磁帶機等)和許多軟件資源(如共享變量、數(shù)據(jù)、表格、隊列等)都屬于臨界資源。多個進程在共享臨界資源時,必須以互斥方式共享。所謂進程同步是指相互合作的進程需按一定的先后順序執(zhí)行,以順利完成某共同任

18、務。具體說,這些進程之間需要交換一定的信息,當某進程未獲得其合作進程發(fā)來的信息之前,該進程等待,直到接收到相關信息時才繼續(xù)執(zhí)行,從而保證諸進程的協(xié)調運行。9 信號量的PV操作是如何定義的?試說明信號量的PV操作的物理意義。參考答案:P(S):將信號量S減1,若結果大于或等于0,則該進程繼續(xù)執(zhí)行;若結果小于0,則該進程被阻塞,并將其插入到該信號量的等待隊列中,然后轉去調度另一進程。V(S):將信號量S加1,若結果大于0,則該進程繼續(xù)執(zhí)行;若結果小于或等于0,則從該信號量的等待隊列中移出一個進程,使其從阻塞狀態(tài)變?yōu)榫途w狀態(tài),并插入到就緒隊列中,然后返回當前進程繼續(xù)執(zhí)行。PV操作的物理含義:信號量S

19、值的大小表示某類資源的數(shù)量。當S0時,其值表示當前可供分配的資源數(shù)目;當S0時,其絕對值表示S信號量的等待隊列中的進程數(shù)目。每執(zhí)行一次P操作,S值減1,表示請求分配一個資源,若S0,表示可以為進程分配資源,即允許進程進入其臨界區(qū);若S0,表示等待隊列為空;若S0,則表示等待隊列中有因申請不到相應資源而被阻塞的進程,于是喚醒其中一個進程,并將其插入就緒隊列。無論以上哪種情況,執(zhí)行V操作的進程都可繼續(xù)運行。10 什么是臨界資源?什么是臨界區(qū)?參考答案:系統(tǒng)中某些資源一次只允許一個進程使用,這類資源稱為臨界資源,許多物理設備(如打印機、磁帶機等)和許多軟件資源(如共享變量、數(shù)據(jù)、表格、隊列等)都屬于

20、臨界資源。每個進程中訪問臨界資源的那段代碼稱為臨界區(qū)。11 在生產者消費者問題中,如果缺少了V(full)或V(empty),或者將P(full)與P(mutex)互換位置,或者將V(full)與V(mutex)互換位置,結果分別是什么?參考答案:在生產者消費者問題中,如果缺少了V(full)或V(empty),系統(tǒng)最終可能進入死鎖狀態(tài)。將P(full)與P(mutex)互換位置,系統(tǒng)也可能進入死鎖狀態(tài)。將V(full)與V(mutex)互換位置,系統(tǒng)不會出現(xiàn)什么問題,最多只是臨界資源的釋放推遲。12 假設有三個并發(fā)進程P,Q,R,其中P負責從輸入設備上讀入信息并傳送給Q,Q將信息加工后傳送給

21、R,R則負責將信息打印輸出。寫出下列條件的并發(fā)程序:(1)進程P、Q共享一個緩沖區(qū),進程Q、R共享另一個緩沖區(qū)。(2)進程P、Q共享一個由m個緩沖區(qū)組成的緩沖池,進程Q、R共享另一個由n個緩沖區(qū)組成的緩沖池。參考答案:(1)第一步:確定進程3個進程P、Q、RP進程:l 從輸入設備上讀入信息l 將信息放入緩沖區(qū)1Q進程:l 從緩沖區(qū)1取出信息l 將信息放入緩沖區(qū)2中R進程:l 從緩沖區(qū)2取出信息l 將信息打印輸出第二步:確定進程的同步、互斥關系l 同步:P當緩存區(qū)1無數(shù)據(jù)時,才可以向緩沖區(qū)1寫入信息l 同步:Q當緩存區(qū)1有數(shù)據(jù)時,才可以從緩沖區(qū)1讀取信息l 同步:Q當緩存區(qū)2無數(shù)據(jù)時,才可以向緩

22、沖區(qū)2寫入信息l 同步:R當緩存區(qū)2有數(shù)據(jù)時,才可以從緩沖區(qū)2讀取信息第三步:設置信號量l 緩存區(qū)1無數(shù)據(jù),empty1,初值1l 緩存區(qū)1有數(shù)據(jù),full1,初值0l 緩存區(qū)2無數(shù)據(jù),empty2,初值1l 緩存區(qū)2有數(shù)據(jù),full2,初值0第四步:用偽代碼描述begin empty1,empty2,full1,full2:semaphore;empty1 :=1; empty2 :=1; full1 :=0; full2 :=0;cobeginP ( );Q ( ); R ( );coend;end;process P ( )begin L1: 從輸入設備上讀入信息; P(empty1);

23、 將信息放入緩沖區(qū)1; V(full1); goto L1 end;process Q ( )begin L2:P(full1);從緩沖區(qū)1取出信息; V(empty1); P(empty2);將信息放入緩沖區(qū)2; V(full2); goto L2 end;process R ( )begin L3:P(full2);從緩沖區(qū)2取出信息; V(empty2);將信息打印輸出 ; goto L3 ; end;(2)第一步:確定進程3個進程P、Q、RP進程:l 從輸入設備上讀入信息l 將信息放入緩沖池1中的一個空緩沖區(qū)中Q進程:l 從緩沖池1中的一個非空緩沖區(qū)中取出信息l 將信息放入緩沖池2中的

24、一個空緩沖區(qū)中R進程:l 從緩沖池2中的一個非空緩沖區(qū)中取出信息l 將信息打印輸出第二步:確定進程的同步、互斥關系l 同步:P當緩沖池1中有空的緩沖區(qū)時,才可以向緩沖池1寫入信息l 同步:Q當緩沖池1中有非空的緩沖區(qū)時,才可以從緩沖池1讀取信息l 同步:Q當緩沖池2中有空的緩沖區(qū)時,才可以向緩沖池2寫入信息l 同步:R當緩沖池2中有非空的緩沖區(qū)時,才可以從緩沖池2讀取信息第三步:設置信號量l 緩沖池1中的空緩沖區(qū)的數(shù)量,empty1,初值ml 緩沖池1中的非空緩沖區(qū)的數(shù)量,full1,初值0l 緩沖池2中的空緩沖區(qū)的數(shù)量,empty2,初值nl 緩沖池2中的非空緩沖區(qū)的數(shù)量,full2,初值0

25、第四步:用偽代碼描述begin empty1,empty2,full1,full2:semaphore;empty1 :=m; empty2 :=n; full1 :=0; full2 :=0;cobeginP ( );Q ( ); R ( );coend;end;process P ( )begin L1: 從輸入設備上讀入信息; P(empty1); 將信息放入緩沖池1中的一個空緩沖區(qū)中; V(full1); goto L1 end;process Q ( )begin L2:P(full1);從緩沖池1中的一個非空緩沖區(qū)中取出信息; V(empty1); P(empty2);將信息放入緩

26、沖池2中的一個空緩沖區(qū)中; V(full2); goto L2 end;process R ( )begin L3:P(full2);從緩沖池2中的一個非空緩沖區(qū)中取出信息; V(empty2);將信息打印輸出 ; goto L3 ; end;13 有四個并發(fā)進程:R1,R2,W1和W2,它們共享可以存放一個數(shù)的緩沖區(qū)。進程R1每次從磁盤讀入一個數(shù)存放到緩沖區(qū)中,供進程W1打印輸出;進程R2每次從鍵盤讀一個數(shù)存放到緩沖區(qū)中,供進程W2打印輸出。當緩沖區(qū)滿時,不允許再向緩沖區(qū)中存放數(shù)據(jù);當緩沖區(qū)空時,不允許再從緩沖區(qū)中取出數(shù)據(jù)打印輸出。試用PV操作實現(xiàn)四個進程的協(xié)調運行。參考答案:第一步:確定進

27、程4個進程R1、R2、W1、W2R1進程:l 從磁盤上讀入一個數(shù)l 將數(shù)存放到緩沖區(qū)中W1進程:l 將R1進程放進緩沖區(qū)中的數(shù)取出l 打印輸出R2進程:l 從鍵盤讀入一個數(shù)l 將數(shù)存放到緩沖區(qū)中W2進程:l 將R2進程放進緩沖區(qū)中的數(shù)取出l 打印輸出第二步:確定進程的同步、互斥關系l 同步:R1當緩存區(qū)無數(shù)據(jù)時,才可以向緩沖區(qū)寫入數(shù)據(jù)l 同步:R2當緩存區(qū)無數(shù)據(jù)時,才可以向緩沖區(qū)寫入數(shù)據(jù)l 同步:W1當緩存區(qū)中是R1寫的數(shù)據(jù)時,才可以將數(shù)據(jù)從緩沖區(qū)中讀出l 同步:W2當緩存區(qū)中是R2寫的數(shù)據(jù)時,才可以將數(shù)據(jù)從緩沖區(qū)中讀出第三步:設置信號量l 緩存區(qū)無數(shù)據(jù),empty,初值1l 緩存區(qū)中是R1寫

28、的數(shù)據(jù),full1,初值0l 緩存區(qū)中是R2寫的數(shù)據(jù),full2,初值0第四步:用偽代碼描述begin empty, full1,full2:semaphore;empty :=1; full1 :=0; full2 :=0;cobeginR1 ( );R2 ( ); W1 ( );W2 ( );coend;end;process R1 ( )begin L1: 從磁盤上讀入一個數(shù); P(empty); 將數(shù)存放到緩沖區(qū)中; V(full1); goto L1 end;process R2 ( )begin L2: 從鍵盤上讀入一個數(shù); P(empty); 將數(shù)存放到緩沖區(qū)中; V(full2

29、); goto L2 end;process W1 ( )begin L3:P(full1);將緩沖區(qū)中的數(shù)取出;V(empty);打印輸出; goto L3 end;process W2 ( )begin L4:P(full2);將緩沖區(qū)中的數(shù)取出;V(empty);打印輸出; goto L4 end;14 設公共汽車上,司機的活動順序是:啟動車輛、正常行車、到站停車;售票員的活動順序是:關車門、售票、開車門。現(xiàn)假設初始狀態(tài)為:司機和售票員都已經在車上,汽車處于停止狀態(tài),車門處于開的狀態(tài)。在汽車不斷地到站、停車、行駛過程中,請用信號量的PV操作實現(xiàn)司機與售票員之間的同步關系。參考答案:第一步

30、:確定進程2個進程 Driver(司機)、Busman(售票員)Driver進程:l 啟動車輛l 正常行車l 到站停車Busman進程:l 關車門l 售票l 開車門第二步:確定進程的同步、互斥關系l 同步:當售票員將車門關上后,司機才可以啟動車輛l 同步:當司機到站停車后,售票員打開車門第三步:設置信號量l 車門關上,close,初值0l 到站停車,stop,初值0第四步:用偽代碼描述begin close, stop:semaphore; close := 0; stop := 0;cobeginDriver ( );Busman ( );coend;end;process Driver (

31、 )begin L1: P(close);啟動車輛; 正常行始;到站停車;V(stop); goto L1 end;process Busman ( )begin L2: 關車門; V(close); 售票; P(stop); 開車門;goto L2 end;15 哲學家進餐問題:五位哲學家吃面條,只有五根筷子,每個人必須用一雙筷子才能吃面條。請用信號量的PV操作描述哲學家之間的關系。參考答案:錯誤解法!第一步:確定進程5個進程 Pi(i= 04)Pi進程:l 思考l 拿起左邊筷子l 拿起右邊筷子l 吃面條l 放下右邊筷子l 放下左邊筷子第二步:確定進程的同步、互斥關系互斥:筷子是互斥資源,

32、每個人都只能使用他左右的兩根筷子第三步:設置信號量l chopstick5 :表示5根筷子,初值 1第四步:用偽代碼描述begin chopstick04 :semaphore;chopstick04 := 1;cobeginprocess Pi(i=0,2,4)begin思考;P(chopsticki );P(chopsticki+1%5 );吃面條;V(chopsticki+1%5 );V(chopsticki );endcoend;end;錯誤原因:假如所有的哲學家都同時拿起左側筷子,看到右側筷子不可用,都在等待右側筷子,無限期地運行,但是都無法取得任何進展,即出現(xiàn)饑餓,所有哲學家都吃不

33、上飯。解決方案:1、 至多只允許四個哲學家同時進餐,以保證至少有一個哲學家能夠進餐,最終總會釋放出他所使用過的兩支筷子,從而可使更多的哲學家進餐。2、 規(guī)定奇數(shù)號的哲學家先拿起他左邊的筷子,然后再去拿他右邊的筷子;而偶數(shù)號的哲學家則相反.按此規(guī)定,將是1,2號哲學家競爭1號筷子,3,4號哲學家競爭3號筷子.即五個哲學家都競爭奇數(shù)號筷子,獲得后,再去競爭偶數(shù)號筷子,最后總會有一個哲學家能獲得兩支筷子而進餐。而申請不到的哲學家進入阻塞等待隊列,則先申請的哲學家會較先可以吃飯,因此不會出現(xiàn)餓死的哲學家。3、 將拿筷子的操作做成原子操作,即當一個哲學家正在拿筷子的時候,其它的哲學家不能動筷子,當他那好

34、筷子開始吃飯的時候,其它哲學家才可以拿筷子。這里給出正確解決方案中的第1種方案:解: 第一步:確定進程5個進程 Pi(i= 04)Pi進程:l 思考l 拿起左邊筷子l 拿起右邊筷子l 吃面條l 放下右邊筷子l 放下左邊筷子第二步:確定進程的同步、互斥關系互斥:筷子是互斥資源, 每個人都只能使用他左右的兩根筷子同步:只能有四個人同時吃飯第三步:設置信號量l chopstick5 :表示5根筷子,初值 1l num:表示允許吃面的人的個數(shù),初值4第四步:用偽代碼描述begin chopstick04 :semaphore;num : semaphore;chopstick04 := 1;num :

35、= 4;cobeginprocess Pi(i=0,2,4)begin思考;P (num);P(chopsticki);P(chopsticki+1%5 );吃面條;V(chopsticki+1%5 );V(chopsticki );V (num);endcoend;end;16 系統(tǒng)中只有一臺打印機,有三個進程在運行中都需要使用打印機進行打印輸出,問:這三個進程間有什么樣的制約關系?試用信號量的PV操作描述這種關系。參考答案:由于打印機是臨界資源,三個進程共享臨界資源,是互斥關系。 為臨界資源設置互斥信號量s,初始值為1:begin s :semaphore;s := 1;cobeginpr

36、ocess Pi(i=0,1,2)begin 其他工作;P (s);打印;V (s);endcoend;end;17 根據(jù)例2.5,把題目修改為以下幾種情況,請用PV操作實現(xiàn)他們之間的同步關系: (1)桌上一個盤子,只能放一只水果。爸爸放蘋果,媽媽放桔子,兒子只吃桔子,女兒只吃蘋果。(2)桌上一個盤子,只能放一只水果。爸爸放蘋果,媽媽放桔子,兒子吃桔子、蘋果。參考答案:第一步:確定進程4個進程Father(爸爸)、Mother(媽媽)、Son(兒子)、Daughter(女兒)Father進程:l 將蘋果放入盤中Mother進程:l 將桔子放入盤中Son進程:l 從盤中取出桔子l 吃桔子Daug

37、hter進程:l 從盤中取出蘋果l 吃蘋果第二步:確定進程的同步、互斥關系l 同步:Father當盤中無水果時,才可以將蘋果放入盤中l(wèi) 同步:Mother當盤中無水果時,才可以將桔子放入盤中l(wèi) 同步:Son當盤中有桔子時,才可以從盤中取出桔子l 同步:Daughter當盤中有蘋果時,才可以從盤中取出蘋果第三步:設置信號量l 盤中無水果,Sp,初值1l 盤中有桔子,So,初值0l 盤中有蘋果,Sa,初值0第四步:用偽代碼描述begin Sp,So,Sa:semaphore; Sp :=1; So :=0; Sa :=0;cobeginFather ( );Mother ( );Son ( );D

38、aughter ( );coend;end;process Father ( ) begin L1: P(Sp); 將蘋果放入盤中; V(Sa); goto L1; end;process Mother ( ) begin L2: P(Sp); 將桔子放入盤中; V(So); goto L2; end;process Son ( ) begin L3: P(So); 從盤中取出桔子; V(Sp) 吃桔子; goto L3; end;process Daughter ( ) begin L4: P(Sa); 從盤中取出蘋果; V(Sp) 吃蘋果; goto L4; end;(2)第一步:確定進程

39、3個進程Father(爸爸)、Mother(媽媽)、Son(兒子)Father進程:l 將蘋果放入盤中Mother進程:l 將桔子放入盤中Son進程:l 從盤中取出水果(桔子或蘋果)l 吃水果(桔子或蘋果)第二步:確定進程的同步、互斥關系l 同步:Father當盤中無水果時,才可以將蘋果放入盤中l(wèi) 同步:Mother當盤中無水果時,才可以將桔子放入盤中l(wèi) 同步:Son當盤中有水果(桔子或蘋果)時,才可以從盤中取出水果第三步:設置信號量l 盤中無水果,empty,初值1l 盤中有水果(桔子或蘋果),full,初值0第四步:用偽代碼描述begin empty, full:semaphore; em

40、pty:=1; full :=0;cobeginFather ( );Mother ( );Son ( );coend;end;process Father ( ) begin L1: P(empty); 將蘋果放入盤中; V(full); goto L1; end;process Mother ( ) begin L2: P(empty); 將桔子放入盤中; V(full); goto L2; end;process Son ( ) begin L3: P(full); 從盤中取出水果; V(empty); 吃水果; goto L3; end;18 有一個閱覽室,共有100個座位。讀者進入閱

41、覽室時必須在入口處進行登記;離開閱覽室時必須進行注銷。試用PV操作描述讀者進入/離開閱覽室的同步與互斥關系。參考答案:第一步:確定進程可以進入閱覽室的讀者可以有很多,這里設為n,即n個Reader(讀者)進程Reader進程:l 登記l 進入閱覽室l 讀書l 離開閱覽室l 注銷第二步:確定進程的同步、互斥關系l 同步:當教室內有空座位時,讀者才可以登記,并進入閱覽室l 互斥:同時只能有一個讀者在入口處進行登記l 互斥:同時只能有一個讀者在出口處進行注銷第三步:設置信號量l 教室內空座位數(shù)量,seat,初值100l 為入口處進行登記設置互斥信號量Sin,初值 1,表示當前可用l 為出口處進行注銷

42、設置互斥信號量Sout,初值 1,表示當前可用第四步:用偽代碼描述begin Sin, Sout, seat:semaphore; seat :=100; Sin := 1; Sout := 1;cobeginprocess Reader-i ( i = 1,2,n );beginP(seat);P(Sin);登記;V(Sin);進入閱覽室;讀書;離開閱覽室;P(Sout);注銷;V(Sout);V(seat);endcoend;end;19 某工廠有一個可以存放設備的倉庫,總共可以存放10臺設備。生產的每一臺設備都必須入庫,銷售部門可從倉庫提出設備供應客戶。設備的入庫和出庫都必須借助運輸工具

43、?,F(xiàn)只有一臺運輸工具,每次只能運輸一臺設備。請設計一個能協(xié)調工作的自動調度管理系統(tǒng)。參考答案:第一步:確定進程可以為入庫(Pin)和出庫(Pout)各設置一個進程Pin進程:l 生產了一臺設備l 使用運輸工具入庫Pout進程:l 使用運輸工具出庫l 提出設備供應客戶第二步:確定進程的同步、互斥關系l 同步:當倉庫中有空余位置存放設備時,設備才可以入庫l 同步:當倉庫中有存放的設備時,設備才可以出庫l 互斥:運輸工具是臨界資源,要互斥訪問第三步:設置信號量l 倉庫中有空余位置數(shù)量,empty,初值10l 倉庫中有存放的設備數(shù)量,full,初值 0l 為運輸工具設置互斥信號量S,初值 1,表示當前

44、可用第四步:用偽代碼描述begin empty, full, S:semaphore; empty := 10;full := 0;S := 1;cobeginPin ();Pout ();coend;end;process Pin ( ) begin L1: 生產了一臺設備 ;P(empty); P (S);使用運輸工具入庫;V (S); V(full); goto L1; end;process Pout ( ) beginL2: P(full);P (S);使用運輸工具出庫;V (S);V(empty);提出設備供應客戶; goto L2; end;20 進程通信主要有哪幾種類型?參考答

45、案:進程通信的類型主要有:共享存儲器系統(tǒng)、消息傳遞系統(tǒng)以及管道通信系統(tǒng)。21 高級調度與低級調度的主要任務是什么?為什么要引入中級調度?參考答案:高級調度又稱作業(yè)調度,其任務是從外存上的后備隊列中按照一定的原則選擇若干個作業(yè)調入內存,為他們創(chuàng)建進程,分配必要的資源,如內存、外設等,并將新創(chuàng)建的進程插入就緒隊列,準備執(zhí)行。低級調度通常又稱為進程調度,其任務是決定就緒隊列中的哪個進程獲得處理器,然后由分派程序把處理器分配給該進程,為它恢復運行現(xiàn)場,讓其運行。引入中級調度的主要目的是為了提高內存的利用率和系統(tǒng)吞吐量。22 引起進程調度的原因有哪些?參考答案:引起進程調度的原因有:(1)正在執(zhí)行的進程

46、執(zhí)行完畢,或因發(fā)生某事件而不能再繼續(xù)執(zhí)行;(2)執(zhí)行中的進程因提出I/O請求而暫停執(zhí)行;(3)在進程通信或同步過程中執(zhí)行了某種原語操作;(4)當采用基于優(yōu)先權的強占式調度算法時,就緒隊列中出現(xiàn)優(yōu)先級比當前正在執(zhí)行的進程優(yōu)先級更高的進程時;(5)當采用時間片輪轉調度算法時,當前進程的時間片用完了。23 選擇進程調度算法的原則有哪些?參考答案:一個操作系統(tǒng)如何選擇調度方式和算法,在很大程度上取決于操作系統(tǒng)的類型和目標,通常應盡量遵循以下幾方面的原則:(1) 周轉時間短。從作業(yè)提交開始到作業(yè)完成為止的時間間隔稱為周轉時間,它包括作業(yè)等待進入內存、進程在就緒隊列中等待、進程在CPU上執(zhí)行和完成I/O操

47、作所花費的時間總和。它主要用于評價批處理系統(tǒng)。為了能更準確地評價系統(tǒng)的性能,引入了另一個指標:帶權周轉時間,即作業(yè)的周轉時間與系統(tǒng)實際為其提供的服務時間之比。(2) 響應時間快。從用戶通過鍵盤提交一個請求開始,直至系統(tǒng)首次產生響應為止的時間間隔稱為響應時間,主要用于評價分時系統(tǒng)。(3) 要保證截止時間。所謂截止時間,是指某任務必須開始執(zhí)行的最遲時間,或必須完成的最遲時間,主要用于評價實時系統(tǒng)。(4) CPU利用率高。 當CPU的價格非常昂貴時,希望盡可能使它得到充分利用。CPU的利用率可從0到100,但在實際系統(tǒng)中,一般是在4090之間。(5) 系統(tǒng)吞吐量高。 所謂系統(tǒng)吞吐量,是指單位時間內系

48、統(tǒng)所完成的作業(yè)數(shù)量,主要用于評價批處理系統(tǒng)。24 批處理操作系統(tǒng)、分時操作系統(tǒng)和實時操作系統(tǒng)常用哪些進程調度算法?參考答案:批處理操作系統(tǒng)常用的進程調度算法有:先來先服務調度算法、短進程優(yōu)先調度算法、高優(yōu)先權優(yōu)先調度算法、高響應比優(yōu)先調度算法;分時操作系統(tǒng)常用的進程調度算法有:時間片輪轉調度算法、多級反饋隊列調度算法;實時操作系統(tǒng)常用的進程調度算法主要有:高優(yōu)先權優(yōu)先調度算法。25 什么是靜態(tài)優(yōu)先權和動態(tài)優(yōu)先權?各有何優(yōu)缺點?參考答案:靜態(tài)優(yōu)先級是在進程創(chuàng)建時根據(jù)進程的類型、進程對資源的需求以及用戶的要求而確定的,在進程的整個運行期間保持不變。對于動態(tài)優(yōu)先級,也是在創(chuàng)建進程時為進程賦予一個初始

49、優(yōu)先級,以后在進程的運行過程中隨著進程特性的變化,不斷修改優(yōu)先級,如隨著進程在就緒隊列中等待時間的增長,可提高進程的優(yōu)先級;隨著進程連續(xù)占用CPU時間的增長,可降低其優(yōu)先級,防止一個進程長期壟斷CPU等。26 設有五個進程,它們到達就緒隊列的時刻和運行時間如表25所示。若分別采用先來先服務算法和短進程優(yōu)先算法,試給出各進程的調度順序以及平均周轉時間。 表25 各進程到達就緒隊列的時刻、運行時間進程到達時刻運行時間P1P2P3P4P510.110.310.410.510.80.30.90.50.10.4參考答案:(1)先來先服務(FCFS)調度順序進程到達時刻運行時間開始時間完成時間周轉時間12

50、345P1P2P3P4P510.110.310.410.510.80.30.90.50.10.410.110.411.311.811.910.411.311.811.912.30.31.01.41.41.5平均周轉時間:T(0.3 + 1.0 + 1.4 + 1.4 + 1.5)/ 5 = 1.12(2) 短進程優(yōu)先(SPF)調度順序進程到達時刻運行時間開始時間完成時間周轉時間12345P1P3P4P5P210.110.410.510.810.30.30.50.10.40.910.110.410.911.011.410.410.911.011.412.30.30.50.50.62.0平均周轉時間:T(0.3 + 0.5 + 0.5 + 0.6 + 2.0)/ 5 = 0.7827 設有四個進程,它們到達就緒隊列的時刻、運行時間及優(yōu)先級(此處優(yōu)先級1為最低優(yōu)先級,

溫馨提示

  • 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

提交評論