版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第2章 進(jìn)程管理 輔導(dǎo)與自測(cè)2.1 本章知識(shí)點(diǎn)進(jìn)程是操作系統(tǒng)中最基本、最重要的概念之一,在計(jì)算機(jī)系統(tǒng)中,進(jìn)程不僅是最基本的并發(fā)執(zhí)行的單位,而且也是分配資源的基本單位。引入進(jìn)程這個(gè)概念,對(duì)于我們理解、描述和設(shè)計(jì)操作系統(tǒng)具有重要意義。本章的主要知識(shí)點(diǎn)為: (1)進(jìn)程的概念進(jìn)程是程序在并發(fā)環(huán)境中的執(zhí)行過(guò)程。進(jìn)程最根本的屬性是動(dòng)態(tài)性和并發(fā)性。要注意進(jìn)程與程序的區(qū)別。進(jìn)程的五個(gè)基本特征是:動(dòng)態(tài)性、并發(fā)性、獨(dú)立性、制約性、結(jié)構(gòu)性。一個(gè)進(jìn)程實(shí)體通常由程序、數(shù)據(jù)、棧和進(jìn)程控制塊(PCB)這四部分組成。進(jìn)程控制塊是進(jìn)程組成中最關(guān)鍵的部分。每個(gè)進(jìn)程有唯一的進(jìn)程控制塊。操作系統(tǒng)根據(jù)PCB對(duì)進(jìn)程實(shí)施控制和管理。進(jìn)程的
2、動(dòng)態(tài)、并發(fā)等特征是利用PCB表現(xiàn)出來(lái)的。為了對(duì)所有進(jìn)程進(jìn)行有效地管理,常將各進(jìn)程的PCB用適當(dāng)?shù)姆绞浇M織起來(lái)。一般說(shuō)來(lái),進(jìn)程隊(duì)列有以下幾種方式:線性方式、鏈接方式和索引方式。進(jìn)程有三個(gè)基本狀態(tài):運(yùn)行態(tài)、就緒態(tài)和阻塞態(tài)。在一定的條件下,進(jìn)程的狀態(tài)將發(fā)生轉(zhuǎn)換。下圖所示為進(jìn)程的狀態(tài)及其轉(zhuǎn)換。運(yùn)行態(tài)分配到CPU時(shí)間片到等待某事件發(fā)生所等待的事件發(fā)生阻塞態(tài)就緒態(tài)圖 進(jìn)程狀態(tài)及其轉(zhuǎn)換 (2)進(jìn)程管理就如同人類的族系一樣,系統(tǒng)中眾多的進(jìn)程也存在族系關(guān)系:由父進(jìn)程創(chuàng)建子進(jìn)程,子進(jìn)程再創(chuàng)建子進(jìn)程,從而構(gòu)成一棵樹(shù)形的進(jìn)程族系圖。進(jìn)程作為有“生命期”的動(dòng)態(tài)過(guò)程,對(duì)它們的實(shí)施管理主要包括:創(chuàng)建進(jìn)程、撤消進(jìn)程、掛起進(jìn)程
3、、恢復(fù)進(jìn)程、改變進(jìn)程優(yōu)先級(jí)、封鎖進(jìn)程、喚醒進(jìn)程、調(diào)度進(jìn)程等。在Linux系統(tǒng)中,進(jìn)程有5種狀態(tài)。進(jìn)程分為系統(tǒng)進(jìn)程和用戶進(jìn)程。其中,系統(tǒng)進(jìn)程只運(yùn)行在內(nèi)核模式下;用戶進(jìn)程既可以在用戶模式下運(yùn)行,也可以通過(guò)系統(tǒng)調(diào)用等運(yùn)行在內(nèi)核模式下。Linux的task_struct結(jié)構(gòu)相當(dāng)于其進(jìn)程控制塊。Linux系統(tǒng)對(duì)進(jìn)程的操作常用命令有:ps、kill、sleep等。常用的系統(tǒng)調(diào)用有:fork,exec,wait,exit,getpid,sleep,nice等。(3)進(jìn)程通信進(jìn)程通信是指進(jìn)程間的信息交換。根據(jù)進(jìn)程間交換信息量的多少,分為高級(jí)進(jìn)程通信和低級(jí)進(jìn)程通信。進(jìn)程的同步與互斥是指進(jìn)程在推進(jìn)時(shí)的相互制約關(guān)系
4、,屬于低級(jí)進(jìn)程通信。一般來(lái)說(shuō)同步反映了進(jìn)程之間的協(xié)作關(guān)系,往往指有幾個(gè)進(jìn)程共同完成一個(gè)任務(wù)時(shí)在時(shí)間次序上的某種限制,進(jìn)程相互之間各自的存在及作用,通過(guò)交換信息完成通信。如接力比賽中一組隊(duì)員使用接力棒等。進(jìn)程互斥體現(xiàn)了進(jìn)程之間對(duì)資源的競(jìng)爭(zhēng)關(guān)系,這時(shí)進(jìn)程相互之間不一定清楚其它進(jìn)程的情況,往往指多個(gè)任務(wù)多個(gè)進(jìn)程間的通訊制約,因而使用更廣泛。如打籃球時(shí)雙方掙搶籃板球等。我們用信號(hào)量(Semaphore)及P,V操作來(lái)實(shí)現(xiàn)進(jìn)程的同步和互斥。生產(chǎn)者-消費(fèi)者問(wèn)題是經(jīng)典的進(jìn)程同步和互斥問(wèn)題。(4)死鎖死鎖是指多個(gè)進(jìn)程循環(huán)等待他方占有的資源而無(wú)限期地僵持下去的局面。計(jì)算機(jī)系統(tǒng)產(chǎn)生死鎖的根本原因就是資源有限且操作
5、不當(dāng)。一種原因是競(jìng)爭(zhēng)資源引起的死鎖,另一種原因是由于進(jìn)程推進(jìn)順序不合適引發(fā)的死鎖。產(chǎn)生死鎖的四個(gè)必要條件是:互斥條件,不可搶占條件,占有且申請(qǐng)條件,循環(huán)等待條件。如果在計(jì)算機(jī)系統(tǒng)中同時(shí)具備這四個(gè)必要條件時(shí),那么會(huì)發(fā)生死鎖。一般地,解決死鎖的方法分為死鎖的預(yù)防、避免、檢測(cè)與恢復(fù)三種。2.2 典型例題解析【例1】判斷題:并發(fā)是并行的不同表述,其原理相同。( )答案 ×。分析 并發(fā)是指多道程序的執(zhí)行在時(shí)間上是重疊的,一個(gè)程序的執(zhí)行尚未結(jié)束,另一個(gè)程序的執(zhí)行已經(jīng)開(kāi)始。但對(duì)單CPU系統(tǒng)而言,每一時(shí)刻只有一個(gè)程序在CPU上運(yùn)行(有可能此時(shí)其他的程序在進(jìn)行輸入、輸出)。也就是說(shuō),占有CPU的只能有
6、一個(gè)程序。因此,并發(fā)實(shí)際上是“在宏觀上并行執(zhí)行,在微觀上串行執(zhí)行”。而并行是真正意義上的并行執(zhí)行,因此兩者的含義是不同的?!纠?】在操作系統(tǒng)中引入“進(jìn)程”概念的主要目的是( )。A改善用戶編程環(huán)境 B提高程序的運(yùn)行速度C描述程序動(dòng)態(tài)執(zhí)行過(guò)程的性質(zhì) D使程序與計(jì)算過(guò)程一一對(duì)應(yīng)答案 C分析 操作系統(tǒng)中多道程序的引入,使得它們?cè)诓l(fā)執(zhí)行時(shí)共享系統(tǒng)資源,共同決定這些資源的狀態(tài),因此系統(tǒng)中各道程序在執(zhí)行過(guò)程中就出現(xiàn)了相互制約的新關(guān)系,程序的執(zhí)行出現(xiàn)“走走停?!钡男?tīng)顟B(tài)。這些都是在程序的動(dòng)態(tài)過(guò)程中發(fā)生的。而程序本身是機(jī)器能夠翻譯或執(zhí)行的一組動(dòng)作或指令,它或者寫(xiě)在紙面上,或者存放在磁盤(pán)等介質(zhì)上,是靜止的。很
7、顯然,直接從程序的字面上無(wú)法看出它什么時(shí)候運(yùn)行、什么時(shí)候停頓,也看不出它是否影響其它程序或者一定受其它程序的影響。因此,用程序這個(gè)靜態(tài)概念已不能如實(shí)反映程序并發(fā)執(zhí)行過(guò)程中的這些特征。為此,人們引入進(jìn)程的概念來(lái)描述程序動(dòng)態(tài)執(zhí)行過(guò)程的性質(zhì),這是引入“進(jìn)程”概念的主要目的?!纠?】下列進(jìn)程狀態(tài)的轉(zhuǎn)換中,不正確的是( )。A就緒®阻塞 B運(yùn)行®就緒 C就緒®運(yùn)行 D阻塞®就緒答案 A分析 回答這道題要知道進(jìn)程的3種基本狀態(tài),以及它們之間的轉(zhuǎn)換關(guān)系。通過(guò)下圖可以看到,凡是圖中有箭頭指向的轉(zhuǎn)換都是可行的,而沒(méi)有箭頭指向的則不可能。因此A是不正確的。運(yùn)行態(tài)分配到CPU
8、時(shí)間片到等待某事件發(fā)生所等待的事件發(fā)生阻塞態(tài)就緒態(tài)圖 進(jìn)程狀態(tài)及其轉(zhuǎn)換如果有的同學(xué)記不住這張圖,那就從理解的角度進(jìn)行思考。首先要理解3種狀態(tài)的含義,然后再理解它們之間的轉(zhuǎn)換。例如:運(yùn)行的進(jìn)程能變成就緒嗎?可以,如果運(yùn)行進(jìn)程的時(shí)間片到了,就必修讓出CPU,轉(zhuǎn)換為就緒態(tài)。就緒的進(jìn)程能變成阻塞嗎?不可以,就緒態(tài)的進(jìn)程已經(jīng)具備了運(yùn)行條件,只在等待CPU,怎么可能還退回到還不具備運(yùn)行條件的阻塞態(tài)呢?因此,如果理解了,這張圖就可以自己畫(huà)出來(lái),并不需要死記硬背?!纠?】進(jìn)程控制塊是描述進(jìn)程狀態(tài)和特性的數(shù)據(jù)結(jié)構(gòu),一個(gè)進(jìn)程( )。A可以有多個(gè)進(jìn)程控制塊 B可以和其他進(jìn)程共用一個(gè)進(jìn)程控制塊C可以沒(méi)有進(jìn)程控制塊 D
9、只能有唯一的進(jìn)程控制塊答案 D分析 進(jìn)程控制塊(PCB)是一個(gè)用于描述進(jìn)程動(dòng)態(tài)性質(zhì)的數(shù)據(jù)結(jié)構(gòu)。操作系統(tǒng)根據(jù)PCB對(duì)進(jìn)程實(shí)施控制和管理。進(jìn)程的動(dòng)態(tài)、并發(fā)等特征也是通過(guò)PCB表現(xiàn)出來(lái)的。進(jìn)程由程序、數(shù)據(jù)、棧和PCB構(gòu)成。構(gòu)成進(jìn)程的有關(guān)程序和數(shù)據(jù)集合是進(jìn)程得以存在的物質(zhì)基礎(chǔ),它們是進(jìn)程的實(shí)體;PCB用于標(biāo)識(shí)和刻畫(huà)實(shí)體的存在和變化,是進(jìn)程存在的唯一標(biāo)志。當(dāng)系統(tǒng)創(chuàng)建一個(gè)新進(jìn)程時(shí),就為它建立一個(gè)PCB;當(dāng)進(jìn)程終止后,系統(tǒng)回收為其分配的PCB,該進(jìn)程在系統(tǒng)中就不存在了?!纠?】在執(zhí)行V操作時(shí),當(dāng)信號(hào)量的值( ),應(yīng)釋放一個(gè)等待該信號(hào)量的進(jìn)程。 A小于0 B大于0 C小于等于0 D大于等于0答案 C分析 P,
10、V操作能夠?qū)崿F(xiàn)對(duì)臨界區(qū)的管理要求。它由P操作原語(yǔ)和V操作原語(yǔ)組成(原語(yǔ)是不可中斷的過(guò)程),對(duì)信號(hào)量進(jìn)行操作,具體定義如下: P(S):將信號(hào)量S的值減1,即S=S-1; 如果S³0,則該進(jìn)程繼續(xù)執(zhí)行;否則該進(jìn)程置為阻塞狀態(tài),排入阻塞隊(duì)列。 V(S):將信號(hào)量S的值加1,即S=S+1; 如果S>0,則該進(jìn)程繼續(xù)執(zhí)行;否則釋放隊(duì)列中第一個(gè)等待信號(hào)量的進(jìn)程。 信號(hào)量的數(shù)據(jù)結(jié)構(gòu)為一個(gè)值和一個(gè)指針,指針指向等待該信號(hào)量的下一個(gè)進(jìn)程。信號(hào)量的值與相應(yīng)資源的使用情況有關(guān)。當(dāng)它的值大于0時(shí),表示當(dāng)前可用資源的數(shù)量;當(dāng)它的值小于0時(shí),其絕對(duì)值表示等待使用該資源的進(jìn)程個(gè)數(shù)。注意,信號(hào)量的值僅能由P
11、,V操作來(lái)改變。一般來(lái)說(shuō),信號(hào)量S³0時(shí),S表示可用資源的數(shù)量。執(zhí)行一次P操作意味著請(qǐng)求分配一個(gè)單位資源,因此S的值減1;當(dāng)S<0時(shí),表示已經(jīng)沒(méi)有可用資源,請(qǐng)求者必須等待別的進(jìn)程釋放該類資源,它才能運(yùn)行下去。而執(zhí)行一個(gè)V操作意味著釋放一個(gè)單位資源,因此S的值加1;若S£0,表示有某些進(jìn)程正在等待該資源,因此要喚醒一個(gè)等待狀態(tài)的進(jìn)程,使之運(yùn)行下去?!纠?】有9個(gè)生產(chǎn)者,6個(gè)消費(fèi)者,共享容量為8的緩沖區(qū)。在這個(gè)生產(chǎn)者-消費(fèi)者問(wèn)題中,互斥使用緩沖區(qū)的信號(hào)量mutex的初值應(yīng)該為( )。 A1 B6 C8 D9答案 A分析 進(jìn)程的互斥是指當(dāng)有若干個(gè)進(jìn)程都要使用某一共享資源時(shí),
12、任何時(shí)刻最多只允許一個(gè)進(jìn)程去使用,其它要使用該資源的進(jìn)程必須等待,直到占用資源者釋放了該資源。 進(jìn)程的互斥體現(xiàn)了并發(fā)進(jìn)程之間訪問(wèn)共享資源時(shí)存在的競(jìng)爭(zhēng)關(guān)系。在計(jì)算機(jī)系統(tǒng)中必須互斥使用的資源很多,如讀卡機(jī)、磁帶機(jī)、打印機(jī)等硬件資源和一些公共變量、表格、隊(duì)列、數(shù)據(jù)等軟件資源。 利用信號(hào)量和P,V操作實(shí)現(xiàn)進(jìn)程互斥的一般模型是:進(jìn)程P1 進(jìn)程P2 進(jìn)程Pn P(mutex); P(mutex); P(mutex);臨界區(qū); 臨界區(qū); 臨界區(qū);V(mutex); V(mutex); V(mutex); 其中信號(hào)量mutex用于互斥,初值為1。 使用P,V操作實(shí)現(xiàn)進(jìn)程互斥時(shí)應(yīng)該注意的是: (1)每個(gè)程序中用
13、戶實(shí)現(xiàn)互斥的P、V操作必須成對(duì)出現(xiàn),先做P操作,進(jìn)臨界區(qū),后做V操作,出臨界區(qū)。若有多個(gè)分支,要認(rèn)真檢查其成對(duì)性。 (2)互斥信號(hào)量的初值一般為1。 此外,P、V操作應(yīng)分別緊靠臨界區(qū)的頭尾部,臨界區(qū)的代碼應(yīng)盡可能短,不能有死循環(huán)。 在本題中,既然是問(wèn)互斥信號(hào)量,其初值應(yīng)為1,選項(xiàng)中的6,8,9都是迷惑答題者的,如果對(duì)同步和互斥不能很好地理解,就很難選擇?!纠?】?jī)蓚€(gè)進(jìn)程合作完成一個(gè)任務(wù),在并發(fā)執(zhí)行中,一個(gè)進(jìn)程要等待其合作伙伴發(fā)來(lái)信息,或者建立某個(gè)條件后再向前執(zhí)行,這種關(guān)系是進(jìn)程間的( )關(guān)系。 A同步 B互斥 C競(jìng)爭(zhēng) D合作答案 A分析 進(jìn)程的同步是指并發(fā)進(jìn)程之間存在一種制約關(guān)系,一個(gè)進(jìn)程的執(zhí)
14、行依賴另一個(gè)進(jìn)程的消息,當(dāng)一個(gè)進(jìn)程沒(méi)有得到另一個(gè)進(jìn)程的消息時(shí)應(yīng)等待,直到消息到達(dá)才被喚醒。 同步是進(jìn)程間共同完成一項(xiàng)任務(wù)時(shí)直接發(fā)生相互作用的關(guān)系。這樣的例子在日常生活中不勝枚舉,比如接力比賽中運(yùn)動(dòng)員的默契配合,工業(yè)生產(chǎn)中流水作業(yè)的每道工序的先后執(zhí)行,以及計(jì)算機(jī)系統(tǒng)中對(duì)一個(gè)緩沖區(qū)的讀和寫(xiě)等等。當(dāng)并發(fā)進(jìn)程存在協(xié)作的關(guān)系時(shí),必須互通消息,完成進(jìn)程的同步。 能實(shí)現(xiàn)進(jìn)程同步的機(jī)制稱為同步機(jī)制,該機(jī)制能把其他進(jìn)程需要的消息發(fā)送出去,也能測(cè)試自己需要的消息是否到達(dá)。 P,V操作是典型的同步機(jī)制之一。用一個(gè)信號(hào)量與一個(gè)消息聯(lián)系起來(lái),當(dāng)信號(hào)量的值為0時(shí),表示期望的消息尚未產(chǎn)生;當(dāng)信號(hào)量的值非0時(shí),表示期望的消息
15、已經(jīng)存在。用P,V操作實(shí)現(xiàn)進(jìn)程同步時(shí),調(diào)用P操作測(cè)試消息是否到達(dá),調(diào)用V操作發(fā)送消息。 使用PV操作實(shí)現(xiàn)進(jìn)程同步時(shí)應(yīng)該注意的是: (1)分析進(jìn)程間的制約關(guān)系,確定信號(hào)量種類。在保持進(jìn)程間有正確的同步關(guān)系情況下,哪個(gè)進(jìn)程先執(zhí)行,哪些進(jìn)程后執(zhí)行,彼此間通過(guò)什么資源(信號(hào)量)進(jìn)行協(xié)調(diào),從而明確要設(shè)置哪些信號(hào)量。 (2)信號(hào)量的初值與相應(yīng)資源的數(shù)量有關(guān),也與P、V操作在程序代碼中出現(xiàn)的位置有關(guān)。(3)同一信號(hào)量的P、V操作要成對(duì)出現(xiàn),但它們分別在不同的進(jìn)程代碼中。本題中進(jìn)程的同步體現(xiàn)的是合作關(guān)系,但答案不能選D,要使用操作系統(tǒng)的術(shù)語(yǔ)“同步”?!纠?】設(shè)有一臺(tái)計(jì)算機(jī),有兩條I/O通道,分別接一臺(tái)卡片輸入
16、機(jī)和一臺(tái)打印機(jī)??ㄆ瑱C(jī)把一疊卡片逐一輸入到緩沖區(qū)B1中,加工處理后再搬到緩沖區(qū)B2中,并在打印機(jī)上打印結(jié)果。問(wèn): 系統(tǒng)要設(shè)幾個(gè)進(jìn)程來(lái)完成這個(gè)任務(wù)?各自的工作是什么? 這些進(jìn)程間有什么樣的相互制約關(guān)系? 用P、V操作寫(xiě)出這些進(jìn)程的同步算法。分析 我們畫(huà)一個(gè)草圖來(lái)幫助我們理解這道題:卡片機(jī)緩沖區(qū)B1打印機(jī)緩沖區(qū)B2輸入處理輸出從圖中可以看出,從“卡片機(jī)”到“打印機(jī)”共需要3個(gè)操作,即輸入、處理、輸出。這3個(gè)動(dòng)作就是完成任務(wù)的3個(gè)進(jìn)程。下面我們看看這些進(jìn)程之間有什么樣的制約關(guān)系??梢钥闯觯@3個(gè)進(jìn)程之間是同步關(guān)系,合作完成從輸入到輸出的工作任務(wù)。對(duì)其中任何一個(gè)進(jìn)程,要處理好與其關(guān)聯(lián)的兩端設(shè)備的協(xié)調(diào)工
17、作。以“輸入進(jìn)程”為例,它與卡片機(jī)和緩沖區(qū)B1關(guān)聯(lián),將卡片機(jī)的卡片輸入到緩沖區(qū)B1,在不考慮卡片機(jī)的情況下,就要考慮緩沖區(qū)的情況,即是滿還是空,是空緩沖區(qū),輸入進(jìn)程就可以輸入信息,如果緩沖區(qū)滿,則要等待“處理進(jìn)程”將B1中的信息取走,使之為空,輸入進(jìn)程才能繼續(xù)工作。依此類推,可以找出另外2個(gè)進(jìn)程的制約關(guān)系。一般來(lái)說(shuō),處理進(jìn)程同步需要2個(gè)信號(hào)量,“輸入進(jìn)程”和“處理進(jìn)程”同步,需要2個(gè)信號(hào)量,解決緩沖區(qū)B1的協(xié)調(diào)操作問(wèn)題;而“處理進(jìn)程”和“輸出進(jìn)程”同步,還需要2個(gè)信號(hào)量,解決緩沖區(qū)B2的協(xié)調(diào)操作問(wèn)題。因此,共需要4個(gè)信號(hào)量。本題中“處理進(jìn)程”的算法有一些難度,因?yàn)樗枰獏f(xié)調(diào)兩個(gè)緩沖區(qū)的工作,考
18、慮的因素比較多,算法復(fù)雜些。答案系統(tǒng)可設(shè)三個(gè)進(jìn)程來(lái)完成這個(gè)任務(wù):R進(jìn)程負(fù)責(zé)從卡片輸入機(jī)上讀入卡片信息,輸入到緩沖區(qū)B1中;C進(jìn)程負(fù)責(zé)從緩沖區(qū)B1中取出信息,進(jìn)行加工處理,之后將結(jié)果送到緩沖區(qū)B2中;P進(jìn)程負(fù)責(zé)從緩沖區(qū)B2中取出信息,并在打印機(jī)上印出。R進(jìn)程受C進(jìn)程影響,B1放滿信息后R進(jìn)程要等待等C進(jìn)程將其中信息全部取走,才能繼續(xù)讀入信息;C進(jìn)程受R進(jìn)程和P進(jìn)程的約束:B1中信息放滿后C進(jìn)程才可從中取出它們,且B2被取空后,C進(jìn)程才可將加工結(jié)果送入其中;P進(jìn)程受C進(jìn)程的約束:B2中信息放滿后P進(jìn)程才可從中取出它們,進(jìn)行打印。信號(hào)量含義及初值:B1full 緩沖區(qū)B1滿,初值為0;B1empty
19、緩沖區(qū)B1空,初值為0;B2full 緩沖區(qū)B2滿,初值為0;B2empty緩沖區(qū)B2空,初值為0; R進(jìn)程 C進(jìn)程 P進(jìn)程 輸入信息寫(xiě)入緩沖區(qū)B1 P(B1full) P(B2full) V(B1full) 從B1中取出信息 從B2中取出信息進(jìn)行打印 P(B1empty) 加工信息 V(B2empty) 結(jié)果送入B2 V(B1empty) V(B2full) P(B2empty) 說(shuō)明 前面我們說(shuō)過(guò):信號(hào)量的初值與相應(yīng)資源的數(shù)量有關(guān),也與P、V操作在程序代碼中出現(xiàn)的位置有關(guān)。以本題為例,如果R進(jìn)程的算法如下:R進(jìn)程P(B1empty)輸入信息寫(xiě)入緩沖區(qū)B1V(B1full)則信號(hào)量B1emp
20、ty初值應(yīng)為1。表示B1緩沖區(qū)初始為空閑狀態(tài)。 如果C進(jìn)程的算法如下: C進(jìn)程 P(B1full) 從B1中取出信息 V(B1empty) 加工信息 P(B2empty)結(jié)果送入B2 V(B2full) 則信號(hào)量B2empty初值應(yīng)為1。表示B2緩沖區(qū)初始為空閑狀態(tài)。【例9】死鎖的四個(gè)必要條件中,無(wú)法破壞的是( )。A互斥條件 B不可搶占條件C占有且申請(qǐng)條件 D循環(huán)等待條件答案 A分析 互斥條件、不可搶占條件、占有且申請(qǐng)條件和循環(huán)等待條件是死鎖發(fā)生時(shí)的4個(gè)必要條件,我們知道,只要破壞這4個(gè)必要條件中的任意一個(gè)條件,死鎖就不會(huì)發(fā)生。打破互斥條件,就是允許進(jìn)程同時(shí)訪問(wèn)某些資源。但是,有的資源是不允
21、許被同時(shí)訪問(wèn)的,如打印機(jī)等,這是由資源本身的屬性所決定的,因此這種方法并無(wú)實(shí)用價(jià)值。而其他三個(gè)條件是完全可以破壞的。2.3 練習(xí)題一、選擇題(選擇一個(gè)正確答案的代碼填入括號(hào)中)1. 順序程序和并發(fā)程序的執(zhí)行相比,( )。A基本相同 B有點(diǎn)不同C并發(fā)程序執(zhí)行總體上執(zhí)行時(shí)間快D順序程序執(zhí)行總體上執(zhí)行時(shí)間快2. 在單一處理機(jī)上,將執(zhí)行時(shí)間有重疊的幾個(gè)程序稱為( )。A順序程序 B多道程序 C并發(fā)程序 D并行程序3. 在單CPU的系統(tǒng)中,若干程序的并發(fā)執(zhí)行是由( )實(shí)現(xiàn)的。A用戶 B程序自身 C進(jìn)程 D編譯程序4. 進(jìn)程與程序之間有密切聯(lián)系,但又是不同的概念。二者的一個(gè)本質(zhì)區(qū)別是( )。A程序是靜態(tài)概
22、念,進(jìn)程是動(dòng)態(tài)概念 B程序是動(dòng)態(tài)概念,進(jìn)程是靜態(tài)概念C程序保存在文件中,進(jìn)程存放在內(nèi)存中D程序順序執(zhí)行,進(jìn)程并發(fā)執(zhí)行5. 在操作系統(tǒng)中,進(jìn)程的最基本的特征是( )。A動(dòng)態(tài)性和并發(fā)性 B順序性和可再現(xiàn)性 C與程序的對(duì)應(yīng)性 D執(zhí)行過(guò)程的封閉性6. 多個(gè)進(jìn)程的實(shí)體能存在于同一內(nèi)存中,在一段時(shí)間內(nèi)都得到運(yùn)行。這種性質(zhì)稱作進(jìn)程的( )。A動(dòng)態(tài)性 B并發(fā)性 C調(diào)度性 D異步性7. 進(jìn)程是程序的執(zhí)行過(guò)程,可以處于不同的狀態(tài)。這種性質(zhì)稱作進(jìn)程的( )。A動(dòng)態(tài)性 B并發(fā)性 C調(diào)度性 D異步性8. 在下列特性中,不是進(jìn)程的特性的是( )。A異步性 B調(diào)度性 C操作性 D動(dòng)態(tài)性9. 某進(jìn)程由于需要從磁盤(pán)上讀入數(shù)據(jù)而
23、處于阻塞狀態(tài)。當(dāng)系統(tǒng)完成了所需的讀盤(pán)操作后,此時(shí)該進(jìn)程的狀態(tài)將( )。A 從就緒變?yōu)檫\(yùn)行 B從運(yùn)行變?yōu)榫途w C從運(yùn)行變?yōu)樽枞?D從阻塞變?yōu)榫途w10. 一個(gè)進(jìn)程被喚醒意味著( )。A該進(jìn)程重新占有了CPU B進(jìn)程狀態(tài)變?yōu)榫途w C它的優(yōu)先權(quán)變?yōu)樽畲?D其PCB移至就緒隊(duì)列的隊(duì)首11. 在單處理機(jī)系統(tǒng)中,處于運(yùn)行狀態(tài)的進(jìn)程( )。A只有一個(gè) B可以有多個(gè)C不能被掛起 D必須在執(zhí)行完后才能被撤下12. 已經(jīng)獲得除( )以外的所有運(yùn)行所需資源的進(jìn)程處于就緒狀態(tài)。A存儲(chǔ)器 B打印機(jī) CCPU D磁盤(pán)空間13. 進(jìn)程從運(yùn)行狀態(tài)變?yōu)樽枞麪顟B(tài)的原因是( )。A輸入或輸出事件發(fā)生 B時(shí)間片到C輸入或輸出事件完成
24、D某個(gè)進(jìn)程被喚醒14. 為了描述進(jìn)程的動(dòng)態(tài)變化過(guò)程,采用了一個(gè)與進(jìn)程相聯(lián)系的( ),根據(jù)它而感知進(jìn)程的存在。A進(jìn)程狀態(tài)字 B進(jìn)程優(yōu)先數(shù) C進(jìn)程控制塊 D進(jìn)程起始地址15. 進(jìn)程在系統(tǒng)中存在的唯一標(biāo)志是( )。A所運(yùn)行的程序 B所運(yùn)行的程序和數(shù)據(jù)C進(jìn)程隊(duì)列 D進(jìn)程控制塊16. 進(jìn)程的動(dòng)態(tài)、并發(fā)等特征是利用( )表現(xiàn)出來(lái)的。A程序 B數(shù)據(jù) C程序和數(shù)據(jù) D進(jìn)程控制塊17. 進(jìn)程間的基本關(guān)系為( )。A相互獨(dú)立與相互制約 B同步與互斥C并行執(zhí)行與資源共享 D信息傳遞與信息緩沖18. 在一段時(shí)間內(nèi),只允許一個(gè)進(jìn)程訪問(wèn)的資源稱為( )。A共享資源 B臨界區(qū) C臨界資源 D共享區(qū)19. 操作系統(tǒng)中有一組常
25、稱為特殊系統(tǒng)調(diào)用的程序,其操作具有不可分割性,在操作系統(tǒng)中稱為( )。A初始化程序 B原語(yǔ) C子程序 D控制模塊20. 操作系統(tǒng)中利用信號(hào)量和P、V操作,( )。A只能實(shí)現(xiàn)進(jìn)程的互斥 B只能實(shí)現(xiàn)進(jìn)程的同步C可實(shí)現(xiàn)進(jìn)程的互斥和同步 D可完成進(jìn)程調(diào)度21. 如果進(jìn)程Pa對(duì)信號(hào)量S執(zhí)行P操作,則信號(hào)量S的值應(yīng)( )。 A加1 B減1 C等于0 D小于022. 如果信號(hào)量S的值是0 , 此時(shí)進(jìn)程A執(zhí)行P(S)操作,那么,進(jìn)程A會(huì)( )。A繼續(xù)運(yùn)行 B進(jìn)入阻塞態(tài),讓出CPUC進(jìn)入就緒態(tài),讓出CPU D繼續(xù)運(yùn)行,并喚醒S隊(duì)列頭上的等待進(jìn)程23. 在操作系統(tǒng)中,對(duì)信號(hào)量S的P操作原語(yǔ)的定義中,使進(jìn)程進(jìn)入相應(yīng)
26、阻塞隊(duì)列等待的條件是( )。 AS>0 BS=0 CS<0 DS¹024. 信號(hào)量S的初值為8,在S上執(zhí)行了10次P操作,6次V操作后,S的值為( )。 A10 B8 C6 D425. 若P、V操作的信號(hào)量S初值為2,當(dāng)前值為 -1,則表示有( )個(gè)等待進(jìn)程。 A0 Bl C2 D3 26. 在進(jìn)程通信中,使用信箱方式交換信息的是( )。A低級(jí)進(jìn)程通信 B高級(jí)進(jìn)程通信 C共享內(nèi)存方式 D管道文件方式27. 系統(tǒng)出現(xiàn)死鎖的原因是( )。A計(jì)算機(jī)系統(tǒng)發(fā)生了重大故障B有多個(gè)封鎖的進(jìn)程同時(shí)存在C若干進(jìn)程因競(jìng)爭(zhēng)資源而無(wú)休止地循環(huán)等待著,而且都不釋放已占有的資源 D資源數(shù)大大少于進(jìn)程數(shù),或進(jìn)程同時(shí)申請(qǐng)的資源數(shù)大大超
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年環(huán)保廢棄物處理服務(wù)合同
- 2025年度航空航天研發(fā)設(shè)備采購(gòu)合同解除書(shū)3篇
- 2025年度空運(yùn)貨物出口運(yùn)輸與國(guó)際航空運(yùn)輸協(xié)會(huì)會(huì)員服務(wù)協(xié)議3篇
- 2024貿(mào)促會(huì)指定下載專區(qū)計(jì)算機(jī)硬件買(mǎi)賣合同3篇
- 一宅一物金銀銅專屬定制配送合同版
- 2024智能無(wú)人機(jī)研發(fā)與銷售服務(wù)合同
- 2024無(wú)房產(chǎn)離婚協(xié)議書(shū)制作指南與注意事項(xiàng)3篇
- 2025年度鏟車租賃與設(shè)備租賃組合服務(wù)合同2篇
- 手衛(wèi)生相關(guān)知識(shí)培訓(xùn)課件
- 2024微信小程序用戶體驗(yàn)設(shè)計(jì)服務(wù)合同3篇
- 魯教版七年級(jí)數(shù)學(xué)下冊(cè)(五四制)全冊(cè)完整課件
- 患者突發(fā)昏迷應(yīng)急預(yù)案演練腳本-
- 智能機(jī)器人技術(shù)導(dǎo)論P(yáng)PT完整全套教學(xué)課件
- 危險(xiǎn)性較大的分部分項(xiàng)工程清單 及安全管理措施
- 中職英語(yǔ)語(yǔ)文版(2023)基礎(chǔ)模塊1 Unit 1 The Joys of Vocational School 單元測(cè)試題(含答案)
- 最全-房屋市政工程安全生產(chǎn)標(biāo)準(zhǔn)化指導(dǎo)圖冊(cè)
- 算法向善與個(gè)性化推薦發(fā)展研究報(bào)告
- 聚合物的流變性詳解演示文稿
- 電氣設(shè)備預(yù)防性試驗(yàn)安全技術(shù)措施
- 壓力彈簧力度計(jì)算器及計(jì)算公式
- 內(nèi)科學(xué)教學(xué)課件:免疫性血小板減少癥(ITP)
評(píng)論
0/150
提交評(píng)論