- 2
- 0
- 约2.35万字
- 约 270页
- 2023-08-14 发布于江苏
- 举报
第三章 进程的同步与通信;进程互斥 ; 基本概念;; ;;临界区(critical section):临界段,在每个程序中,访问临界资源的那段程序。
注意:临界区是对某一临界资源而言的,对于不同临界资源的临界区,它们之间不存在互斥。
如有程序段A、B是关于变量X的临界区,而C、D是关于变量Y的临界区,那么,A、B之间需要互斥执行,C、D之间也要互斥执行,而A与C、B与D之间不用互斥执行。 ;解决互斥的准则;软件方法解决进程互斥 ;算法1;;算法1的问题;算法2;;算法2的问题;算法3;;Pi进程:
Repeat
flag[i]:=true;
While flag[j] do no_op;
Critical section
flag[i]:=false;
Other code
Until false;;算法3的问题;课本上的解法4;算法4(正确算法) ;;算法4(正确算法);软件解法的缺点;硬件方法解决进程互斥;Test-and-Set指令实现互斥;2、利用TS指令实现进程互斥
为每个临界资源设置一个全局布尔变量lock,并赋初值false,表示资源空闲。
repeat
while TS(lock) do skip;
critical section
lock:=false;
Other code
Until false;;swap指令实现进程互斥;2、利用swap实现进程互斥
为每一临界资源设置一个全局布尔变量lock,其初值为false,在每个进程中有局部布尔变量key。
Repeat
key:=true;
Repeat Swap(lock,key); Until key=false;
Critical section
lock:=false;
Other code
Until false;;用原语实现进程互斥;上锁和开锁原语;用原语实现进程互斥;改进的上锁原语;改进的开锁原语;1965年,由荷兰学者Dijkstra提出(所以P、V分别是荷兰语的test (proberen) 和increment (verhogen) )
一种卓有成效的进程同步机制
最初提出的是二元信号量(互斥)
推广到一般信号量(多值)(同步)
P、V操作是原语
;信号量:semaphore;P操作;V操作; 必须置一次且只能置一次初值
初值不能为负数
只能执行P、V操作;用P、V操作解决进程间互斥问题;信号量及P、V操作讨论;思考;1) 信号量的物理含义:
S0表示有S个资源可用
S=0表示无资源可用
S0则| S |表示S等待队列中的进程个数
P(S):表示申请一个资源
V(S):表示释放一个资源。
信号量的初值应该大于等于0;2) P.V操作必须成对出现,有一个P操作就一定有一个V操作
当为互斥操作时,它们同处于同一进程
当为同步操作时,则不在同一进程中出现
如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至关重要。
一个同步P操作与一个互斥P操作在一起时同步P操作在互斥P操作前
而两个V操作无关紧要;3)P、V操作的优缺点
优点:
简单,而且表达能力强(用P、V操作可解决任何同步互斥问题)
缺点:
不够安全,P、V操作使用不当会出现死锁;
遇到复杂同步互斥问题时实现复杂;信号量集——AND型信号量集 ;Swait(S1, S2, …, Sn) //P原语;
{ if(S1 =1 S2 = 1 … Sn = 1)
{ //满足资源要求时的处理;
for (i = 1; i = n; ++i) -–Si;
}
else
{ //某些资源不够时的处理;
调用进程进入第一个小于1信号量的等待队列Sj.queue;
阻塞调用进程;
}
};Ssignal(S1, S2, …, Sn)
{ for (i = 1; i = n; ++i)
{ ++Si; //释放占用的资源;
for (在Si.queue中等待的每一个进程P)
{ 从等待队列Si.queue中取出进程P;
if(判断进程P是否通过Swait中的测试) //重新判断
{ 进程P进入就绪队列;
break;
}
else 进程P进入某等待队列;
}
}
} ;一般“信号量集”;进程对信号量Si的
测试值为ti(表示信号量的判断条件,要求Si = ti;即当资源数量低于ti时,便不予分配)
占用值为di(表示资源的申请量,即Si = Si - di)
对应的P、V原语格式为:
Swait(S1, t1, d1
您可能关注的文档
最近下载
- 问卷1:中国中小学生积极心理品质量表.pdf VIP
- TWSJD57-2024 食品中蜡样芽胞杆菌呕吐毒素的测定.pdf VIP
- 大学生道德健康、青少年乐观的因素结构及特点分析、自尊问卷调查表.docx VIP
- 2026年高考第一次模拟考试物理一模保分卷02(陕晋宁青专用)(考试版).docx VIP
- 电土施表4-18 混凝土结构工程养护记录.doc VIP
- 塔吊安拆工程旁站监理方案.docx
- 河南专升本公共英语10年真题和答案解析 .pdf VIP
- 2026年高考第一次模拟考试物理一模保分卷02( 江苏专用 )(考试版).docx VIP
- 云智算技术白皮书(2025).pdf VIP
- 湖北省武汉市武昌区八年级(上)物理期末模拟题二.docx VIP
原创力文档

文档评论(0)