《課后習(xí)題解答》PPT課件.ppt

上傳人:w****2 文檔編號:14733516 上傳時間:2020-07-29 格式:PPT 頁數(shù):17 大?。?90.84KB
收藏 版權(quán)申訴 舉報 下載
《課后習(xí)題解答》PPT課件.ppt_第1頁
第1頁 / 共17頁
《課后習(xí)題解答》PPT課件.ppt_第2頁
第2頁 / 共17頁
《課后習(xí)題解答》PPT課件.ppt_第3頁
第3頁 / 共17頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《課后習(xí)題解答》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《課后習(xí)題解答》PPT課件.ppt(17頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、第二章 課后習(xí)題解答,第2章 進程管理,1,1操作系統(tǒng)為什么要引入進程的概念? 【解答】程序在并發(fā)執(zhí)行方式下,運行時具有異步性的特征。這樣,就需要一個數(shù)據(jù)結(jié)構(gòu)PCB來記錄程序的狀態(tài),以及控制其狀態(tài)轉(zhuǎn)換所需的一些信息。因此,將PCB、程序、數(shù)據(jù)三者組成一個完整的實體,就是進程實體。進程是程序的一次執(zhí)行,引入進程的概念,便于操作系統(tǒng)對于程序的運行進行控制。,2試比較進程和程序的區(qū)別。 【解答】進程和程序之間存在著密切的聯(lián)系,但它們是兩個完全不同的概念。它們之間的主要區(qū)別是: (1)程序是靜態(tài)的概念,本身可以作為一種軟件資源長期保存著;而進程則是程序的一次執(zhí)行過程。它是動態(tài)的概念。 (2)進程是一個

2、能獨立運行的單位,能與其它進程并發(fā)執(zhí)行。進程是作為資源申請和調(diào)度單位存在的;而通常的程序是不能作為一個獨立運行的單位而并發(fā)執(zhí)行的。 (3)程序和進程無一一對應(yīng)的關(guān)系。一個程序可由多個進程共用;另一方面,一個進程在其活動中又可順序地執(zhí)行若干個程序。一個程序,運行一次,便創(chuàng)建了一個進程;同一個程序,若運行十次,就產(chǎn)生了十個進程。 (4)各個進程在并發(fā)執(zhí)行過程中會產(chǎn)生相互制約關(guān)系,造成各自前進速度的不可預(yù)測性。而程序本身是靜態(tài)的,不存在這種異步特征。,第2章 進程管理,2,3程序并發(fā)執(zhí)行,為什么會失去封閉性和可再現(xiàn)性? 【解答】在程序并發(fā)執(zhí)行的環(huán)境下,多個進程共享系統(tǒng)中的資源,這些資源是否被使用,及

3、每一時刻由哪個進程使用,將由多個進程的相互作用而決定。這樣,程序的執(zhí)行就失去了封閉性。某個進程的執(zhí)行必然受到其它進程的影響。 由于進程在并發(fā)執(zhí)行的過程中失去了封閉性,當下一次再運行該程序時,系統(tǒng)中存在的進程及各進程的狀態(tài)都可能發(fā)生變化,導(dǎo)致進程的執(zhí)行失去可再現(xiàn)性。 4什么叫進程的并發(fā)性?試舉一個進程并發(fā)執(zhí)行的例子。 【解答】多個進程在同一時間間隔內(nèi)同時發(fā)生,叫做進程的并發(fā)性。 例如:我們在Linux系統(tǒng)下使用編輯器vi進行編輯,而此時系統(tǒng)正在后臺運行一個編譯程序,此時,兩個進程并發(fā)執(zhí)行。,第2章 進程管理,3,5舉一個例子,說明一個程序可能同時屬于多個進程。 【解答】例如:超市的收銀系統(tǒng)。在每

4、個終端上,收銀員在運行收款程序,因此每個收銀員都在執(zhí)行一個進程。超市里同時有很多收款終端,同一個程序被并發(fā)執(zhí)行多次,造成了多個進程并發(fā)執(zhí)行。 6試說明PCB的作用,為什么說PCB是進程存在的惟一標志? 【解答】PCB的作用是:在一個在多道程序環(huán)境下,集中反映了一個進程的動態(tài)特征。在進程并發(fā)執(zhí)行時,由于資源共享,帶來各進程之間的相互制約。顯然,為了反映這些制約關(guān)系和資源共享關(guān)系,必須使用PCB中的信息,才能對進程實施有效的管理和控制。 PCB是進程實體的一部分,是操作系統(tǒng)中非常重要的數(shù)據(jù)結(jié)構(gòu),存放著進程所需的運行信息和控制信息,系統(tǒng)在創(chuàng)建進程時,首先創(chuàng)建PCB,然后通過PCB感知進程的存在,進

5、程在被撤消時,PCB也隨之被撤消。因此,PCB是進程存在的惟一標志。,第2章 進程管理,4,7說明進程由哪幾部分構(gòu)成? 【解答】進程實體通常就是由程序、數(shù)據(jù)集合和PCB這三部分構(gòu)成,也稱為“進程映像”。 8什么叫臨界區(qū)?為什么進程在進入臨界區(qū)之前,要先執(zhí)行申請操作,離開臨界區(qū),要做釋放操作? 【解答】將每個進程中訪問臨界資源的那段代碼稱為臨界區(qū),因此也可以說:不能被多個進程同時進入的程序或數(shù)據(jù)區(qū)域叫做臨界區(qū)。 因為臨界區(qū)不能由多個進程同時進入,因此,在進入臨界區(qū)之前,要先執(zhí)行申請操作,確保在沒有其它進程進入的情況下,該進程才能進入該臨界區(qū);在離開臨界區(qū)之前,要做釋放操作,以便其它進程可以進入該

6、臨界區(qū)。,第2章 進程管理,5,9試說明進程的基本狀態(tài)及轉(zhuǎn)換的原因。 【解答】在操作系統(tǒng)中,進程通常至少有三種基本狀態(tài):就緒狀態(tài)、執(zhí)行狀態(tài)和阻塞狀態(tài)。 進程狀態(tài)轉(zhuǎn)換的原因是:系統(tǒng)中的進程是并發(fā)執(zhí)行的。在系統(tǒng)中, CPU在不同的時間,按一定的算法為不同的進程服務(wù);系統(tǒng)中的資源是有限的;各進程之間存在相互作用。因此,進程并非固定處于某個狀態(tài),它將隨著自身的推進和外界條件的變化而發(fā)生變化。對于一個系統(tǒng),處于就緒狀態(tài)的進程,在調(diào)度程序為之分配了處理機之后,該進程便由就緒態(tài)轉(zhuǎn)變?yōu)閳?zhí)行狀態(tài)。當前進程如果因分配給它的時間片己用完而被暫停執(zhí)行時,該進程便由執(zhí)行狀態(tài)又回到就緒狀態(tài);一個處于執(zhí)行狀態(tài)的進程,因為等

