計(jì)算機(jī)操作系統(tǒng)作業(yè)(二)_第1頁(yè)
計(jì)算機(jī)操作系統(tǒng)作業(yè)(二)_第2頁(yè)
計(jì)算機(jī)操作系統(tǒng)作業(yè)(二)_第3頁(yè)
計(jì)算機(jī)操作系統(tǒng)作業(yè)(二)_第4頁(yè)
計(jì)算機(jī)操作系統(tǒng)作業(yè)(二)_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余8頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)操作系統(tǒng)作業(yè)(二)計(jì)算機(jī)操作系統(tǒng)作業(yè)(二)計(jì)算機(jī)操作系統(tǒng)作業(yè)(二)資料僅供參考文件編號(hào):2022年4月計(jì)算機(jī)操作系統(tǒng)作業(yè)(二)版本號(hào):A修改號(hào):1頁(yè)次:1.0審核:批準(zhǔn):發(fā)布日期:選擇題1.在進(jìn)程的組成部分之中,進(jìn)程在運(yùn)行中不可修改的部分是___B__。A.私用程序段B.共享程序段C.?dāng)?shù)據(jù)段D.進(jìn)程控制塊2.在消息緩沖通信中,消息隊(duì)列屬于___A___資源。A.臨界B.共享C.永久D.可剝奪3.進(jìn)程間的同步是指進(jìn)程間在邏輯上的相互___B___關(guān)系。A.聯(lián)接B.制約C.繼續(xù)D.調(diào)用4.進(jìn)程A和進(jìn)程B通過(guò)共享緩沖區(qū)協(xié)作完成數(shù)據(jù)處理,進(jìn)程A負(fù)責(zé)生產(chǎn)數(shù)據(jù)并放入緩沖區(qū),進(jìn)程B從緩沖區(qū)中讀數(shù)據(jù)并輸出。進(jìn)程A和進(jìn)程B之間的關(guān)系是____B__。A.互斥關(guān)系B.同步關(guān)系C.互斥和同步D.無(wú)制約關(guān)系5.進(jìn)程從運(yùn)行狀態(tài)到阻塞狀態(tài)可能是由于_C____。A.進(jìn)程調(diào)度程序的調(diào)度B.現(xiàn)運(yùn)行進(jìn)程的時(shí)間片耗盡C.現(xiàn)運(yùn)行進(jìn)程執(zhí)行了wait操作D.現(xiàn)運(yùn)行進(jìn)程執(zhí)行了signal操作6.下面關(guān)于線程的敘述中正確的是__A____。A.線程包含CPU現(xiàn)場(chǎng),可以獨(dú)立執(zhí)行程序B.每個(gè)線程有自己獨(dú)立的地址空間C.線程之間的通信必須使用系統(tǒng)調(diào)用函數(shù)D.進(jìn)程只能包含一個(gè)線程7.并發(fā)進(jìn)程之間___D___。A.彼此無(wú)關(guān)B.必須同步C.必須互斥D.可能需要同步或互斥8.信號(hào)量S不能用于___D___操作。A.signalB.waitC.賦初值D.運(yùn)算表達(dá)式9.___D___是一種只能進(jìn)行wait操作和signal操作的特殊變量A.調(diào)度B.進(jìn)程C.同步D.信號(hào)量10.分配給進(jìn)程占用處理機(jī)的時(shí)間到而強(qiáng)迫進(jìn)程P讓出處理器,或有更高優(yōu)先級(jí)的進(jìn)程要運(yùn)行,迫使正在運(yùn)行的進(jìn)程P讓出處理器,則進(jìn)程P狀態(tài)變化的情況為_(kāi)__A___A.運(yùn)行態(tài)->就緒態(tài)B.運(yùn)行態(tài)->等待態(tài)C.就緒態(tài)->運(yùn)行態(tài)D.等待態(tài)->就緒態(tài)11.下面關(guān)于進(jìn)程的敘述中正確的是__A____。A.進(jìn)程獲得CPU運(yùn)行是通過(guò)調(diào)度得到的B.優(yōu)先級(jí)是進(jìn)程調(diào)度的重要依據(jù),一旦確定就不能改變C.在單CPU的系統(tǒng)中,任何時(shí)刻都有一個(gè)進(jìn)程處于運(yùn)行狀態(tài)D.進(jìn)程申請(qǐng)CPU得不到滿足時(shí),其狀態(tài)變?yōu)樽枞?2.操作系統(tǒng)通過(guò)__B____對(duì)進(jìn)程進(jìn)行管理。A.進(jìn)程B.進(jìn)程控制塊C.進(jìn)程啟動(dòng)程序D.進(jìn)程控制區(qū)13.若一個(gè)進(jìn)程擁有100個(gè)線程,這些線程屬于用戶級(jí)線程,它們?cè)谙到y(tǒng)調(diào)度執(zhí)行時(shí)間上占用的時(shí)間片個(gè)數(shù)是__A____。A.1B.100C.1/100D.014.到其他3種狀態(tài)的進(jìn)程狀態(tài)是__D____。A.就緒B.阻塞C.完成D.執(zhí)行15.信號(hào)量的初值為2,當(dāng)前值為-3,則表示等待進(jìn)程有___C___。A.1個(gè)B.2個(gè)C.3個(gè)D.5個(gè)16.wait操作可能導(dǎo)致___C___。A.進(jìn)程就緒B.進(jìn)程結(jié)束C.進(jìn)程阻塞(等待)D.新進(jìn)程創(chuàng)建17.下列的進(jìn)程狀態(tài)變化中不可能發(fā)生的變化是___A___。A.等待→運(yùn)行B.運(yùn)行→等待C.運(yùn)行→就緒D.等待→就緒18.如果有三個(gè)進(jìn)程共享同一互斥段,而且每次最多允許兩個(gè)進(jìn)程進(jìn)入該互斥段,則信號(hào)量的初值應(yīng)設(shè)置為_(kāi)_C____。A.3B.1C.2D.019.一個(gè)進(jìn)程釋放一種資源將有可能導(dǎo)致一個(gè)或幾個(gè)進(jìn)程___D___。A.由就緒變運(yùn)行B.由運(yùn)行變就緒C.由阻塞變運(yùn)行D.由阻塞變就緒20.進(jìn)程控制塊PCB不包括的內(nèi)容是___D___。A.CPU現(xiàn)場(chǎng)B.進(jìn)程優(yōu)先級(jí)C.進(jìn)程運(yùn)行狀態(tài)D.文件緩沖區(qū)21.PCB是描述進(jìn)程狀態(tài)和特性的數(shù)據(jù)結(jié)構(gòu),一個(gè)進(jìn)程___D___。A.可以有多個(gè)PCBB.可以和其他進(jìn)程共用一個(gè)PCBC.可以沒(méi)有PCBD.只能有唯一的PCB22.進(jìn)程和程序的本質(zhì)區(qū)別是___B___。A.內(nèi)存和外存B.動(dòng)態(tài)和靜態(tài)特征C.共享和獨(dú)占使用計(jì)算機(jī)資源D.順序和非順序執(zhí)行指令23.用于解決進(jìn)程間互斥的方法是___B___。①信號(hào)量及wait、signal操作②加鎖與解鎖③信箱方式④消息緩沖方式⑤特權(quán)指令方式A.③、④和⑤B.①和②C.①和③D.②和⑤24.在操作系統(tǒng)中,每個(gè)進(jìn)程具有獨(dú)立性,進(jìn)程之間又具有相互制約性。對(duì)于任何兩個(gè)并發(fā)進(jìn)程,它們___C___。A.必定無(wú)關(guān)B.必定相關(guān)C.可能相關(guān)D.可能相同25.進(jìn)程所請(qǐng)求的一次打印輸出結(jié)束后,將使進(jìn)程狀態(tài)從__D____A.運(yùn)行態(tài)變?yōu)榫途w態(tài)B.運(yùn)行態(tài)變?yōu)榈却龖B(tài)C.就緒態(tài)變?yōu)檫\(yùn)行態(tài)D.等待態(tài)變?yōu)榫途w態(tài)解析:運(yùn)行中的進(jìn)程有3種狀態(tài):運(yùn)行狀態(tài)、就緒狀態(tài)和等待狀態(tài)。運(yùn)行狀態(tài):是指進(jìn)程已獲得CPU,并且在CPU中執(zhí)行的狀態(tài)。就緒狀態(tài):是指進(jìn)程已具備運(yùn)行條件,但由于沒(méi)有獲得CPU而不能運(yùn)行所處的狀態(tài),一旦CPU分配給它,就可以運(yùn)行。等待狀態(tài):是指進(jìn)程因等待某種事件發(fā)生而暫時(shí)不能運(yùn)行的狀態(tài)。例如,當(dāng)兩個(gè)進(jìn)程競(jìng)爭(zhēng)使用同一資源時(shí),沒(méi)有占用該資源的進(jìn)程便處于等待狀態(tài)。它必須等到該資源被釋放后才可以去使用它。引起等待的原因一旦消失,進(jìn)程就變?yōu)榫途w狀態(tài),以便在適當(dāng)?shù)臅r(shí)候投入運(yùn)行。26.在下面的敘述中,不正確的是__C___。A.一個(gè)進(jìn)程可創(chuàng)建一個(gè)或多個(gè)線程B.一個(gè)線程可創(chuàng)建一個(gè)或多個(gè)線程C.一個(gè)線程可創(chuàng)建一個(gè)或多個(gè)進(jìn)程D.一個(gè)進(jìn)程可創(chuàng)建一個(gè)或多個(gè)進(jìn)程27.在下面的敘述中正確的是___B___。A.線程是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位B.引入線程可提高程序并發(fā)執(zhí)行的程度,可進(jìn)一步提高系統(tǒng)效率C.線程的引入增加了程序執(zhí)行時(shí)時(shí)空開(kāi)銷D.一個(gè)進(jìn)程一定包含多個(gè)線程解析:線程是進(jìn)程內(nèi)一個(gè)相對(duì)獨(dú)立的執(zhí)行單元,但并不能單獨(dú)運(yùn)行,只能在程序中運(yùn)行。線程的引入減少了程序執(zhí)行時(shí)的時(shí)空開(kāi)銷。一個(gè)進(jìn)程可包含一個(gè)或多個(gè)線程。28.下面關(guān)于線程的敘述中,正確的是__C____)。A.不論是系統(tǒng)支持線程還是用戶級(jí)線程,其切換都需要內(nèi)核的支持B.線程是資源的分配單位,進(jìn)程是調(diào)度和分配的單位C.不管系統(tǒng)中是否有線程,進(jìn)程都是擁有資源的獨(dú)立單位D.在引入線程的系統(tǒng)中,進(jìn)程仍是資源分配和調(diào)度分派的基本單位解析:引入線程后,進(jìn)程仍然是資源分配的單位。線程是處理器調(diào)度和分派的單位,線程本身不具有資源,它可以共享所屬進(jìn)程的全部資源29.在下面的敘述中,正確的是___D___。A.引入線程后,處理機(jī)只在線程間切換B.引入線程后,處理機(jī)仍在進(jìn)程間切換C.線程的切換,不會(huì)引起進(jìn)程的切換D.線程的切換,可能引起進(jìn)程的切換30.進(jìn)程依靠__D____從阻塞狀態(tài)過(guò)渡到就緒狀態(tài)。A.程序員的命令B.系統(tǒng)服務(wù)C.等待下一個(gè)時(shí)間片到來(lái)D."合作"進(jìn)程的喚醒二、簡(jiǎn)答題1.什么是線程進(jìn)程和線程的關(guān)系是什么 線程可定義為進(jìn)程內(nèi)的一個(gè)執(zhí)行單位,或者定義為進(jìn)程內(nèi)的一個(gè)可調(diào)度實(shí)體。在具有多線程機(jī)制的操作系統(tǒng)中,處理機(jī)調(diào)度的基本單位不是進(jìn)程而是線程。一個(gè)進(jìn)程可以有多個(gè)線程,而且至少有一個(gè)可執(zhí)行線程。進(jìn)程和線程的關(guān)系是:(1)線程是進(jìn)程的一個(gè)組成部分。(2)進(jìn)程的多個(gè)線程都在進(jìn)程的地址空間活動(dòng)。(3)資源是分給進(jìn)程的,而不是分給線程的,線程在執(zhí)行中需要資源時(shí),系統(tǒng)從進(jìn)程的資源分配額中扣除并分配給它。(4)處理機(jī)調(diào)度的基本單位是線程,線程之間競(jìng)爭(zhēng)處理機(jī),真正在處理機(jī)上運(yùn)行的是線程。(5)線程在執(zhí)行過(guò)程中,需要同步。2.進(jìn)程能自己將自己?jiǎn)拘褑徇M(jìn)程能自己將自己撤銷嗎喚醒進(jìn)程和撤消進(jìn)程都是要通過(guò)CPU上運(yùn)行程序來(lái)實(shí)現(xiàn)的。一個(gè)進(jìn)程入睡了,它就不可能被調(diào)度到CPU上運(yùn)行;一個(gè)進(jìn)程在撤消前必須先進(jìn)入終止?fàn)顟B(tài),而處于終止?fàn)顟B(tài)的進(jìn)程不可能被調(diào)度到CPU上運(yùn)行。因此,進(jìn)程被喚醒、被撤消都不能由自己來(lái)完成,只能由別的進(jìn)程實(shí)現(xiàn)。3.父進(jìn)程創(chuàng)建子進(jìn)程之后,父子進(jìn)程間的關(guān)系是什么?一個(gè)進(jìn)程創(chuàng)建子進(jìn)程之后,進(jìn)程與產(chǎn)生的進(jìn)程之間的關(guān)系是父子關(guān)系,分別稱為父進(jìn)程和子進(jìn)程。子進(jìn)程一經(jīng)產(chǎn)生就與父進(jìn)程并發(fā)執(zhí)行,子進(jìn)程共享父進(jìn)程的正文段和已經(jīng)打開(kāi)的文件。4.簡(jiǎn)述引進(jìn)線程的好處。

