




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章進(jìn)程及進(jìn)程管理4-3什么是進(jìn)程?進(jìn)程與程序的主要區(qū)別是什么?答:進(jìn)程,即是一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次活動(dòng)。進(jìn)程與程序的主要區(qū)別是:(1 )程序是指令的有序集合,是一個(gè)靜態(tài)概念,其本身沒(méi)有任何運(yùn)行的含義,進(jìn)程是程序在處理機(jī)上的一次執(zhí)行過(guò)程,是一個(gè)動(dòng)態(tài)概念。(2) 程序作為軟件資料可長(zhǎng)期保存,而進(jìn)程是有生命期的,因創(chuàng)建而產(chǎn)生、因調(diào)度而執(zhí)行、 因得不到資源而暫停、因撤消而消亡。(3) 程序是記錄在介質(zhì)上指令的有序集合,而進(jìn)程則由程序、數(shù)據(jù)和進(jìn)程控制塊 3部分組 成。(4)進(jìn)程與程序之間無(wú)一一對(duì)應(yīng)關(guān)系 。不同的進(jìn)程可以包含同一程序,同一程序在執(zhí)行中 也可以產(chǎn)生多個(gè)進(jìn)程。(5
2、) 進(jìn)程是一個(gè)獨(dú)立的運(yùn)行單位,也是系統(tǒng)進(jìn)行資源分配和調(diào)度的獨(dú)立單位。而程序無(wú)此 概念。4-6 進(jìn)程有哪幾個(gè)基本狀態(tài)?在一個(gè)系統(tǒng)中為什么必須區(qū)分出這幾種狀態(tài)?答:進(jìn)程有三個(gè)基本狀態(tài):運(yùn)行狀態(tài)、就緒狀態(tài)和等待狀態(tài)(又稱阻塞、掛起、睡眠)對(duì)進(jìn)程區(qū)分出這幾種狀態(tài)主要是 為了便于系統(tǒng)對(duì)進(jìn)程的管理和控制。4-7試用圖畫(huà)出批處理系統(tǒng)的進(jìn)程狀態(tài)變遷圖。4-8試用圖畫(huà)出分時(shí)系統(tǒng)的進(jìn)程狀態(tài)變遷圖。4-9某系統(tǒng)進(jìn)程調(diào)度狀態(tài)變遷圖如下圖所示,回答4(1) 什么原因?qū)е伦冞w 2、變遷3、變遷4? 變遷2:某進(jìn)程的時(shí)間片滿變遷3:某進(jìn)程請(qǐng)求服務(wù),或等待事件 變遷4:某進(jìn)程請(qǐng)求服務(wù)完成,或等待事件發(fā)生(2) 當(dāng)觀察系統(tǒng)中進(jìn)
3、程時(shí),可能看到某一進(jìn)程產(chǎn)生的一次狀態(tài)變遷將導(dǎo)致另一進(jìn)程做一次狀態(tài)變遷,這兩個(gè)變遷稱為因果變遷。在什么情況下,一個(gè)進(jìn)程的變遷3能立即引起另-個(gè)進(jìn)程發(fā)生變遷1?當(dāng)有一個(gè)進(jìn)程發(fā)生變遷 3時(shí),將會(huì)讓出處理器,這時(shí)調(diào)度必然在就緒隊(duì)列中選中一個(gè)進(jìn) 程使之由就緒狀態(tài)變?yōu)檫\(yùn)行狀態(tài)。(3) 下述因素變遷是否可能發(fā)生?如果可能,是在什么情況下發(fā)生?a. 21可能發(fā)生。有一個(gè)進(jìn)程由運(yùn)行狀態(tài)變就緒狀態(tài),它讓出處理器,則這時(shí)必有一個(gè)進(jìn)程由就緒狀態(tài)轉(zhuǎn)運(yùn)行狀態(tài)。b. 32不可能發(fā)生。有一個(gè)進(jìn)程由運(yùn)行狀態(tài)變等待狀態(tài),它讓出處理器,這種變遷不會(huì)導(dǎo)致另一個(gè)進(jìn)程由運(yùn)行狀態(tài)轉(zhuǎn)就緒狀態(tài)。c. 41不可能發(fā)生。一個(gè)進(jìn)程由等待狀態(tài)變就緒狀
4、態(tài),只是自身進(jìn)程的狀態(tài)變遷,不涉及處理器,故不會(huì)引起其它進(jìn)程由就緒狀態(tài)變運(yùn)行狀態(tài)。4-11什么是進(jìn)程控制塊?它有什么作用?為了描述一個(gè)進(jìn)程和其它進(jìn)程,以及系統(tǒng)資源的關(guān)系,為了刻畫(huà)一個(gè)進(jìn)程在各個(gè)不同時(shí)期所處的狀態(tài),人們采用了一個(gè)與進(jìn)程相聯(lián)系的數(shù)據(jù)塊,稱為進(jìn)程控制塊(PCB)。其作用:標(biāo)識(shí)一個(gè)進(jìn)程的存在。4-12 n個(gè)并發(fā)進(jìn)程共用一個(gè)公共變量Q,寫(xiě)出用信號(hào)量實(shí)現(xiàn)n個(gè)進(jìn)程互斥時(shí)的程序描述,給出信號(hào)量取值的范圍,并說(shuō)明每個(gè)取值的物理意義。main ()int mutQ=1;信號(hào)量mutQ用來(lái)管理公共變量 Q,其值為1,表示初始情況下沒(méi)有進(jìn)程使用該變量 cobegi np1();p2();pn();co
5、e ndp1()P(mutQ);使用公共變量 Q./或cs(i)r.V(mutQ);mutQ的取值范圍:1-n11-n :表示一個(gè)進(jìn)程正在使用公共變量Q,另有n-1個(gè)進(jìn)程在等待使用公共變量 Q0 :表示一個(gè)進(jìn)程正在使用公共變量Q,沒(méi)有進(jìn)程等待 使用公共變量 Q1:表示初始情況下沒(méi)有進(jìn)程使用該變量4-14如下圖為兩個(gè)進(jìn)程流圖。試用信號(hào)量的 同步,并寫(xiě)出程序描述。P、V操作實(shí)現(xiàn)下圖(a)、(b)中所示進(jìn)程之間的P1P6解:main()int s12=0,s13=0,s14=0;cobegi nP1();P2();P3();P4();coe ndP1()pl execute;V(s12);V(s13
6、);V(s14);P2()P(s12);p2 execute;P3()P(s13);P3 execute;P4()P(s14);p4 execute;4-15如下圖所示,get、copy、put三進(jìn)程共用兩個(gè)緩沖區(qū) s、t (其大小為每次存放一個(gè) 記錄)。get進(jìn)程負(fù)責(zé)不斷地把輸入記錄送入緩沖區(qū)s中,copy進(jìn)程負(fù)責(zé)從緩沖區(qū) s取出記錄復(fù)制到緩沖區(qū) t中,而put進(jìn)程負(fù)責(zé)從緩沖區(qū) t中取出記錄打印。試用P、V 作實(shí)現(xiàn)這三個(gè)進(jìn)程之間的同步,并寫(xiě)出程序描述。解:main ()int sa=1,sb=0; sa 表示緩沖區(qū) S是否為空,sb表示是否為滿。 int ta=1,tb=O; ta 表示緩沖
7、區(qū) T是否為空,tb表示是否為滿。cobegi nget;copy;put; coendget()while(1)P(sa);in put data to buffer S;V(sb);copy ()while(1)P(sb);copy data from buffer S;V(sa);P(ta);in put copy-data to buffer T;V(tb);put()while(1)P(tb);output data to buffer S;V(ta);4-16什么是進(jìn)程的互斥與同步?同步和互斥這兩個(gè)概念有什么聯(lián)系和區(qū)別?答:在操作系統(tǒng)中,當(dāng)一個(gè)進(jìn)程進(jìn)入臨界區(qū)使用臨界資源時(shí),另一個(gè)進(jìn)
8、程必須等待,當(dāng)占用臨界資源的進(jìn)程退出臨界區(qū)后,另一進(jìn)程才被允許去訪問(wèn)此臨界資源。我們稱進(jìn)程之間的這種相互制約關(guān)系為互斥。進(jìn)程同步是指多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上 的協(xié)調(diào)。這些進(jìn)程相互合作,在一些關(guān)鍵點(diǎn)上可能需要互相等待或互通消息。4-18判斷下列同步算法是否有錯(cuò),請(qǐng)指出錯(cuò)誤原因并改正。(1) 3個(gè)進(jìn)程并發(fā)活動(dòng)的進(jìn)程流圖如下圖所示,其同步算法描述如下piP2int s=-1; cobegi nP1();P2();P3();coe ndP1()V(s);P2()V(s);P3()P(s); 參考解答:因Pl和p2進(jìn)程是p3進(jìn)程開(kāi)始執(zhí)行的先決條件, 即當(dāng)P1和p2進(jìn)程均執(zhí)行完畢時(shí),p3才能 執(zhí)行,則p3
9、需有兩個(gè)信號(hào)量,分別表示 pl進(jìn)程執(zhí)行完畢的信號(hào)量 si,以及p2進(jìn)程執(zhí)行完 畢的信號(hào)量s2。則同步算法描述如下:main ()int s1=0,s2=0;cobegi nP1();P2();P3();coend p1()V(s1); p2()V(s2); p3() P(s1);P(s2); 設(shè)a、b兩進(jìn)程共用一個(gè)緩沖區(qū), a向t寫(xiě)信息,b從t讀出信息,算法如下圖ft: W s的他為J進(jìn)程A和進(jìn)程B共用一個(gè)緩沖區(qū),則緩沖區(qū)是共享資源,進(jìn)程A向其中寫(xiě)入信息前需由 P操作控制分配資源,當(dāng)進(jìn)程 A寫(xiě)完消息,則可向進(jìn)程 B發(fā)送消息,通知 B進(jìn)程可以去取消 息了,故進(jìn)程 A和B是同步進(jìn)程。需為進(jìn)程A定義
10、私用信號(hào)量 S1,初值為1表示緩沖區(qū)為空,為進(jìn)程 B定義私用信號(hào)量 S2, 初值為0,表示緩沖區(qū)沒(méi)有消息。算法描述:mai n() int s1=1,s2=0; cobegi n pa(); pb();coend pa()P(s1); 寫(xiě)消息.V(s2);pb()P(s2);讀消息V(s1);設(shè)a、b兩并發(fā)進(jìn)程,它們共享一臨界資源。其執(zhí)行臨界區(qū)的算法框圖如下圖,Puiatv注;信巧燈亠一 的值均為【、s,初值為1,表示臨界資源初始情況下進(jìn)程A和進(jìn)程B為互斥進(jìn)程,則需一個(gè)互斥信號(hào)量 無(wú)進(jìn)程使用。mai n() int s=1; cobegi n pa(); pb();coe nd pa()P(s
11、);進(jìn)入csaV(s);pb()P(s);進(jìn)入csbV(s);4-21什么是線程?線程和進(jìn)程有什么區(qū)別?答:線程有時(shí)也稱為輕量級(jí)進(jìn)程, 它是比進(jìn)程更小的活動(dòng)單位,它是進(jìn)程中的一個(gè)執(zhí)行路徑。一個(gè)進(jìn)程可以有多個(gè)執(zhí)行路徑即線程。線程和進(jìn)程的主要區(qū)別如下 :(1)線程是進(jìn)程的一個(gè)組成部分。一個(gè)進(jìn)程可以有多個(gè)線程,而且至少有一個(gè)可執(zhí)行的線程。(2)進(jìn)程是資源分配的基本單位,它擁有自己的地址空間和各種資源。線程是處理機(jī)調(diào)度的基本單位,它只能和其他線程共享進(jìn)程的資源,而本身并不具有任何資源。(3)進(jìn)程的多個(gè) 線程都在進(jìn)程的地址空間內(nèi)活動(dòng)。 這樣,在以線程為單位進(jìn)行處理機(jī)調(diào)度和切換時(shí), 由于不發(fā)生資源變化特別是地址空間的變化,因此切換時(shí)間較短。而以進(jìn)程為單位進(jìn)行處理機(jī)調(diào)度和切換時(shí),由于涉及到資源轉(zhuǎn)移及現(xiàn)場(chǎng)保護(hù)等問(wèn)題,將導(dǎo)致切換時(shí)間變長(zhǎng)和資源利用率降低。 (4)線程和進(jìn)程一樣,都有自己的狀態(tài)和相應(yīng)的同步機(jī)制。但是,由于線程沒(méi) 有自己?jiǎn)为?dú)的程序和數(shù)據(jù)空間,因而不能像進(jìn)程的程序和數(shù)據(jù)那樣交換到外存去。(5)進(jìn)程的調(diào)度和控制大多由操作系統(tǒng)的內(nèi)核完成,而
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育機(jī)構(gòu)講師團(tuán)隊(duì)合作協(xié)議
- 公司文員勞動(dòng)協(xié)議
- 全球環(huán)境治理項(xiàng)目資金捐贈(zèng)協(xié)議
- 中國(guó)地理讀后感
- 《數(shù)學(xué)競(jìng)賽題庫(kù)設(shè)計(jì)與復(fù)習(xí)教學(xué)教案》
- 大宗商品貿(mào)易管理流程手冊(cè)
- 委托貸款借款合同
- 農(nóng)產(chǎn)品質(zhì)量安全追溯手冊(cè)
- 互聯(lián)網(wǎng)軟件開(kāi)發(fā)合同協(xié)議
- 綠化工程承包合同協(xié)議
- 位相差和光程差
- 高質(zhì)量SCI論文入門(mén)必備從選題到發(fā)表全套課件
- 前列腺癌的診斷與治療課件
- 產(chǎn)品開(kāi)發(fā)的變更流程
- 氣管鏡科室講課ppt課件(PPT 69頁(yè))
- 蝴蝶豌豆花(課堂PPT)
- 無(wú)創(chuàng)呼吸機(jī)的應(yīng)用(飛利浦偉康V60)課件
- 口腔修復(fù)學(xué)-第七章-牙列缺失的全口義齒修復(fù)
- Y-Y2系列電機(jī)繞組標(biāo)準(zhǔn)數(shù)據(jù)匯總
- 對(duì)于二氧化碳傳感器的現(xiàn)狀及發(fā)展趨勢(shì)的淺分析
- 麥語(yǔ)言函數(shù)手冊(cè)參考模板
評(píng)論
0/150
提交評(píng)論