7、待某外部事件發(fā)生而使該進程狀態(tài)轉(zhuǎn)變?yōu)樽枞麪顟B(tài)。一個處于阻塞狀態(tài)的進程,當它所需的外部事件滿足,它應(yīng)由阻塞狀態(tài)變?yōu)榫途w狀態(tài)。,第2章 進程管理,6,10在創(chuàng)建一個進程時,所要做的工作有哪些? 【解答】操作系統(tǒng)通過進程創(chuàng)建原語來創(chuàng)建一個進程。創(chuàng)建原語通過下述步驟創(chuàng)建一個進程: (1)申請空白PCB。 (2)為新進程分配資源。 (3)初始化進程控制塊。 (4)將新建進程插入就緒態(tài)隊列。,11從概念上說明記錄型信號量的構(gòu)成,描述wait原語和 signal 原語所進行的操作。 【解答】記錄型信號量的數(shù)據(jù)結(jié)構(gòu)由兩部分構(gòu)成,即:數(shù)值分量和指針分量。數(shù)值表示系統(tǒng)中可用的該類臨界資源的數(shù)量,而指針分量為進程鏈

8、表指針,指向等待該類資源的PCB隊列。 申請臨界資源的原語wait操作可描述為: procedure wait(S) var S: semaphore; begin s: =s-1; if s0 then 本進程繼續(xù); else 將本進程放入阻塞態(tài)隊列; 轉(zhuǎn)進程調(diào)度 end,第2章 進程管理,8,釋放臨界資源的原語signal操作可描述為: procedure signal(S) var S: semaphore; begin s: =s+1; if s0 then 喚醒指針L所指的阻塞態(tài)進程;; end,,,12在生產(chǎn)者消費者問題中,如果缺少了signal(full)或si