(1)以線程作為系統(tǒng)調(diào)度的基本單位,減少了系統(tǒng)的時(shí)空開(kāi)銷。以進(jìn)程為系統(tǒng)調(diào)度的基本單位的系統(tǒng)中,進(jìn)程的切換是很頻繁的。在切換中由于要保留當(dāng)時(shí)的運(yùn)行環(huán)境,還要設(shè)置新選中的進(jìn)程的運(yùn)行環(huán)境,這既花費(fèi)了處理機(jī)的時(shí)間,又增加了主存的空間,從而也限制了系統(tǒng)進(jìn)程的數(shù)量和進(jìn)程的切換速度。

(2)引進(jìn)線程提高了系統(tǒng)的并行能力。線程作為進(jìn)程內(nèi)的一個(gè)可執(zhí)行實(shí)體,減少了并行粒度。線程作為調(diào)度的基本單位而不是資源分配的基本單位,調(diào)度更為容易,而且采用線程提高系統(tǒng)的并行能力比采用進(jìn)程更為有效。

(3)同一進(jìn)程的線程共享進(jìn)程的用戶地址空間,所以同一進(jìn)程的線程間的通信更容易實(shí)現(xiàn)。5.當(dāng)一個(gè)進(jìn)程的父進(jìn)程被撤銷時(shí),該進(jìn)程是撤銷好還是不撤銷好? 在實(shí)際系統(tǒng)中,兩種處理辦法都是可行的,且各有優(yōu)缺點(diǎn)。若撤消,則該進(jìn)程的任務(wù)可能還沒(méi)有完成,這顯然是不利的,特別是當(dāng)該進(jìn)程的運(yùn)行結(jié)果對(duì)其他進(jìn)程的運(yùn)行很重要(如該進(jìn)程是其他進(jìn)程的前趨進(jìn)程,沒(méi)有它的運(yùn)行結(jié)果其他進(jìn)程無(wú)法運(yùn)行)時(shí);若不撤消,則該進(jìn)程又可能成為不可控的"孤兒",從而產(chǎn)生不可預(yù)測(cè)的結(jié)果。比較好的做法是,當(dāng)一個(gè)進(jìn)程的父進(jìn)程被撤消時(shí),可以將該進(jìn)程"過(guò)繼"給系統(tǒng)內(nèi)一個(gè)級(jí)別較高的進(jìn)程(如Unix中的1#進(jìn)程),讓它有一個(gè)"新的父親",這樣既可以繼續(xù)完成其任務(wù)又不會(huì)成為不可控的。6.為什么說(shuō)進(jìn)程同步問(wèn)題關(guān)系到OS的成敗同步機(jī)制應(yīng)遵循的準(zhǔn)則是什么 進(jìn)程同步問(wèn)題若處理不當(dāng),有可能會(huì)產(chǎn)生種種"與時(shí)間有關(guān)性錯(cuò)誤",特別是當(dāng)兩個(gè)或多個(gè)進(jìn)程共享了公共變量而又沒(méi)有互斥地使用這些變量時(shí),極有可能導(dǎo)致用戶程序運(yùn)行結(jié)果的不正確,這量種災(zāi)難性的后果。這種OS顯然是不成功的,是用戶不敢使用的。有以下四條準(zhǔn)則:空閑讓進(jìn)、忙則等待、有限等待、讓權(quán)等待。7.進(jìn)程之間存在哪幾種相互制約關(guān)系各是什么原因引起的下列活動(dòng)分別屬于哪種制約關(guān)系(1)若干同學(xué)去圖書館借書。(2)兩隊(duì)舉行籃球比賽。(3)流水線生產(chǎn)的各道工序。(4)商品生產(chǎn)和消費(fèi)。進(jìn)程間存在著兩種相互制約的關(guān)系:直接制約關(guān)系(即同步問(wèn)題)和間接制約關(guān)系(即互斥問(wèn)題)。同步問(wèn)題是存在邏輯關(guān)系的進(jìn)程之間相互等待產(chǎn)生的制約關(guān)系,互斥問(wèn)題是相互無(wú)邏輯關(guān)系的進(jìn)程間競(jìng)爭(zhēng)使用相同的資源所發(fā)生的制約關(guān)系。(1)屬于互斥關(guān)系,因?yàn)闀膫€(gè)數(shù)是有限的,一本書只能借給一個(gè)同學(xué)。(2)屬于互斥關(guān)系,籃球只有一個(gè),兩隊(duì)都要爭(zhēng)奪。(3)屬于同步關(guān)系,各道工序的開(kāi)始都依賴前道工序的完成。(4)屬于同步關(guān)系,商品沒(méi)生產(chǎn)出來(lái),消費(fèi)無(wú)法進(jìn)行,商品未消費(fèi)完,生產(chǎn)也無(wú)需進(jìn)行。8.試比較說(shuō)明進(jìn)程和程序的區(qū)別有哪些? (1)每個(gè)進(jìn)程實(shí)體中包含了程序段和數(shù)據(jù)段這兩個(gè)部分,因此說(shuō)進(jìn)程是與程序是緊密相關(guān)的。但從結(jié)構(gòu)上看,進(jìn)程實(shí)體中除了程序段和數(shù)據(jù)段外,還必須包含一個(gè)數(shù)據(jù)結(jié)構(gòu),即進(jìn)程控制塊PCB。(2)進(jìn)程是程序的一次執(zhí)行過(guò)程,因此是動(dòng)態(tài)的;動(dòng)態(tài)性還表現(xiàn)在進(jìn)程由創(chuàng)建而產(chǎn)生、由調(diào)度而執(zhí)行、由撤消而消亡,即它具有一定的生命周期。而程序則只是一組指令的有序集合,并和永久地存放在某種介質(zhì)上,其本身不具有運(yùn)動(dòng)的含義,因此是靜態(tài)的。(3)多個(gè)進(jìn)程實(shí)體可同時(shí)存放在內(nèi)存中并發(fā)地執(zhí)行,也正是引入進(jìn)程的目的。而程序(在沒(méi)有為它創(chuàng)建進(jìn)程時(shí))的并發(fā)執(zhí)行具有不可再現(xiàn)性,因此程序不能正確地并發(fā)執(zhí)行。(4)進(jìn)程是一個(gè)能夠獨(dú)立運(yùn)行、獨(dú)立分配資源和獨(dú)立接受調(diào)度的基本單位。而因程序不具有PCB,所以它是不可能在多道程序環(huán)境下獨(dú)立運(yùn)行的。(5)程與程序不一一對(duì)應(yīng)。同一個(gè)程序的多次運(yùn)行,將形成多個(gè)不同的進(jìn)程;同一個(gè)程序的一次執(zhí)行也可以產(chǎn)生多個(gè)進(jìn)程;而一個(gè)進(jìn)程也可以執(zhí)行多個(gè)程序三、應(yīng)用題1.有一個(gè)理發(fā)師,一把理發(fā)椅和n把供等候理發(fā)的顧客坐的椅子。如果沒(méi)有顧客,則理發(fā)師便在理發(fā)椅子上睡覺(jué);當(dāng)一個(gè)顧客到來(lái)時(shí),必須喚醒理發(fā)師,進(jìn)行理發(fā);如果理發(fā)師正在理發(fā)時(shí),又有顧客來(lái)到,則如果有空椅子可坐,他就坐下來(lái)等,如果沒(méi)有空椅子,他就離開(kāi)。為理發(fā)師和顧客各編一段程序描述他們的行為,要求不能帶有競(jìng)爭(zhēng)條件。#defineCHAIRS/*為等候的顧客準(zhǔn)備的椅子數(shù)*/semaphorecustomers=0;semaphorebarbers=0;semaphoremutex=1;/*用于互斥*/intwaiting=0;voidcustomers(){wait(mutex);if(waiting<CHAIRS){waiting=waiting+1;signal(mutex):signal(customers);坐下等待;wait(barbers);}else{signal(mutex);}voidbarber(){while(1){wait(customers);wait(mutex);waiting=waiting-1;signal(mutex);理發(fā);signal(barbers);}}}2.計(jì)算進(jìn)程PC和打印進(jìn)程P01、P02共享一個(gè)單緩沖區(qū),計(jì)算進(jìn)程負(fù)責(zé)計(jì)算,并把計(jì)算結(jié)果放入單緩沖中;打印進(jìn)程P01、P02則負(fù)責(zé)從單緩沖中取出計(jì)算結(jié)果進(jìn)行打印,而且對(duì)每個(gè)計(jì)算結(jié)果,P01和P02都需分別打印一次。請(qǐng)用記錄型信號(hào)量描述上述進(jìn)程間的同步關(guān)系。為了實(shí)現(xiàn)計(jì)算進(jìn)程和打印進(jìn)程之間的同步,并使單緩沖中的每個(gè)計(jì)算結(jié)果都被兩個(gè)打印進(jìn)程分別打印一次??稍O(shè)置四個(gè)信號(hào)量:full1表示緩沖中是否有可供P01打印的計(jì)算結(jié)果,full2表示緩沖中是否有可給P02打印的計(jì)算結(jié)果;emptypl、empty2則表示計(jì)算結(jié)果是否已被P01l、P02取走,只有當(dāng)一個(gè)結(jié)果被兩個(gè)打印進(jìn)程都取走后,緩沖區(qū)才變空,計(jì)算進(jìn)程才可將下一個(gè)計(jì)算結(jié)果放入單緩沖。相應(yīng)的同步算法可描述如下:semaphoreempty1=1,enpty2=1,full1=0,full2=0;PC:While(1){computrtnextnumber;wait(empty1):wait(empty2);addthenumbertobufer;signal(full1);signal(full2);}P01:While(1){wait(full1);takefrombufer;signal(emptyl):printlastnumber;}P02:{wait(full2);takefrombuffer;signal(empty2);printlastnumber;}3.設(shè)有三個(gè)進(jìn)程,輸入進(jìn)程(input)、計(jì)算進(jìn)程(compute)和輸出進(jìn)程(output),它們通過(guò)共享兩個(gè)緩沖區(qū)buf1和buf2協(xié)作完成任務(wù)。如下圖所示三個(gè)進(jìn)程之間的合作關(guān)系如下:(1)輸入進(jìn)程使用put()函數(shù)把數(shù)據(jù)送到buf1,供計(jì)算進(jìn)程調(diào)用calculate()函數(shù)計(jì)算;(2)計(jì)算進(jìn)程每次調(diào)用get()函數(shù)從buf1取出已輸入的可計(jì)算的數(shù)據(jù)進(jìn)行計(jì)算,并把計(jì)算結(jié)果使用put()函數(shù)把數(shù)據(jù)送到buf2送入buf供輸出進(jìn)程打印;(3)輸出進(jìn)程調(diào)用get()函數(shù)把buf2中的數(shù)據(jù)使用print()函數(shù)輸出。定義合適的信號(hào)量,并用偽代碼完成實(shí)現(xiàn)過(guò)程。信號(hào)量:nonf1、none1:輸入進(jìn)程與計(jì)算進(jìn)程同步,buf1是否為空;nonf2、none1:計(jì)算進(jìn)程與輸出進(jìn)程同步,buf2是否為空;s1、s2:分別互斥使用buf1和buf2procedureinputwhile(1){wait(nonf1)wait(s1)put(data);signal(s1);signal(none1);}procedurecomputewhile(1){wait(none1);wait(s1);data=get();data=calculate(data);signal(s1);signal(nonf1);wait(nonf2);wait(s2);put(data);signal(s2);signal(none2);}procedureoutputwhile(1){wait(none2);wait(s2);data=get();print(data);signal(s2);signal(nonf2);}4.下面給出的兩個(gè)進(jìn)程互斥的算法是安全的嗎為什么#definetrue;#definefalse;Intflag[2];flag[1]=flag[2]=false;enter-crtsec(i)inti;{While(flag[1-i])flag[i]=true;}leave-crtsec(i)Inti;{flag[i]=false;}processI;…Enter-crtsec(i);Incriticalsection;Leave-crtsec(i);從概念上講,系統(tǒng)中各進(jìn)程在邏輯上是獨(dú)立的,它們可以按各自的速度向前推進(jìn)。但由于它們共享某些臨界資源,因而產(chǎn)生了臨界區(qū)問(wèn)題。對(duì)于具有臨界區(qū)問(wèn)題的并發(fā)進(jìn)程,它們之間必須互斥,以保證不會(huì)同時(shí)進(jìn)入臨界區(qū)。這種算法不是安全的。因?yàn)椋谶M(jìn)入臨界區(qū)的enter-crtsec()不是一個(gè)原語(yǔ)操作,如果兩個(gè)進(jìn)程同時(shí)執(zhí)行完其循環(huán)(此前兩個(gè)flag均為false),則這兩個(gè)進(jìn)程可同時(shí)進(jìn)入臨界區(qū)。5.進(jìn)程A1,A2,…,An通過(guò)K個(gè)緩沖區(qū)向進(jìn)程B1,B2,…,Bm不斷地發(fā)送消息。發(fā)送和接收工作遵循如下規(guī)則:(1)每個(gè)發(fā)送進(jìn)程一次發(fā)送一個(gè)消息,寫

溫馨提示

  • 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)論