




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、PAGE PAGE 17第2章 進程管理 輔導(dǎo)(fdo)與自測2.1 本章(bn zhn)知識點進程(jnchng)是操作系統(tǒng)中最基本、最重要的概念之一,在計算機系統(tǒng)中,進程不僅是最基本的并發(fā)執(zhí)行的單位,而且也是分配資源的基本單位。引入進程這個概念,對于我們理解、描述和設(shè)計操作系統(tǒng)具有重要意義。本章的主要知識點為: (1)進程的概念進程是程序在并發(fā)環(huán)境中的執(zhí)行過程。進程最根本的屬性是動態(tài)性和并發(fā)性。要注意進程與程序的區(qū)別。進程的五個基本特征是:動態(tài)性、并發(fā)性、獨立性、制約性、結(jié)構(gòu)性。一個進程實體通常由程序、數(shù)據(jù)、棧和進程控制塊(PCB)這四部分組成。進程控制塊是進程組成中最關(guān)鍵的部分。每個進程
2、有唯一的進程控制塊。操作系統(tǒng)根據(jù)PCB對進程實施控制和管理。進程的動態(tài)、并發(fā)等特征是利用PCB表現(xiàn)出來的。為了對所有進程進行有效地管理,常將各進程的PCB用適當?shù)姆绞浇M織起來。一般說來,進程隊列有以下幾種方式:線性方式、鏈接方式和索引方式。進程有三個基本狀態(tài):運行態(tài)、就緒態(tài)和阻塞態(tài)。在一定的條件下,進程的狀態(tài)將發(fā)生轉(zhuǎn)換。下圖所示為進程的狀態(tài)及其轉(zhuǎn)換。運行態(tài)分配到CPU時間片到等待某事件發(fā)生所等待的事件發(fā)生阻塞態(tài)就緒態(tài)圖 進程狀態(tài)及其轉(zhuǎn)換 (2)進程管理就如同人類的族系一樣,系統(tǒng)中眾多的進程也存在族系關(guān)系:由父進程創(chuàng)建子進程,子進程再創(chuàng)建子進程,從而構(gòu)成一棵樹形的進程族系圖。進程作為有“生命期”
3、的動態(tài)過程,對它們的實施管理主要包括:創(chuàng)建進程、撤消進程、掛起進程、恢復(fù)進程、改變進程優(yōu)先級、封鎖進程、喚醒進程、調(diào)度進程等。在Linux系統(tǒng)中,進程有5種狀態(tài)。進程分為系統(tǒng)進程和用戶進程。其中,系統(tǒng)進程只運行在內(nèi)核模式下;用戶進程既可以在用戶模式下運行,也可以通過系統(tǒng)調(diào)用等運行在內(nèi)核模式下。Linux的task_struct結(jié)構(gòu)相當于其進程控制塊。Linux系統(tǒng)對進程的操作常用命令有:ps、kill、sleep等。常用的系統(tǒng)調(diào)用有:fork,exec,wait,exit,getpid,sleep,nice等。(3)進程(jnchng)通信進程通信(tng xn)是指進程間的信息交換。根據(jù)進程
4、間交換信息量的多少,分為高級進程(jnchng)通信和低級進程通信。進程的同步與互斥是指進程在推進時的相互制約關(guān)系,屬于低級進程通信。一般來說同步反映了進程之間的協(xié)作關(guān)系,往往指有幾個進程共同完成一個任務(wù)時在時間次序上的某種限制,進程相互之間各自的存在及作用,通過交換信息完成通信。如接力比賽中一組隊員使用接力棒等。進程互斥體現(xiàn)了進程之間對資源的競爭關(guān)系,這時進程相互之間不一定清楚其它進程的情況,往往指多個任務(wù)多個進程間的通訊制約,因而使用更廣泛。如打籃球時雙方掙搶籃板球等。我們用信號量(Semaphore)及P,V操作來實現(xiàn)進程的同步和互斥。生產(chǎn)者-消費者問題是經(jīng)典的進程同步和互斥問題。(4)
5、死鎖死鎖是指多個進程循環(huán)等待他方占有的資源而無限期地僵持下去的局面。計算機系統(tǒng)產(chǎn)生死鎖的根本原因就是資源有限且操作不當。一種原因是競爭資源引起的死鎖,另一種原因是由于進程推進順序不合適引發(fā)的死鎖。產(chǎn)生死鎖的四個必要條件是:互斥條件,不可搶占條件,占有且申請條件,循環(huán)等待條件。如果在計算機系統(tǒng)中同時具備這四個必要條件時,那么會發(fā)生死鎖。一般地,解決死鎖的方法分為死鎖的預(yù)防、避免、檢測與恢復(fù)三種。2.2 典型例題解析【例1】判斷題:并發(fā)是并行的不同表述,其原理相同。( )答案 。分析 并發(fā)是指多道程序的執(zhí)行在時間上是重疊的,一個程序的執(zhí)行尚未結(jié)束,另一個程序的執(zhí)行已經(jīng)開始。但對單CPU系統(tǒng)而言,每
6、一時刻只有一個程序在CPU上運行(有可能此時其他的程序在進行輸入、輸出)。也就是說,占有CPU的只能有一個程序。因此,并發(fā)實際上是“在宏觀上并行執(zhí)行,在微觀上串行執(zhí)行”。而并行是真正意義上的并行執(zhí)行,因此兩者的含義是不同的?!纠?】在操作系統(tǒng)中引入“進程”概念的主要目的是( )。A改善用戶編程環(huán)境 B提高程序的運行速度C描述程序動態(tài)執(zhí)行過程的性質(zhì) D使程序與計算過程一一對應(yīng)答案 C分析 操作系統(tǒng)中多道程序的引入,使得它們在并發(fā)執(zhí)行時共享系統(tǒng)資源,共同決定這些資源的狀態(tài),因此系統(tǒng)中各道程序在執(zhí)行過程中就出現(xiàn)了相互制約的新關(guān)系,程序的執(zhí)行出現(xiàn)“走走停?!钡男聽顟B(tài)。這些都是在程序的動態(tài)過程中發(fā)生的。
7、而程序本身是機器能夠翻譯或執(zhí)行的一組動作或指令,它或者寫在紙面上,或者存放在磁盤等介質(zhì)上,是靜止的。很顯然,直接從程序的字面上無法看出它什么時候運行、什么時候停頓,也看不出它是否影響其它程序或者一定受其它程序的影響。因此,用程序這個靜態(tài)概念已不能如實(rsh)反映程序并發(fā)執(zhí)行過程中的這些特征。為此,人們引入進程的概念來描述程序動態(tài)執(zhí)行過程的性質(zhì),這是引入“進程”概念的主要(zhyo)目的?!纠?】下列進程(jnchng)狀態(tài)的轉(zhuǎn)換中,不正確的是( )。A就緒阻塞 B運行就緒 C就緒運行 D阻塞就緒答案 A分析 回答這道題要知道進程的3種基本狀態(tài),以及它們之間的轉(zhuǎn)換關(guān)系。通過下圖可以看到,凡是圖
8、中有箭頭指向的轉(zhuǎn)換都是可行的,而沒有箭頭指向的則不可能。因此A是不正確的。運行態(tài)分配到CPU時間片到等待某事件發(fā)生所等待的事件發(fā)生阻塞態(tài)就緒態(tài)圖 進程狀態(tài)及其轉(zhuǎn)換如果有的同學(xué)記不住這張圖,那就從理解的角度進行思考。首先要理解3種狀態(tài)的含義,然后再理解它們之間的轉(zhuǎn)換。例如:運行的進程能變成就緒嗎?可以,如果運行進程的時間片到了,就必修讓出CPU,轉(zhuǎn)換為就緒態(tài)。就緒的進程能變成阻塞嗎?不可以,就緒態(tài)的進程已經(jīng)具備了運行條件,只在等待CPU,怎么可能還退回到還不具備運行條件的阻塞態(tài)呢?因此,如果理解了,這張圖就可以自己畫出來,并不需要死記硬背?!纠?】進程控制塊是描述進程狀態(tài)和特性的數(shù)據(jù)結(jié)構(gòu),一個進
9、程( )。A可以有多個進程控制塊 B可以和其他進程共用一個進程控制塊C可以沒有進程控制塊 D只能有唯一的進程控制塊答案 D分析 進程控制塊(PCB)是一個用于描述進程動態(tài)性質(zhì)的數(shù)據(jù)結(jié)構(gòu)。操作系統(tǒng)根據(jù)PCB對進程實施控制和管理。進程的動態(tài)、并發(fā)等特征也是通過PCB表現(xiàn)出來的。進程由程序、數(shù)據(jù)、棧和PCB構(gòu)成。構(gòu)成進程的有關(guān)程序和數(shù)據(jù)集合是進程得以存在的物質(zhì)基礎(chǔ),它們是進程的實體;PCB用于標識和刻畫實體的存在和變化,是進程存在的唯一標志。當系統(tǒng)創(chuàng)建一個新進程時,就為它建立一個PCB;當進程終止后,系統(tǒng)回收為其分配的PCB,該進程在系統(tǒng)中就不存在了?!纠?】在執(zhí)行V操作時,當信號量的值( ),應(yīng)釋
10、放(shfng)一個等待該信號量的進程。 A小于0 B大于0 C小于等于(dngy)0 D大于等于(dngy)0答案 C分析 P,V操作能夠?qū)崿F(xiàn)對臨界區(qū)的管理要求。它由P操作原語和V操作原語組成(原語是不可中斷的過程),對信號量進行操作,具體定義如下: P(S):將信號量S的值減1,即S=S1; 如果S0,則該進程繼續(xù)執(zhí)行;否則該進程置為阻塞狀態(tài),排入阻塞隊列。 V(S):將信號量S的值加1,即S=S+1; 如果S0,則該進程繼續(xù)執(zhí)行;否則釋放隊列中第一個等待信號量的進程。 信號量的數(shù)據(jù)結(jié)構(gòu)為一個值和一個指針,指針指向等待該信號量的下一個進程。信號量的值與相應(yīng)資源的使用情況有關(guān)。當它的值大于0
11、時,表示當前可用資源的數(shù)量;當它的值小于0時,其絕對值表示等待使用該資源的進程個數(shù)。注意,信號量的值僅能由P,V操作來改變。一般來說,信號量S0時,S表示可用資源的數(shù)量。執(zhí)行一次P操作意味著請求分配一個單位資源,因此S的值減1;當S0 BS=0 CS0 DS0信號量S的初值為8,在S上執(zhí)行(zhxng)了10次P操作,6次V操作后,S的值為( )。 A10 B8 C6 D4若P、V操作(cozu)的信號量S初值為2,當前值為 1,則表示(biosh)有( )個等待進程。 A0 Bl C2 D3 在進程通信中,使用信箱方式交換信息的是( )。A低級進程通信 B高級進程通信 C共享內(nèi)存方式 D管道
12、文件方式系統(tǒng)出現(xiàn)死鎖的原因是( )。A計算機系統(tǒng)發(fā)生了重大故障B有多個封鎖的進程同時存在C若干進程因競爭資源而無休止地循環(huán)等待著,而且都不釋放已占有的資源 D資源數(shù)大大少于進程數(shù),或進程同時申請的資源數(shù)大大超過資源總數(shù)兩個進程爭奪同一個資源( )。A一定死鎖 B不一定死鎖 C不會死鎖 D以上說法都不對二、判斷題(正確的劃,錯誤的劃。)簡單地說,進程是程序的執(zhí)行過程。因而,進程和程序是一一對應(yīng)的。( )進程和程序是兩個截然不同的概念。( ) 程序在運行時需要很多系統(tǒng)資源,如內(nèi)存、文件、設(shè)備等,因此操作系統(tǒng)以程序為單位分配系統(tǒng)資源。( ) 進程控制塊(PCB)是專為用戶進程設(shè)置的私有數(shù)據(jù)結(jié)構(gòu),每個
13、進程僅有一個PCB。( ) 進程執(zhí)行的相對速度不能由進程自己來控制。( )進程之間的互斥,主要源于進程之間的資源競爭,從而實現(xiàn)多個相關(guān)進程在執(zhí)行次序上的協(xié)調(diào)。( )信號量機制是一種有效的實現(xiàn)進程同步與互斥的工具。信號量只能由P、V操作來改變。( )V操作是對信號量執(zhí)行加1操作,意味著釋放一個單位資源,如果加1后信號量的值小于等于零,則從等待隊列中喚醒一個進程,現(xiàn)進程變?yōu)樽枞麪顟B(tài),否則現(xiàn)進程繼續(xù)進行。( )利用信號量的P,V操作,進程之間可以交換大量信息。( )系統(tǒng)產(chǎn)生死鎖的根本原因是資源有限且操作不當。因此,當系統(tǒng)提供的資源少于并發(fā)進程的需求時,系統(tǒng)就產(chǎn)生死鎖。( )三、簡答題四、應(yīng)用題請同學(xué)們解答參考教材68頁的課后習題。請大家自己完成參考答案:一、CCCAA BACDB ACACD DBCBC BBCDB BCB二、2,5,7是正確的。1. ()。進程和程序不是一一對應(yīng)的。3. ()。操作系統(tǒng)以進程為單位分配系統(tǒng)資源。4. ()。進程控制塊(PCB)是為系統(tǒng)中各個進程設(shè)置的私有數(shù)據(jù)結(jié)構(gòu)。6. ()。這里把進程的同步和互斥混在一起說了。8. ()。不管信號量的值如何,現(xiàn)進程都繼續(xù)執(zhí)行。9. ()。P,V操作只能交換少量的信息,屬于低級進程通信。10. ()。僅有系統(tǒng)提供的資源少于并發(fā)進程的需求這一個條件時,系統(tǒng)不一定產(chǎn)生死鎖。三和四、見
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年兼職銷售代表雇傭合同
- 2025年公務(wù)員聘用合同書模板示例
- 2025年住宅買賣及中介服務(wù)合同協(xié)議
- 2025年企業(yè)高層管理合同樣本
- 2025年企業(yè)宣傳攝影合同樣本
- 2025年中學(xué)巴士駕駛員雇傭合同
- 2025年倉儲供應(yīng)合同
- 2025年個人營業(yè)店鋪租賃合同格式
- 2025年養(yǎng)雞場設(shè)備租賃合同模版
- 2025年標準化工業(yè)庫房裝修施工合同示范
- 外科學(xué)教學(xué)課件:頸、腰椎退行性疾病
- 2023-2024屆高考語文復(fù)習小說訓(xùn)練(含答案)-孫犁《風云初記》
- 天耀中華合唱簡譜大劇院版
- 中醫(yī)培訓(xùn)課件:《拔罐技術(shù)》
- 取節(jié)育環(huán)之后的護理
- 2023年12月東莞市樟木頭鎮(zhèn)下屬事業(yè)單位2024年公開招考4名特聘工程師筆試歷年高頻考題(難、易錯點薈萃)答案帶詳解附后
- 美羅華(利妥昔單抗)課件
- 河南文旅行業(yè)分析
- 民法典之侵權(quán)責任編培訓(xùn)課件
- 研究生矩陣論試題及答案
- 肺葉切除術(shù)和全肺切除術(shù)的麻醉課件
評論
0/150
提交評論