freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

湯 第02章 進(jìn)程管理(文件)

 

【正文】 掛起的事件時(shí),比如,用戶(hù)進(jìn)程請(qǐng)求將自己掛起,或父進(jìn)程請(qǐng)求將利用掛起原語(yǔ) Suspend()將指定進(jìn)程或處于阻塞狀態(tài)的進(jìn)程掛起。 942.? 假如采用的是 搶占調(diào)度 策略,則每當(dāng)有新進(jìn)程進(jìn)入就緒隊(duì)列時(shí),應(yīng)檢查是否要進(jìn)行重新調(diào)度,即由調(diào)度程序?qū)⒈患せ钸M(jìn)程與當(dāng)前進(jìn)程進(jìn)行優(yōu)先級(jí)的比較,如果被激活進(jìn)程的優(yōu)先級(jí)更低,就不必重新調(diào)度;否則,立即剝奪當(dāng)前進(jìn)程的運(yùn)行,把處理機(jī)分配給剛被激活的進(jìn)程。而程序是一組有序的指令集合,是一種靜態(tài)的概念。? 進(jìn)程與程序的組成不同。97 進(jìn)程同步? 主要任務(wù):對(duì)多個(gè)相關(guān)進(jìn)程在執(zhí)行次序上進(jìn)行協(xié)調(diào),以使并發(fā)執(zhí)行的諸進(jìn)程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可再現(xiàn)性。? 例如,有 2個(gè)進(jìn)程 A和 B,如果在 A進(jìn)程提出打印請(qǐng)求時(shí),系統(tǒng)已將惟一的一臺(tái)打印機(jī)分配給了進(jìn)程 B,則此時(shí)進(jìn)程 A只能阻塞;一旦進(jìn)程 B將打印機(jī)釋放,則 A進(jìn)程才能由阻塞改為就緒狀態(tài)。102補(bǔ)充例題? 進(jìn)程之間存在著哪幾種制約關(guān)系?各是什么原因引起的?下列活動(dòng)分別屬于哪種制約關(guān)系?( 1)若干同學(xué)去圖書(shū)館借書(shū);( 2)兩隊(duì)舉行籃球比賽;( 3)流水線生產(chǎn)的各道工序;( 4)商品生產(chǎn)和社會(huì)消費(fèi)。( 3)流水線生產(chǎn)的各道工序是直接制約,各道工序間需要相互合作,每道工序的開(kāi)始都依賴(lài)于前一道工序的完成。 臨界資源104v生產(chǎn)者 — 消費(fèi)者問(wèn)題:216。216。v循環(huán)緩沖:167。n167。 緩沖池空: 減 1:消費(fèi)者進(jìn)程從緩沖中取走一個(gè)產(chǎn)品u生產(chǎn)者和消費(fèi)者兩進(jìn)程共享下面的變量intitem=…。in,out。//產(chǎn)品放到局部變量 nextp中 … while (counter==n)(滿(mǎn)) do noop。 //計(jì)數(shù) }consumer: while(true){ … while (counter==0)(空) do noop。 //計(jì)數(shù) consume the item in nextc。condition? 在消費(fèi)者進(jìn)程中,則使用一個(gè)局部變量 nextc,用于存放每次要消費(fèi)的產(chǎn)品。register1++。register2。o 先左后右(正常),先右后左(正常)o 交叉執(zhí)行(不正常)不可再現(xiàn)性110register1=counter。register2=counter。(register2=4)counter=register1。n 是代碼n 進(jìn)程內(nèi)的代碼n 一段或多段n 不一定連續(xù)n 不一定相同v若能保證諸進(jìn)程互斥地進(jìn)入自己的臨界區(qū),便可實(shí)現(xiàn)諸進(jìn)程對(duì)臨界資源的互斥訪問(wèn)。 in=(in+1) % n。 out=(out+1)% n。v每個(gè)進(jìn)程在進(jìn)入臨界區(qū)之前,應(yīng)先對(duì)欲訪問(wèn)的臨界資源進(jìn)行檢查,看它是否正被訪問(wèn)。v剩余區(qū):其他代碼 臨界區(qū) (critical section)113v為了互斥地訪問(wèn)臨界資源,系統(tǒng)必須保證進(jìn)程互斥地進(jìn)入臨界區(qū)。v進(jìn)入?yún)^(qū)、退出區(qū)具體可用多種同步機(jī)制實(shí)現(xiàn),如鎖、信號(hào)量機(jī)制等。section。section。同步機(jī)制應(yīng)遵循的規(guī)則116( 3)有限等待對(duì)要求訪問(wèn)臨界資源的進(jìn)程,應(yīng)保證在有限時(shí)間內(nèi)進(jìn)入自己的臨界區(qū),以免陷入 “死等 ”狀態(tài)。例如,考慮某個(gè)采取高優(yōu)先權(quán)優(yōu)先調(diào)度原則的系統(tǒng),目前有 2個(gè)進(jìn)程 A和 B共享某個(gè)臨界資源, A的優(yōu)先權(quán)較高, B的優(yōu)先權(quán)較低,且 B已處于臨界區(qū)內(nèi),而 A欲進(jìn)入自己的臨界區(qū),則 A、 B都不可能繼續(xù)向前推進(jìn),陷入 “死等 ”狀態(tài)。整型信號(hào)量記錄型信號(hào)量 AND型信號(hào)量信號(hào)量集119v 整型信號(hào)量定義為一個(gè)整型量,除初始化外,僅能通過(guò)兩個(gè)標(biāo)準(zhǔn)的原子操作 Wait(S)即原語(yǔ)的執(zhí)行必須是連續(xù)的,在執(zhí)行過(guò)程中不允許被中斷。(s=0)s。和 signal(s)是原子操作,因此它們?cè)趫?zhí)行時(shí)是不可中斷的。整型信號(hào)量的應(yīng)用S1S2semaphoreprocesss2:{L:listendprocedure//請(qǐng)求一個(gè)單位的資源semaphoreblock(s,L)資源數(shù)目加 1在有些應(yīng)用場(chǎng)合,一個(gè)進(jìn)程需要先獲得兩個(gè)或更多的共享資源后,方能執(zhí)行其任務(wù)。A:wait(Dmutex)。wait(Dmutex)。B:wait(Emutex)://Emutex=0ProcessB阻塞死鎖 AND型信號(hào)量124v 將進(jìn)程在整個(gè)運(yùn)行過(guò)程中所需要的所有臨界資源, 一次性 地全部 分配 給進(jìn)程,待該進(jìn)程使用完后再 一起釋放 。(s1=1amp。si。intoassociatedsisetoftheoperation.Removewaitingassociatedthe當(dāng)一次需 N個(gè)某類(lèi)臨界資源時(shí),便需要進(jìn)行 N次 wait(s)操作,顯然這是低效的。ifsn=tn)i++)executingwaitingfirstandcounterofoperation。i=n。si=si+di。allinwithready}。當(dāng) S=1時(shí),允許多個(gè)進(jìn)程進(jìn)入某特定區(qū);當(dāng) S變?yōu)?0后,將阻止任何進(jìn)程進(jìn)入特定區(qū)。process1:{section}process2:{while(true){signal(mutex)。section}}分析132利用信號(hào)量來(lái)描述的前趨關(guān)系 S1S2 S3S4 S5S6Varsignal(a)。wait(a)。}。signal(e)。wait(c)。}。signal(g)。wait(e)。a,b,c,d,e,f,g,j,k,l:semaphore:=0,0,0,0,0,0,0,0,0。signal(a)。{signal(e)。S3。wait(c)。{}。signal(k)。wait(k)。{S8。– 不僅給系統(tǒng)的管理帶來(lái)麻煩,而且還會(huì)因同步操作的使用不當(dāng)而導(dǎo)致系統(tǒng) 死鎖 。– FIFO隊(duì)列(軟件資源):可用其隊(duì)長(zhǎng)、隊(duì)首和隊(duì)尾以及在該隊(duì)列上所執(zhí)行的一組操作來(lái)描述。? 代表共享資源的 數(shù)據(jù)結(jié)構(gòu) ,以及由對(duì)該共享數(shù)據(jù)結(jié)構(gòu)實(shí)施操作的一組 過(guò)程 所組成的資源管理程序,共同構(gòu)成了一個(gè)OS的資源管理模塊,我們稱(chēng)之為管程。monitorname=MONITOR。defineuse……begin管程的局部數(shù)據(jù)初始化 語(yǔ) 句序列 。? 抽象數(shù)據(jù)類(lèi)型。143管程與進(jìn)程的不同點(diǎn)( 1)管程所定義的是公用數(shù)據(jù)結(jié)構(gòu),如消息隊(duì)列等,進(jìn)程所定 義的是私有數(shù)據(jù)結(jié)構(gòu) PCB;( 2)管程把共享變量上的同步操作集中起來(lái)統(tǒng)一管理,而 PV同步中的 PV操作分散在每個(gè)進(jìn)程中。144v 在利用管程實(shí)現(xiàn)進(jìn)程同步時(shí),必須設(shè)置兩個(gè)同步操作原語(yǔ)wait和 signal。管程中對(duì)每個(gè)條件變量,都需予以說(shuō)明,其形式為: var此時(shí), wait原語(yǔ)應(yīng)改為 ,相應(yīng)地, signal應(yīng)改為 。 P等待,直至 Q離開(kāi)管程,或 Q等待另一條件。生產(chǎn)者 — 消費(fèi)者問(wèn)題利用記錄型信號(hào)量解決生產(chǎn)者 — 消費(fèi)者問(wèn)題利用 AND信號(hào)量解決生產(chǎn)者 — 消費(fèi)者問(wèn)題利用管程解決生產(chǎn)者 — 消費(fèi)者問(wèn)題149Semaphore{anwait(empty)。//前 2句顛倒則死鎖signal(mutex)。}consumer:wait(full)。signal(mutex)。nextc=buffer(out)。while(true){} buffer(in)=nextp?!?incobeginin=0,out=0。item讀者 — 寫(xiě)者問(wèn)題利用記錄型信號(hào)量解決讀者 — 寫(xiě)者問(wèn)題利用信號(hào)量集機(jī)制解決讀者 —— 寫(xiě)者問(wèn)題147 生產(chǎn)者 — 消費(fèi)者問(wèn)題利用記錄型信號(hào)量解決生產(chǎn)者 — 消費(fèi)者問(wèn)題利用 AND信號(hào)量解決生產(chǎn)者 — 消費(fèi)者問(wèn)題利用管程解決生產(chǎn)者 — 消費(fèi)者問(wèn)題148利用記錄型信號(hào)量解決生產(chǎn)者— 消費(fèi)者問(wèn)題? 假定,在生產(chǎn)者和消費(fèi)者之間的公用緩沖池中,具有 n個(gè)緩沖區(qū),可利用互斥信號(hào)量 mutex使諸進(jìn)程實(shí)現(xiàn)對(duì)緩沖池的互斥使用;? 利用資源信號(hào)量 empty和 full分別表示緩沖池中空緩沖區(qū)和滿(mǎn)緩沖區(qū)的數(shù)量。 Q等待,直至 P離開(kāi)管程,或 P等待另一條件。因?yàn)?,后者總是要?zhí)行s++操作,因而總會(huì)改變信號(hào)量的狀態(tài)。該變量應(yīng)置于 wait和signal之前,即可表示為 。僅當(dāng)另一進(jìn)程訪問(wèn)完并釋放之后,管程又調(diào)用signal原語(yǔ),喚醒等待隊(duì)列中的隊(duì)首進(jìn)程。( 4)管程被欲使用共享資源的所有進(jìn)程所調(diào)用,管程和調(diào)用它的進(jìn)程不能并發(fā)執(zhí)行;而進(jìn)程之間能夠并發(fā)工作,并發(fā)性是其固有特性。? 信息掩蔽。142管程特點(diǎn)p 管程是一種程序設(shè)計(jì)語(yǔ)言結(jié)構(gòu)成分,它和信號(hào)量有同等的表達(dá)能力,從語(yǔ)言的角度看,管程主要有以下特性:? 模塊化?!璮unctionprocedure管程的定義137? 管程 :一個(gè)管程定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)和能為并發(fā)進(jìn)程所執(zhí)行(在該數(shù)據(jù)結(jié)構(gòu)上)的一組操作,這組操作能同步進(jìn)程和改變管程中的數(shù)據(jù)。release。135? 系統(tǒng)中的各種硬件資源和軟件資源,均可用數(shù)據(jù)結(jié)構(gòu)加以抽象的描述,即用少量信息和對(duì)該資源所執(zhí)行的操作來(lái)表征該資源,而忽略了它們的內(nèi)部結(jié)構(gòu)和實(shí)現(xiàn)細(xì)節(jié)。coend}S1S2 S3 S4S5 S6S8S7134 管程機(jī)制? 信號(hào)量機(jī)制的優(yōu)點(diǎn)– 一種既方便又有效的進(jìn)程同步機(jī)制? 信號(hào)量機(jī)制的缺點(diǎn)– 每個(gè)要訪問(wèn)臨界資源的進(jìn)程都必須 自備 同步操作 wait(s)和 signal(s)。wait(k)。signal(l)。{wait(d)。S5。signal(g)。}。{S2。signal(c)。{coend}F一個(gè)結(jié)點(diǎn)對(duì)應(yīng)一個(gè)進(jìn)程;F一條邊對(duì)應(yīng)一個(gè)信號(hào)量;F可以少用幾個(gè)信號(hào)量 133學(xué)生自己設(shè)計(jì)的實(shí)例Varwait(g)。}。wait(d)。signal(f)。}。wait(b)。signal(c)}。cobegin{{coend}利用信號(hào)量實(shí)現(xiàn)進(jìn)程互斥131wait(mutex)和 signal(mutex)必須成對(duì)出現(xiàn)。sectionwait(mutex)。sectionsignal(mutex)。mutex=1。( 2) Swait(S,1,1):此時(shí)的信號(hào)量集已蛻化為一般的記錄型信號(hào)量 (S1時(shí) )或互斥信號(hào)量( S=1)。intoqueueprocessforSsignal(s1,d1,…sn,dn)SwaittheitswithofinPlace(i=1。amp。amp。因而,在每次分配之前,都必須測(cè)試該資源的數(shù)量是否大于測(cè)試值 t。queue.}。Sithethei=n。ofprocessprogramwiththewaitingthefor(i=1,i=n,i++)sn=1amp。v 要么全分配,要么一個(gè)也不分配。A阻塞ProcessA:wait(Dmutex)。Process當(dāng)然,共享數(shù)據(jù)都應(yīng)作為臨界資源。說(shuō)明原來(lái)至多 1,也就是至少有一個(gè)等待進(jìn)程}等待進(jìn)程隊(duì)列資源數(shù)目,資源信號(hào)量放棄處理機(jī)。ifs。資源分配完畢,自我阻塞,放棄處理機(jī)}procedureif{process。semaphore=recordwait(s)。}}{此外,在wait操作中,對(duì) s值的測(cè)試和做 s操作時(shí)都不可中斷。s++。整型信號(hào)量120P操作(原語(yǔ)), wait(s):v P操作和 V操作是執(zhí)行時(shí)不被打斷的兩個(gè)操作系統(tǒng)原語(yǔ)。在長(zhǎng)期且廣泛的應(yīng)用中,信號(hào)量機(jī)制又得到了很大的發(fā)展,它從整型信號(hào)量經(jīng)記錄型信號(hào)量,進(jìn)而發(fā)展為 “信號(hào)量集 ”機(jī)制。同步機(jī)制應(yīng)遵循的規(guī)則117何謂 “忙等 ”?它有什么缺點(diǎn)?v 所謂 “忙等 ”是指 “不讓權(quán) ”的等待,即進(jìn)程因某事件的發(fā)生而無(wú)法繼續(xù)執(zhí)行時(shí),它仍占有 CPU,并通過(guò)不斷地執(zhí)行循環(huán)測(cè)試指令來(lái)等待該事件的完成。當(dāng)無(wú)進(jìn)程處于臨界區(qū)時(shí),表明臨界資源處于空閑狀態(tài),應(yīng)允許一個(gè)請(qǐng)求進(jìn)入臨界區(qū)的進(jìn)程 立即 進(jìn)入自己的臨界區(qū),以有效地利用臨界資源。所有同步機(jī)制都應(yīng)遵循下述 4條準(zhǔn)則:( 1)空閑讓進(jìn)section。section。若有,則進(jìn)程必須等待;否則,允許進(jìn)程進(jìn)入臨界區(qū),同時(shí)設(shè)置標(biāo)志表示有進(jìn)程正在臨界區(qū)內(nèi)。v因此,必須在臨界區(qū)前面增加一段用于進(jìn)行上述檢查的代碼,把這段代碼稱(chēng)為進(jìn)入?yún)^(qū)。 //計(jì)數(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1