進(jìn)程并發(fā)執(zhí)行
并發(fā)是所有問(wèn)題產(chǎn)生的基礎(chǔ),是操作系統(tǒng)設(shè)計(jì)的基礎(chǔ)。
從進(jìn)程特征出發(fā):
- 并發(fā):進(jìn)程的執(zhí)行是間斷性的;進(jìn)程的相對(duì)執(zhí)行速度不可預(yù)測(cè)
- 共享:進(jìn)程/線程之間的制約性
- 不確定性:進(jìn)程執(zhí)行的結(jié)果與其執(zhí)行的相對(duì)速度有關(guān),是不確定的
與時(shí)間有關(guān)的錯(cuò)誤:某銀行業(yè)務(wù)系統(tǒng),某客戶賬戶有5000元,有兩個(gè)ATM機(jī)T1和T2
T1:
...
read(x);
if x>=1000 then
x:=x-1000;
write(x);
T2:
...
read(x);
if x>=2000 then
x:=x-2000;
write(x);
...
關(guān)鍵活動(dòng)x:=x-1000; x:=x-2000有交叉
進(jìn)程互斥(MUTUAL EXCLUSIVE)
- 由于各進(jìn)程要求使用共享資源(變量、文件等),而這些資源需要排他性使用,各進(jìn)程之間競(jìng)爭(zhēng)使用這些資源——這一關(guān)系稱為進(jìn)程互斥
- 臨界資源:critical resource 系統(tǒng)中某些資源一次只允許一個(gè)進(jìn)程使用,稱這樣的資源為臨界資源或互斥資源或共享資源
- 臨界區(qū)(互斥區(qū)):critical section(region) 各個(gè)進(jìn)程中對(duì)某個(gè)臨界資源(共享變量)實(shí)施操作的程序片段
臨界區(qū)(互斥區(qū))的使用原則
- 沒(méi)有進(jìn)程在臨界區(qū)時(shí),想進(jìn)入臨界區(qū)的進(jìn)程可進(jìn)入
- 不允許兩個(gè)進(jìn)程同時(shí)處于其臨界區(qū)中
- 臨界區(qū)外運(yùn)行的進(jìn)程不得阻塞其他進(jìn)程進(jìn)入臨界區(qū)
- 不得使進(jìn)程無(wú)限期等待進(jìn)入臨界區(qū)

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png