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

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論