操作系統(tǒng) 習(xí)題及答案 第三章 進(jìn)程線程模型_第1頁
操作系統(tǒng) 習(xí)題及答案 第三章 進(jìn)程線程模型_第2頁
操作系統(tǒng) 習(xí)題及答案 第三章 進(jìn)程線程模型_第3頁
操作系統(tǒng) 習(xí)題及答案 第三章 進(jìn)程線程模型_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

第三章進(jìn)程線程模型習(xí)題操作系統(tǒng)中為什么要引入“進(jìn)程”?進(jìn)程和程序有什么區(qū)別?操作系統(tǒng)引入進(jìn)程作為資源分配和調(diào)度的一個獨立單位。區(qū)別是程序是靜態(tài)的,而進(jìn)程是動態(tài)的。進(jìn)程是程序的一個執(zhí)行過程。程序的存在是永久的。而進(jìn)程是為了程序的一次執(zhí)行而暫時存在的。進(jìn)程有生命周期,有誕生,亦有消亡。一個進(jìn)程可以包括若干程序的執(zhí)行,而一個程序亦可以產(chǎn)生多個進(jìn)程。進(jìn)程具有創(chuàng)建其他進(jìn)程的功能。被創(chuàng)建的進(jìn)程稱為子進(jìn)程,而創(chuàng)建者稱為父進(jìn)程,從而構(gòu)成了進(jìn)程家族。程序的并發(fā)執(zhí)行有什么特點?并發(fā)和并行有什么區(qū)別?并發(fā)執(zhí)行的特點是一個進(jìn)程可以同其他進(jìn)程一道向前推進(jìn),即一個進(jìn)程的第一個動作可以在另一個進(jìn)程的最后一個動作結(jié)束之前就開始。并行是在不同實體上的多個事件;并發(fā)是在同一實體上的多個事件。并行是指在同一時刻,有多條指令在多個處理器上同時執(zhí)行;并發(fā)是指在同一時刻只能有一條指令執(zhí)行,但多個進(jìn)程指令被快速的輪換執(zhí)行,使得在宏觀上具有多個進(jìn)程同時執(zhí)行的效果,但在微觀上并不是同時執(zhí)行的,只是把時間分成若干段,使多個進(jìn)程快速交替的執(zhí)行??稍偃氤绦蛴惺裁刺匦??一個能夠被多個用戶同時調(diào)用的程序稱作是“可再入”的程序??稍偃氤绦虮仨毷恰凹儭贝a的程序,程序在執(zhí)行中不會修改自身的代碼。換句話說,可再入程序必須和有關(guān)的數(shù)據(jù)區(qū)分離??稍偃氤绦虻牟僮鲗ο?,即數(shù)據(jù),是與程序相分離的,要求調(diào)用者提供專用工作區(qū),以保證程序以同樣方式為各用戶服務(wù)。進(jìn)程有哪些基本狀態(tài)?它們的變化關(guān)系是怎樣的?運行狀態(tài),就緒狀態(tài)和阻塞狀態(tài)。就緒狀態(tài)的進(jìn)程被進(jìn)程調(diào)度程序分配給處理器時,該進(jìn)程轉(zhuǎn)換為運行狀態(tài)。運行狀態(tài)的進(jìn)程在時間片用完后被中斷處理程序切換為就緒狀態(tài)。云興狀態(tài)的進(jìn)程因等待文件輸入等因素不能繼續(xù)運行時,切換為阻塞狀態(tài)。阻塞狀態(tài)的進(jìn)程在其被阻塞的原因解除后切換為就緒狀態(tài)。一個單CPU的操作系統(tǒng)共有n個進(jìn)程,不考慮進(jìn)程狀態(tài)過渡時的情況,也不考慮空轉(zhuǎn)進(jìn)程:(1)給出運行進(jìn)程的個數(shù)最少0個,最多1個(2)給出就緒進(jìn)程的個數(shù)最少0個,最多n-1個(3)給出等待進(jìn)程的個數(shù)最少0個,最多n個系統(tǒng)中有n(n>1)個進(jìn)程,在任一時刻,處于運行、就緒和等待狀態(tài)的進(jìn)程最多、最少各有幾個?假設(shè)系統(tǒng)有m個CPU,則運行狀態(tài)的進(jìn)程最少0個,最多m個;就緒狀態(tài)的進(jìn)程最少0個,最多n-m個;等待狀態(tài)的進(jìn)程最少0個,最多n個。進(jìn)程控制塊的作用是什么?其主要內(nèi)容有哪些?操作系統(tǒng)利用進(jìn)程控制塊來描述進(jìn)程的基本情況以及進(jìn)程的運行變化過程。進(jìn)程控制塊是進(jìn)程存在的唯一標(biāo)志,當(dāng)系統(tǒng)創(chuàng)建一個進(jìn)程時,為進(jìn)程設(shè)置一個進(jìn)程控制塊,再利用進(jìn)程控制塊對進(jìn)程進(jìn)行控制和管理。撤銷進(jìn)程時,系統(tǒng)收回它的進(jìn)程控制塊,進(jìn)程也隨之消亡。進(jìn)程控制塊的內(nèi)容可以分成調(diào)度信息和現(xiàn)場信息兩大部分。調(diào)度信息供進(jìn)程調(diào)度時使用,描述了進(jìn)程當(dāng)前所處的狀況,它包括進(jìn)程名、進(jìn)程號、存儲信息、優(yōu)先級、當(dāng)前狀態(tài)、資源清單、“家族”關(guān)系、消息隊列指針、進(jìn)程隊列指針和當(dāng)前打開文件等?,F(xiàn)場信息刻畫了進(jìn)程的運行情況,如程序狀態(tài)字、時鐘、界地址寄存器等等。進(jìn)程能否修改訪問自己的進(jìn)程控制塊內(nèi)容?不能何謂與時間有關(guān)的錯誤?舉例說明之。并發(fā)進(jìn)程執(zhí)行時一定會產(chǎn)生與時間有關(guān)的錯誤嗎?為什么?并發(fā)程序中共享了公共變量,使得程序的計算結(jié)果與程序執(zhí)行的順序有關(guān)。這種錯誤由程序執(zhí)行的順序不同導(dǎo)致,與時間有關(guān),所以把它稱作與時間有關(guān)的錯誤。不一定會,一方面并發(fā)執(zhí)行的程序有可能是無關(guān)進(jìn)程,另一方面并發(fā)進(jìn)程即使有相關(guān)進(jìn)程,其執(zhí)行也有多種可能,會存在按預(yù)期執(zhí)行的情況發(fā)生。為什么要引入線程?線程和進(jìn)程之間的區(qū)別和聯(lián)系是什么?為了能使多個程序更好地并發(fā)執(zhí)行,同時又盡量減少任務(wù)切換時系統(tǒng)的開銷。進(jìn)程是調(diào)度的基本單位而且還是獨立分配資源的單位。如果能夠把這兩個基本單位的功能分開,那么就有可能實現(xiàn)進(jìn)一步提高并發(fā)程度,同時又避免消耗過多的系統(tǒng)資源的目標(biāo)。正是在這種思想的指導(dǎo)下,產(chǎn)生了線程的概念。聯(lián)系:一個程序可以由多個進(jìn)程共用,一個進(jìn)程可以執(zhí)行多個程序,進(jìn)程存在的意義就是執(zhí)行程序,進(jìn)程可以看成程序在并發(fā)過程中的執(zhí)行過程。區(qū)別:進(jìn)程是動態(tài)的概念,程序是靜態(tài)的概念;程序是指令代碼的有序組合,進(jìn)程是程序的執(zhí)行過程,由程序、數(shù)據(jù)和進(jìn)程控制塊組成;進(jìn)程是暫時的,程序是永久的;進(jìn)程可以作為一個獨立運行的單位,能與其他進(jìn)程并發(fā)執(zhí)行;程序不能在多道程序環(huán)境下獨立運行;一個程序可以由多個進(jìn)程共用,一個進(jìn)程可以執(zhí)行多個程序用進(jìn)程概念說明操作系統(tǒng)的并發(fā)性和不確定性是怎樣體現(xiàn)出來的?進(jìn)程具有兩個基本屬性。首先,進(jìn)程是一個可擁有資源的獨立單位;其次,進(jìn)程同時又是一個可以獨立調(diào)度和分派的基本單位。正是由于進(jìn)程具有這兩個基本屬性,才使之成為一個能獨立運行的基本單位,從而也構(gòu)成了進(jìn)程并發(fā)執(zhí)行的基礎(chǔ)。并發(fā)性:一個進(jìn)程可以同其他進(jìn)程一道向前推進(jìn),即一個進(jìn)程的第一個動作可以在另一個進(jìn)程的最后一個動作結(jié)束之前就開始。不確定性:每個進(jìn)程按照各自獨立的、不可預(yù)知的速度向前推進(jìn)。不同的執(zhí)行順序可能導(dǎo)致不同的結(jié)果,因此具有不確定性。PCB的作用是什么?它是怎樣描述進(jìn)程的動態(tài)性質(zhì)的?概念及作用:PCB是進(jìn)程控制快,它是進(jìn)程組成中最關(guān)鍵的部分,包含進(jìn)程的描述信息和控制信息,如進(jìn)程名、進(jìn)程狀態(tài)信息、調(diào)度優(yōu)先級、通信信息、資源需求等。是操作系統(tǒng)感知進(jìn)程的存在,以及管理和控制進(jìn)程執(zhí)行的唯一依據(jù)。如何描述:PCB中有表明進(jìn)程狀態(tài)的信息:該進(jìn)程的狀態(tài)是運行態(tài)、就緒態(tài)還是阻塞態(tài),利用狀態(tài)信息來描述進(jìn)程的動態(tài)性質(zhì)。進(jìn)程的三個基本狀態(tài)轉(zhuǎn)換如圖3-10所示。圖中1,2,3,4表示某種類型的狀態(tài)變遷,請分別回答下述問題:圖3-10習(xí)題13(1)什么“事件”引起某一種類型的狀態(tài)變遷?1:調(diào)度程序從就緒隊列中選取一個進(jìn)程執(zhí)行時;2:正在執(zhí)行的進(jìn)程時間片用完;3:正在執(zhí)行的進(jìn)程因等待發(fā)生某事件而無法執(zhí)行下去;4:當(dāng)進(jìn)程阻塞的原因解除。(2)系統(tǒng)中常常由于某一進(jìn)程的狀態(tài)變遷引起另一進(jìn)程也產(chǎn)生狀態(tài)變遷,試判斷在下述情況下,如果有的話,將發(fā)生什么因果變遷?3→1,2→1,3→2,4→1,3→43→1:如果就緒隊列非空,則當(dāng)一個進(jìn)程發(fā)生變遷3時,會立即引起另一個進(jìn)程發(fā)生變遷1。2→1:當(dāng)發(fā)生變遷2時,正在執(zhí)行的進(jìn)程從執(zhí)行狀態(tài)變?yōu)榫途w狀態(tài),進(jìn)程調(diào)度程序必然會從就緒隊列中選取,即發(fā)生變遷1。3→2:當(dāng)前執(zhí)行進(jìn)程從執(zhí)行狀態(tài)變?yōu)樽枞麪顟B(tài),不可能同時又從執(zhí)行狀態(tài)變?yōu)榫途w狀態(tài),,沒有因果變遷。4→1:一個進(jìn)程從等待狀態(tài)轉(zhuǎn)換為就緒狀態(tài)是因為等待的事件發(fā)生,不會導(dǎo)致其他進(jìn)程狀態(tài)發(fā)生改變,沒有因果變遷。3→4:一個進(jìn)程阻塞是因為進(jìn)程自身原因,和其他進(jìn)程無關(guān),沒有因果變遷。(3)在什么情況下,如果有的話,下述變遷中哪些將不立即引起其他變遷?1,2,3,44(4)引起進(jìn)程狀態(tài)發(fā)生變遷的根本原因是什么?進(jìn)程具有動態(tài)性,在從創(chuàng)建到終止的全過程中一直處于一個不斷變化的過程。試列舉出進(jìn)程狀態(tài)轉(zhuǎn)換的典型原因和引起進(jìn)程調(diào)度的因素。就緒→運行:進(jìn)程被調(diào)度程序選中運行→就緒:時間片用完運行→阻塞:等待某事件發(fā)生阻塞→就緒:等待的時間已經(jīng)發(fā)生運行的進(jìn)程用完了時間片;運行的進(jìn)程等待某一事件開始阻塞在一個進(jìn)程中使用多個線程有以下兩個優(yōu)點:(1)在一個已有進(jìn)程中創(chuàng)建一個新線程比創(chuàng)建一個新進(jìn)程所需的工作量少;(2)在同一個進(jìn)程中的線程間的通信比較簡單。請問,同一個進(jìn)程中的兩個線程間的模式切換與不同進(jìn)程中的兩個線程間的模式切換相比,所需的工作量是否要少?是,因為進(jìn)程切換時需要保存更多狀態(tài)信息。在比較用戶級線程和內(nèi)核級線程時曾指出用戶級線程的一個缺點是,當(dāng)一個用戶級線程執(zhí)行系統(tǒng)調(diào)用時,不僅這個線程被阻塞,進(jìn)程中的所有線程都被阻塞。請問這是為什么?當(dāng)用戶進(jìn)程調(diào)用一個系統(tǒng)調(diào)用時,要由用戶態(tài)管態(tài)轉(zhuǎn)入第二章中主要用“管態(tài)”及“目態(tài)”的描述,也解釋了“用戶態(tài)“及”內(nèi)核態(tài)”,沒有“核心態(tài)”的描述,建議全部采用“管態(tài)”及“目態(tài)”。核心態(tài)目態(tài),用戶進(jìn)程將被封鎖。當(dāng)內(nèi)核完成系統(tǒng)調(diào)用而返回時,才將該進(jìn)程喚醒,繼續(xù)執(zhí)行。而在用戶級線程調(diào)用一個系統(tǒng)調(diào)用時,由于內(nèi)核并不知道有該用戶級線程的存在,因而把系統(tǒng)調(diào)用看作是整個進(jìn)程的行為,于是使該進(jìn)程等待,而調(diào)度另一個進(jìn)程執(zhí)行。同樣是在內(nèi)核完成系統(tǒng)調(diào)用而返回的,進(jìn)程才能繼續(xù)執(zhí)行。如果系統(tǒng)中設(shè)置的是內(nèi)核支持線程,則調(diào)度是以線程為單位。當(dāng)一個線程調(diào)用一個系統(tǒng)調(diào)用時,內(nèi)核把系統(tǒng)調(diào)用只看作是該線程的行為,因而封鎖該線程,于是可以再調(diào)度該進(jìn)程中的其他線程執(zhí)行。第二章中主要用“管態(tài)”及“目態(tài)”的描述,也解釋了“用戶態(tài)“及”內(nèi)核態(tài)”,沒有“核心態(tài)”的描述,建議全部采用“管態(tài)”及“目態(tài)”??紤]這樣一個環(huán)境,用戶級線程和內(nèi)核級線程呈一對一的映射關(guān)系,并且允許進(jìn)程中的一個或多個線程產(chǎn)生會引發(fā)阻塞的系

溫馨提示

  • 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

提交評論