9、gnal(empty),對執(zhí)行結(jié)果將會有何影響? 【解答】若缺少釋放資源的原語操作,則會導(dǎo)致生產(chǎn)者或消費者進程不能再繼續(xù)工作。 如缺少了signal(full),則消費者進程可能得不到所需的臨界資源如緩沖區(qū),不能取一件產(chǎn)品;同樣,如果缺少signal(empty),則生產(chǎn)者進程又可能得不到所需的資源,不能存放一件產(chǎn)品。 13在生產(chǎn)者消費者問題中,如果兩個wait操作即wait(mutex)和wait(empty)位置互換,會產(chǎn)生什么后果? 【解答】如果兩個wait操作即wait(mutex)和wait(empty)位置互換,則有可能產(chǎn)生死鎖。,第2章 進程管理,9,14進程的高級通信方式有哪幾

10、種? 【解答】高級通信方式可分為三大類:共享存儲器系統(tǒng)、消息傳遞系統(tǒng)和管道通信系統(tǒng)。 在共享存儲器系統(tǒng)中,相互通信的進程共享某些數(shù)據(jù)結(jié)構(gòu)或共享存儲區(qū);消息傳遞系統(tǒng)中,進程間的數(shù)據(jù)交換以消息為單位,用戶直接利用系統(tǒng)提供的一組通信原語來實現(xiàn)通信,消息傳遞系統(tǒng)可分為消息緩沖通信和信箱通信;管道通信通信的方法是,向管道提供輸入的發(fā)送進程以字符流形式將大量的數(shù)據(jù)送入管道,而接受管道輸出的接收進程可從管道中接收數(shù)據(jù)。,第2章 進程管理,10,15什么是線程?說明它與進程的主要區(qū)別。 【解答】線程是進程中執(zhí)行運算的最小單位,亦即執(zhí)行處理機調(diào)府的基本單位。 線程與進程的主要區(qū)別如下: (1)調(diào)度性方面。進程是

11、資源分配的基本單位,線程是分配處理機的基本單位,它與資源分配無關(guān),即真正在處理機上運行的是線程。 (2)擁有資源方面。進程是擁有資源的獨立單位,線程基本是不擁有資源的。同一進程的線程共用該進程的資源。 (3)并發(fā)性方面。進程和線程都可以并發(fā)執(zhí)行。但同一個進程的線程在并發(fā)執(zhí)行時,狀態(tài)轉(zhuǎn)換速度較快。 (4)系統(tǒng)開銷方面。進程在創(chuàng)建、狀態(tài)轉(zhuǎn)換、撤銷時開銷較大,對于同樣的工作,線程的開銷較小。,第2章 進程管理,11,16什么是多線程機制?引入它有什么好處? 【解答】多線程機制是指操作系統(tǒng)支持在一個進程內(nèi)執(zhí)行多個線程的能力。 引入線程的好處有以下幾點: (1)易于調(diào)度。由于線程只作為獨立調(diào)度的基本單位

