61 進(jìn)程的并發(fā)性_第1頁(yè)
61 進(jìn)程的并發(fā)性_第2頁(yè)
61 進(jìn)程的并發(fā)性_第3頁(yè)
61 進(jìn)程的并發(fā)性_第4頁(yè)
61 進(jìn)程的并發(fā)性_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、6.1 進(jìn)程的并發(fā)性 趙憲策16.1.1 與并發(fā)有關(guān)的概念1.進(jìn)程的順序執(zhí)行在單道程序設(shè)計(jì)環(huán)境下,系統(tǒng)具有如下特點(diǎn)。(1)資源的獨(dú)占性;(2)執(zhí)行的順序性;(3)結(jié)果的可再現(xiàn)性;(4)封閉性。2進(jìn)程的并發(fā)執(zhí)行指兩個(gè)以上的程序在計(jì)算機(jī)系統(tǒng)中運(yùn)行,一個(gè)程序結(jié)束前,另一個(gè)就已經(jīng)開始執(zhí)行,并且次序不是事先確定的。在單道程序設(shè)計(jì)環(huán)境下,一個(gè)程序不能充分利用資源,并發(fā)可充分提高計(jì)算機(jī)各個(gè)資源的利用率。3相關(guān)進(jìn)程和無(wú)關(guān)進(jìn)程相關(guān)進(jìn)程是指進(jìn)程之間在邏輯上具有某種聯(lián)系如:P0在運(yùn)行中創(chuàng)建了兩個(gè)子進(jìn)程P1、P2,P1產(chǎn)生的輸出作為P2的輸入,P1、P2是相關(guān)進(jìn)程無(wú)關(guān)進(jìn)程是指彼此完全獨(dú)立、邏輯上無(wú)任何聯(lián)系的進(jìn)程,但不

2、等于互相不起作用。4進(jìn)程的相互作用直接作用是指進(jìn)程間相互關(guān)系是有意識(shí)安排的,不需要通過(guò)某種中介而發(fā)生相互作用。間接作用是指進(jìn)程間需要某種中介發(fā)生聯(lián)系,是無(wú)意識(shí)安排的,可以發(fā)生在相關(guān)進(jìn)程之間,也可以發(fā)生在無(wú)關(guān)進(jìn)程之間。5 與時(shí)間有關(guān)的錯(cuò)誤 對(duì)于一組交往的并發(fā)進(jìn)程,執(zhí)行的相對(duì)速度無(wú)法相互控制,各種與時(shí)間有關(guān)的錯(cuò)誤就可能出現(xiàn)。 與時(shí)間有關(guān)錯(cuò)誤的表現(xiàn)形式:結(jié)果不唯一永遠(yuǎn)等待67實(shí)例:一、A、B兩個(gè)程序共享一個(gè)變量N A: n=n+1 B: 輸出n的值,將n清0 試分析A、B并發(fā)執(zhí)行時(shí)可能出現(xiàn)的情況。二、謄抄程序a 一個(gè)循環(huán)程序順序執(zhí)行的謄抄算法1:輸入:f 輸出:g while (f 不為空) inp

3、ut ; output ; 由這個(gè)程序完成謄抄工作是不會(huì)出錯(cuò)的。78實(shí)例:b 兩個(gè)程序并發(fā)執(zhí)行完成謄抄 設(shè)有一臺(tái)標(biāo)準(zhǔn)輸入設(shè)備(鍵盤),和一臺(tái)標(biāo)準(zhǔn)輸出設(shè)備(顯示器或打印機(jī)),輸入程序負(fù)責(zé)從標(biāo)準(zhǔn)設(shè)備中讀取一個(gè)字符,送緩沖區(qū)中。輸出程序從緩沖區(qū)中取數(shù)據(jù),送標(biāo)準(zhǔn)設(shè)備輸出。f緩沖區(qū)輸入程序輸出程序g89算法:2 cobegin while (不為結(jié)束符)/* 輸入程序段 */ input; /* 從標(biāo)準(zhǔn)輸入設(shè)備讀入一個(gè)數(shù)據(jù) */ send; /* 將讀入的數(shù)據(jù)送到bufferf */ while(buffer不為空) /* 輸出程序段 */ receive; /* 從bufferf中取數(shù)據(jù) */ out

4、put; /* 送打印機(jī)輸出 */ coend ?存在什么問(wèn)題?910這兩個(gè)程序段并發(fā)執(zhí)行時(shí)可能出現(xiàn)如下情況:1、輸出程序運(yùn)行的速度比輸入程序快時(shí),有些輸出會(huì)重復(fù);2、輸入程序執(zhí)行的速度比輸出程序快時(shí),有些數(shù)據(jù)會(huì)丟失。1011實(shí)例:c 三個(gè)并發(fā)執(zhí)行程序的謄抄f緩沖區(qū)sgetput緩沖區(qū)tcopygget程序負(fù)責(zé)從輸入序列f中讀取字符并送到緩沖區(qū)s中;copy程序把緩沖區(qū)s中的數(shù)據(jù)復(fù)制到緩沖區(qū)t中去;put程序從緩沖區(qū)t中取出數(shù)據(jù)打印。1112假定f系列中有記錄f=(R1,R2,.,Rn)g=()在謄抄完成后:f=()g=(R1,R2,.,Rn)算法中的:copyt=s put put(t,g)

5、 get get(s,f)1213若程序錯(cuò)寫成:while(謄抄未完成) cobegin copy; put; get; coend 初始狀態(tài): f=(R1,R2,.,Rn) s=0 t=0 g=()首先執(zhí)行g(shù)et(s,f) f=(R2,R3,.,Rn) s=R1,t=0,g=()執(zhí)行copy,put,get f=(R3,R4,.,Rn) s=R2,t=R1,g=(R1)與時(shí)間有關(guān)的錯(cuò)誤1314然后,copy,put,get三個(gè)程序段并發(fā)執(zhí)行,就有六種組合:1、copy;put;get 導(dǎo)致結(jié)果:g=(R1,R2) 2、copy;get;put 導(dǎo)致結(jié)果:g=(R1,R2) 3、put;copy;get 導(dǎo)致結(jié)果:g=(R1,R1) 4、put;get;copy 導(dǎo)致結(jié)果:g=(R1,R1) 5、get;copy;put 導(dǎo)致結(jié)果:g=(R1,R3) 6、get;put;copy 導(dǎo)致結(jié)果:g=(R1,R1) 這就是與時(shí)間有關(guān)的錯(cuò)誤:程序并發(fā)執(zhí)行時(shí),若共享了公共變量,其執(zhí)行結(jié)果與各并發(fā)程序的相對(duì)速度有關(guān),即給定相同的初始條件,若不加以控制,也可能得到不同的結(jié)果,此為與時(shí)間有關(guān)的錯(cuò)誤。

溫馨提示

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