操作系統(tǒng)第二版第二章課后習(xí)題答案_第1頁
操作系統(tǒng)第二版第二章課后習(xí)題答案_第2頁
操作系統(tǒng)第二版第二章課后習(xí)題答案_第3頁
操作系統(tǒng)第二版第二章課后習(xí)題答案_第4頁
操作系統(tǒng)第二版第二章課后習(xí)題答案_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第二章 進(jìn)程和線程 作業(yè)答案1,2,4, 6,7,10,11,12,14, 211. 在操作系統(tǒng)中為什么要引入進(jìn)程概念?它與程序的差別和關(guān)系是怎樣的?答:由于多道程序的并發(fā)執(zhí)行時共享系統(tǒng)資源,共同決定這些資源的狀態(tài),因此系統(tǒng)中各程序在執(zhí)行過程中就出現(xiàn)了相互制約的新關(guān)系,程序的執(zhí)行出現(xiàn)“走走停?!钡男聽顟B(tài)。用程序這個靜態(tài)概念已經(jīng)不能如實(shí)反映程序并發(fā)執(zhí)行過程中的這些特征。為此,人們引入“進(jìn)程(Process)”這一概念來描述程序動態(tài)執(zhí)行過程的性質(zhì)。進(jìn)程和程序是兩個完全不同的概念。進(jìn)程與程序的主要區(qū)別:進(jìn)程程序進(jìn)程是動態(tài)概念程序是靜態(tài)概念進(jìn)程具有并發(fā)性,宏觀上同時運(yùn)行程序本身具有順序性,程序的并發(fā)執(zhí)

2、行是通過進(jìn)程實(shí)現(xiàn)的進(jìn)程具有獨(dú)立性,是一個能獨(dú)立運(yùn)行的單位,是系統(tǒng)資源分配的基本單位,是運(yùn)行調(diào)度的基本單位程序本身沒有此特性程序和進(jìn)程無一一對應(yīng)關(guān)系,一個進(jìn)程可順序執(zhí)行多個程序一個程序可由多個進(jìn)程共用進(jìn)程異步前進(jìn),會相互制約程序不具備此特性進(jìn)程和程序之間存在密切的關(guān)系:進(jìn)程的功能是通過程序的運(yùn)行得以實(shí)現(xiàn)的,進(jìn)程活動的主體是程序,進(jìn)程不能脫離開具體程序而獨(dú)立存在。2. PCB的作用是什么?它是怎樣描述進(jìn)程的動態(tài)性質(zhì)的?答:PCB是進(jìn)程組成中最關(guān)鍵的部分。每個進(jìn)程有惟一的進(jìn)程控制塊;操作系統(tǒng)根據(jù)PCB對進(jìn)程實(shí)施控制和管理,進(jìn)程的動態(tài)、并發(fā)特征是利用PCB表現(xiàn)出來的;PCB是進(jìn)程存在的唯一標(biāo)志。PCB

3、中有表明進(jìn)程狀態(tài)的信息,該進(jìn)程的狀態(tài)包括運(yùn)行態(tài)、就緒態(tài)和阻塞態(tài),它利用狀態(tài)信息來描述進(jìn)程的動態(tài)性質(zhì)。4. 用如圖2-26所示的進(jìn)程狀態(tài)轉(zhuǎn)換圖能夠說明有關(guān)處理機(jī)的大量內(nèi)容。試回答: 什么事件引起每次顯著的狀態(tài)變遷? 下述狀態(tài)變遷因果關(guān)系能否發(fā)生?為什么?(A) 21 (B)32 (C)41運(yùn)行狀態(tài)就緒狀態(tài)阻塞狀態(tài)3412圖2-26 進(jìn)程狀態(tài)轉(zhuǎn)換圖答:(1)就緒 運(yùn)行:CPU空閑,就緒態(tài)進(jìn)程被調(diào)度程序選中運(yùn)行阻塞:運(yùn)行態(tài)進(jìn)程因某種條件未滿足而放棄CPU的占用。阻塞就緒:阻塞態(tài)進(jìn)程所等待的事件發(fā)生了。運(yùn)行就緒:正在運(yùn)行的進(jìn)程用完了本次分配給它的時間片(2)下述狀態(tài)變遷(A)21,可以。運(yùn)行進(jìn)程用完了

4、本次分配給它的時間片,讓出CPU,從就緒隊(duì)列中選一個進(jìn)程投入運(yùn)行。(B)32,不可以。任何時候一個進(jìn)程只能處于一種狀態(tài),它既然由運(yùn)行態(tài)變?yōu)樽枞麘B(tài),就不能再變?yōu)榫途w態(tài)。(C)41,可以。某一阻塞態(tài)進(jìn)程等到的事件出現(xiàn)了,而且此時就緒隊(duì)列為空,該進(jìn)程進(jìn)入就緒隊(duì)列后馬上又被調(diào)度運(yùn)行。6. 什么是進(jìn)程的互斥和同步?答:進(jìn)程的互斥:邏輯上本來完全獨(dú)立的若干進(jìn)程,由于競爭同一個資源而產(chǎn)生的相互制約關(guān)系。進(jìn)程的同步:進(jìn)程間共同完成一項(xiàng)任務(wù)時直接發(fā)生相互作用的關(guān)系,也就是說,這些具有伙伴關(guān)系的進(jìn)程在執(zhí)行時間次序上必須遵循確定的規(guī)律。7. 什么是臨界區(qū)和臨界資源?進(jìn)程進(jìn)入臨界區(qū)的調(diào)度原則是什么?答:一次僅允許一個