12、,同一進程的多個線程共享進程的資源,所以線程易于切換。 (2)提高了系統(tǒng)的效率。通過線程可方便有效地實現(xiàn)并發(fā)性。進程可創(chuàng)建多個線程來執(zhí)行同一程序的不同部分。 (3)創(chuàng)建一個線程比創(chuàng)建一個進程花費的開銷少,創(chuàng)建速度快。 (4)在多處理器的系統(tǒng)中,有利于發(fā)揮多處理器的功能,提高進程的并行性。,第2章 進程管理,12,17在讀者寫者問題中,如果修改問題中的同步算法,要求對寫進程優(yōu)先,即一旦寫進程到達,后續(xù)的讀者進程必須等待,而無論是否有讀者進程在讀文件。寫出相應(yīng)進程的程序段。 【解答】增加一個信號量S,用于在寫進程到達后封鎖后續(xù)的讀進程。 semaphore S=1; 在讀進程開頭,增加兩句; P(

13、S); V(S); 即所有訪問該文件的進程,在申請讀以前,先申請信號量S。如果沒有寫進程,則可以直接通過;如果存在寫進程,則該信號量S申請不到,該讀者進程等待。 對于寫進程,首先應(yīng)該申請信號量S,由于讀者進程申請到以后接著釋放該信號量,所以寫者進程更容易申請到S。寫者進程申請到S以后,直到寫操作完成以后才釋放該信號量。因此,讀者進程和寫進程改為:,第2章 進程管理,13,讀者一寫者問題可描述如下: semaphore rmutex=1,wmutex=1; semphore S=1; int readcount=0; void main() parbegin(reader,writer); /*

14、讀者進程*/ /*寫者進程*/ void reader() void writer() while(1) while(1) wait(s); wait(s); signal (s); wait(wmutex); wait(rmutex); 執(zhí)行寫操作; if (readcount==0) wait(wmutex); signal(wmutex); readcount++; signal (s); signal(rmutex); 進行讀操作; wait(rmutex); readcount--; if (readcount==0) signal(wmutex); s

15、ignal(rmutex); ,18試利用記錄型信號量寫出一個不會出現(xiàn)死鎖的哲學(xué)家進餐問題的算法。 【解答】有多種算法可解決該問題。 方法(1)至多只允許有四位哲學(xué)家同時去拿左邊的筷子。 實現(xiàn)方法:在每個進程的程序段前定義一個信號量S,初值為4,每個哲學(xué)家在使用筷子之前,先申請信號量S,吃完放下筷子后,再釋放S。 方法(2)僅當哲學(xué)家的左、右兩只筷子均可用時,才允許他拿起筷子進餐。解決的方法:可用AND型信號量。 方法(3)規(guī)定奇數(shù)號哲學(xué)家先拿他左邊的筷子,然后再去拿右邊的筷子;而偶數(shù)號哲學(xué)家則相反。 實現(xiàn)的方法:在第i個哲學(xué)家所執(zhí)行的程序段中判定i的值是偶數(shù)還是奇數(shù),然后再做資源申請。,

16、第2章 進程管理,15,19設(shè)公共汽車上有一位司機和一位售票員,它們的活動如下:,第2章 進程管理,16,請分析司機與售票員之間的同步關(guān)系,如何用P、V 操作實現(xiàn)。 【解答】為了安全起見,顯然要求:關(guān)車門后才能啟動車輛;到站后才能開車門。所以司機和售票員在到站、開門、關(guān)門、啟動車輛這幾個活動之間存在著同步關(guān)系。兩個信號量S1、S2分別表示可以開車和可以開門,S1的初值為1,S2的初值為0。,第2章 進程管理,17,20.說明Linux系統(tǒng)的進程有哪幾種狀態(tài)? 【解答】在Linux中,一個迸程的狀態(tài)信息是由task_struct結(jié)構(gòu)中的state成負描述的,它定義了5種進程狀態(tài): (1) TASK-RUNNING狀態(tài),運行狀態(tài)。此進程的運行狀態(tài)實際包含基本狀態(tài)中的執(zhí)行和就緒兩種狀態(tài)。進程是正在運行還是處于就緒狀態(tài)準備運行,要靠cunent來區(qū)分。 (2) TASK-INTERRUPTIBLE狀態(tài),可中斷的等待狀態(tài)。進程正在等待某些事件。 (3) TASK-UNINTERRUPTIBLE狀態(tài),不可中斷等待狀態(tài)。 (4) TASK-ZOMBIE狀態(tài),僵死狀態(tài)。由于某些原因進程被終止,這個迸程所占有的資源全部釋放之后,還保存著PCB信息,這種占有PCB但已被撤消的進程就處于僵死狀態(tài)。 (5) TASK-STOPPED狀態(tài),暫停狀態(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!