操作系统(三)| 进程同步详解(主要任务、制约关系、临界资源、临界区、同步机制遵循规则、信号量机制、信号量的应用)
生活随笔
收集整理的這篇文章主要介紹了
操作系统(三)| 进程同步详解(主要任务、制约关系、临界资源、临界区、同步机制遵循规则、信号量机制、信号量的应用)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 進(jìn)程的同步基本概念
- 進(jìn)程同步的主要任務(wù)
- 進(jìn)程間的制約關(guān)系
- 臨界資源
- 臨界區(qū)
- 同步機(jī)制應(yīng)遵循的規(guī)則
- 信號(hào)量機(jī)制
- 整型信號(hào)量
- 記錄型信號(hào)量 ???
- AND型信號(hào)量
- 信號(hào)量的應(yīng)用
- 實(shí)現(xiàn)進(jìn)程互斥
- 實(shí)現(xiàn)前驅(qū)關(guān)系
- 利用記錄型信號(hào)量實(shí)現(xiàn)同步
前些天發(fā)現(xiàn)了一個(gè)巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點(diǎn)擊跳轉(zhuǎn)到網(wǎng)站。點(diǎn)擊這里
進(jìn)程的同步基本概念
進(jìn)程同步的主要任務(wù)
使并發(fā)執(zhí)行的諸進(jìn)程之間能有效地共享資源和相互合作,從而使程序的執(zhí)行具有可再現(xiàn)性。
進(jìn)程間的制約關(guān)系
-
由于資源共享造成的間接相互制約關(guān)系
-
由于進(jìn)程合作造成的直接相互制約關(guān)系
臨界資源
一次僅允許一個(gè)進(jìn)程訪問的資源叫做臨界資源(互斥訪問)
臨界區(qū)
進(jìn)程中訪問臨界資源的代碼
設(shè)計(jì)流程:
- 檢查臨界資源是否可用
- 訪問
- 將正在訪問的標(biāo)志恢復(fù)為未被訪問的標(biāo)志
同步機(jī)制應(yīng)遵循的規(guī)則
- 空閑讓進(jìn)
- 忙則等待(臨界資源占用需等待)
- 有限等待(等待時(shí)間有限)
- 讓權(quán)等待(讓出CPU)
信號(hào)量機(jī)制
整型信號(hào)量
P操作 wait(S)
wait(S):While (S<=0) do no-op;# 會(huì)一直占CPU運(yùn)行,不能做到讓權(quán)等待S--;V操作 signal(S)
signal(S):S++;注意:P操作和V操作屬于原子操作,不可被中斷
記錄型信號(hào)量 ???
typedef struct{int value;struct process_control_block *list }semphore;wait(semaphore *S){S->value--; // 代表可用資源數(shù)-1if (S->value<0)block(S->list); // 若減1后小于0,則證明資源缺乏,故阻塞進(jìn)程 }signal(semphore *S){S->value++; // 代表可用資源數(shù)+1if(S->value<=0)wakeup(S->list); // 若加1后小于等于0,證明有阻塞的進(jìn)程,故喚醒1個(gè) }AND型信號(hào)量
將進(jìn)程需要的資源一次性分配,運(yùn)行完后一次性釋放
Swait(S1,S2,S3...) //同時(shí)滿足所有信號(hào)量S Ssignal(S1,S2,S3...) //同時(shí)釋放所有信號(hào)量S信號(hào)量的應(yīng)用
實(shí)現(xiàn)進(jìn)程互斥
為進(jìn)程設(shè)置初始信號(hào)量 mutex = 1 ,將臨界區(qū)置于wait(mutex)和signal(mutex)之間
實(shí)現(xiàn)前驅(qū)關(guān)系
設(shè)置共享信號(hào)量 S = 0,實(shí)現(xiàn)先P1,后P2
S = 0 P1:語句1;...signal(S) P2:wait(S)語句1;...利用記錄型信號(hào)量實(shí)現(xiàn)同步
semaphore empty = 1; semaphore full = 0; begin parbeginp1:beginrepeat......wait(full)print(x) # 默認(rèn)將x打印完后銷毀signal(empty)......untilendp2:beginrepeat......wait(empty);x:=處理結(jié)果 # x重新創(chuàng)建賦值signal(full);until false;end ......總結(jié)
以上是生活随笔為你收集整理的操作系统(三)| 进程同步详解(主要任务、制约关系、临界资源、临界区、同步机制遵循规则、信号量机制、信号量的应用)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 操作系统(二 )| 进程管理初探(前趋图
- 下一篇: 操作系统(四) | 经典进程的同步问题(