5、進(jìn)程使用的資源稱為臨界資源。在每個進(jìn)程中訪問臨界資源的那段程序叫做臨界區(qū)。進(jìn)程進(jìn)入臨界區(qū)的調(diào)度原則: 如果有若干進(jìn)程要求進(jìn)入空閑的臨界區(qū),一次僅允許一個進(jìn)程進(jìn)入。 任何時候,處于臨界區(qū)內(nèi)的進(jìn)程不可多于一個。如已有進(jìn)程進(jìn)入自己的臨界區(qū),則其他所有試圖進(jìn)入臨界區(qū)的進(jìn)程必須等待。 進(jìn)入臨界區(qū)的進(jìn)程要在有限時間內(nèi)退出,以便其他進(jìn)程能及時進(jìn)入自己的臨界區(qū)。 如果進(jìn)程不能進(jìn)入自己的臨界區(qū),則應(yīng)讓出CPU,避免進(jìn)程出現(xiàn)“忙等”現(xiàn)象。10. 系統(tǒng)中只有一臺打印機(jī),有三個用戶的程序在執(zhí)行過程中都要使用打印機(jī)輸出計(jì)算結(jié)果。設(shè)每個用戶程序?qū)?yīng)一個進(jìn)程。問:這三個進(jìn)程間有什么樣的制約關(guān)系?試用P,V操作寫出這些進(jìn)程使

6、用打印機(jī)的算法。答:(1) 這三個進(jìn)程之間存在互斥的制約關(guān)系。因?yàn)榇蛴C(jī)屬于臨界資源,必須一個進(jìn)程使用完之后另一個進(jìn)程才能使用。(2)設(shè)三個進(jìn)程分別為A、B、C mutex:用于互斥的信號量,初值為1。 進(jìn)程A 進(jìn)程B進(jìn)程C . . . . . . P(mutex) P(mutex) P(mutex) 使用打印機(jī) 使用打印機(jī) 使用打印機(jī) V(mutex) V(mutex) V(mutex) 11. 判斷下列同步問題的算法是否正確?若有錯,請指出錯誤原因并予以改正。 設(shè) A,B兩個進(jìn)程共用一個緩沖區(qū)Q,A向Q寫入信息,B從Q讀出信息,算法框圖如圖2-27所示。 設(shè)A,B為兩個并發(fā)進(jìn)程,它們共享一

7、個臨界資源。其運(yùn)行臨界區(qū)的算法框圖如圖2-28所示。進(jìn)程A臨界區(qū)代碼CSaV(S1)P(S2)進(jìn)程BP(S1)臨界區(qū)代碼CSbV(S2)信號量S1,S2的初值為0圖2-28 兩個并發(fā)進(jìn)程臨界區(qū)的算法框圖進(jìn)程A向Q寫入信息V(S)進(jìn)程BP(S)從Q讀出信息圖2-27 進(jìn)程A、B的算法框圖答:(1) 這個算法不對。進(jìn)程A,B共用一個緩沖區(qū),同步關(guān)系。如果A先運(yùn)行,且信息數(shù)量足夠多,則緩沖區(qū)Q中的信息會被后來的沖掉,造成信息丟失,進(jìn)程B不能從Q中讀出完整的信息。改正:進(jìn)程A,B同步使用一個緩沖區(qū), 設(shè)立兩個信號量:empty:緩沖區(qū)Q為空,初值為1;full:緩沖區(qū)Q為滿,初值為0;算法框圖如下圖所

8、示:進(jìn)程AP(mutex)臨界區(qū)代碼CSaV(mutex)進(jìn)程BP(mutex)臨界區(qū)代碼CSbV(mutex)圖2-28的算法框圖 改正后進(jìn)程AP(empty)向Q寫入信息V(full)進(jìn)程BP(full)從Q讀出信息V(empty)圖2-27的算法框圖 改正后(2) 這個算法不對。進(jìn)程A,B并發(fā)的,它們共享一個臨界資源,二者應(yīng)互斥地使用該臨界資源,在進(jìn)入臨界區(qū)時不存在A先B后的時序關(guān)系,而是哪個進(jìn)程先到一步就先進(jìn)入自己的臨界區(qū)。改正:A,B兩個進(jìn)程應(yīng)互斥地進(jìn)入臨界區(qū)。為此,設(shè)立一個互斥信號量mutex,初值為1,算法框圖如上所示。12. 設(shè)有一臺計(jì)算機(jī),有兩條I/O通道,分別接一臺卡片輸入

