操作系統(tǒng) 習題及答案 第三章 進程線程模型_第1頁
操作系統(tǒng) 習題及答案 第三章 進程線程模型_第2頁
操作系統(tǒng) 習題及答案 第三章 進程線程模型_第3頁
操作系統(tǒng) 習題及答案 第三章 進程線程模型_第4頁
全文預覽已結束

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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

提交評論