9、機(jī)和一臺打印機(jī)??ㄆ瑱C(jī)把一疊卡片逐一輸入到緩沖區(qū)B1中,加工處理后再搬到緩沖區(qū)B2中,并在打印機(jī)上打印結(jié)果,問: 系統(tǒng)要設(shè)幾個進(jìn)程來完成這個任務(wù)?各自的工作是什么 這些進(jìn)程間有什么樣的相互制約關(guān)系? 用P, V操作寫出這些進(jìn)程的同步算法。答:這是一個典型的生產(chǎn)者,消費(fèi)者問題1)系統(tǒng)可設(shè)三個進(jìn)程完成任務(wù),第一個進(jìn)程R,從卡片輸入機(jī)中讀入數(shù)據(jù),并且把數(shù)據(jù)放入緩沖區(qū)B1中,第二個進(jìn)程C從B1緩沖區(qū)中取數(shù)據(jù),加工處理后放入緩沖區(qū)B2中。第三個進(jìn)程P將緩沖區(qū)B2的內(nèi)容取出,在打印機(jī)上打印出來2)這三個進(jìn)程之間是同步關(guān)系R進(jìn)程受C進(jìn)程影響,B1放滿信息后R進(jìn)程要等待,等到C進(jìn)程將其中的信息全部取走,才能繼

10、續(xù)讀入信息;C進(jìn)程受R進(jìn)程和P進(jìn)程的約束,B1中信息放滿后C進(jìn)程才可從中取出它們,且B2被取空后C進(jìn)程才可將加工結(jié)果送入其中;P進(jìn)程受C進(jìn)程的約束,B2中信息放滿后P進(jìn)程才可從中取出它們,進(jìn)行打印。3)三個進(jìn)程之間必須協(xié)調(diào)工作,需設(shè)置四個信號量:B1empty:緩沖區(qū)B1空,初值為1;B1full:緩沖區(qū)B1滿,初值為0;B2empty:緩沖區(qū)B2空,初值為1;B2full:緩沖區(qū)B2滿,初值為0;進(jìn)程 R      進(jìn)程C      進(jìn)程Pwhile(TRUE)while(TRUE) while(TRUE) P(

11、B1empty);   P(B1full);    P(B2full); 從卡片機(jī)中讀入數(shù)據(jù) 將B1中的數(shù)據(jù)取出計(jì)算; 將緩沖區(qū)B2內(nèi)容 寫入緩沖區(qū)B1; V(B1empty); 在打印機(jī)中輸出; V(B1full); P(B2empty); V(B2empty); 計(jì)算結(jié)果送入B2中; V(B2full);   14. 假定一個閱覽室最多可容納100個人,讀者進(jìn)入和離開閱覽室時都必須在閱覽室門口的一張登記表上做標(biāo)識(進(jìn)入時登記,離開時去掉登記項(xiàng)),而且每次只允許一人登記或去掉登記。問: 應(yīng)編寫幾個程序完成此項(xiàng)工作? 程序的主要動作是什么,應(yīng)設(shè)置幾個進(jìn)程

12、?進(jìn)程與程序間的對應(yīng)關(guān)系如何? 用P,V操作寫出這些進(jìn)程的同步通信關(guān)系。答: 完成此項(xiàng)工作可編寫一個或兩個程序(函數(shù)),每個讀者對應(yīng)一個進(jìn)程。每個讀者的動作包括:l 進(jìn)入閱覽室前查表登記,這時要考慮閱覽室里是否有座位;l 進(jìn)入閱覽室,閱讀l 閱讀完畢,離開閱覽室,這時的操作主要是刪除登記項(xiàng),讓出座位。 設(shè)置的信號量有兩個: seats:閱覽室的空座位數(shù),初值為100; mutex:互斥使用登記表,初值為1。每位讀者進(jìn)程: P (seats);             

13、0;                /*沒有座位則離開*/ P(mutex);                            /*進(jìn)入臨界區(qū)*/ 填寫登記表; V

14、(mutex)                           /*離開臨界區(qū)*/ 進(jìn)入閱覽室讀書; P(mutex)                 &#

15、160;              /*進(jìn)入臨界區(qū)*/ 查表,刪除登記項(xiàng); V(mutex)                               

16、60;  /*離開臨界區(qū)*/ V(seats)                                   /*釋放一個座位資源*/ 21. 什么是線程?它與進(jìn)程有什么關(guān)系?答:線程(Thread)是進(jìn)程中實(shí)施調(diào)度和分派的基本單位線程和進(jìn)程的關(guān)系: 一個進(jìn)程可以有多個線程,但至少有一個線程;而一個線程只能在一個進(jìn)程的地址空間內(nèi)活動。 資源分配給進(jìn)程,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源。 處理機(jī)分配給線程,即真正在處理機(jī)上運(yùn)行的是線程。 線程在執(zhí)行過程中,需要協(xié)作同步。不同進(jìn)程的線程間要利用消息通信的辦法實(shí)現(xiàn)同步。主要問題:1、第1題,未回答“進(jìn)程與程序之間的關(guān)系”2、第4題“什么事件引起每次顯著的狀態(tài)變遷?”,沒

溫馨提示

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

最新文檔

評論

0/150

提交評論