- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统教程pdf南OS3-同步通信与死锁,操作系统死锁,死锁的四个必要条件,oracle死锁,数据库死锁,mysql死锁,线程死锁,java死锁,mysql死锁解决,mysql死锁查询
第三章 同步、通信与死锁
并发进程
临界区管理
信号量与PV操作
管程
进程通信
死锁
Linux同步和通信
Windows 同步和通信
1
§3.1 并发进程
3.1.1 顺序程序设计
顺序性:前一个操作结束后才开始下一操作
封闭性:独占资源,执行过程不受外界影响
执行结果确定,执行过程可再现
系统效率不高
2
3.1.2 进程的并发性
引入并发:一组进程的执行时间重叠,提高吞吐率和
资源利用率。
进程间的相互作用:
无关进程:操作不同数据集合,与其它进程进展情况无关。
交互(相关)进程:由于共享某些变量(资源) ,一个进程的执
行可能影响其它进程的执行结果。与同一共享资源有关的程
序段分散在各进程中,且各进程的执行速度不可预知。
由于对资源的共享和竞争,并发程序相互制约。
并发程序的执行结果将不可再现(不确定)。如果不
满足并发条件,还会导致“与时间有关的错误” 。
3
3.1.2 进程的并发性
两个程序或语句S1和S2并发执行的条件:
S1和S2的读集与写集不相交。
R(S1) ∩W(S2) ∪R(S2) ∩W(S1) ∪W(S1) ∩W(S2)= Φ
例:有4条语句:S1:a=x+y; S2:b=z+1;
S3:c=a-b; S4:w=c+1 ;
它们的读集和写集分别为:
R(S1)={x,y} R(S2)={z} R(S3)={a,b} R(S4)={c}
W(S1)={a} W(S2)={b} W(S3)={c} W(S4)={w}
则S1、S2和S4可并发;
而S1和S3, S2和S3, S3和S4不能并发执行。
4
对程序的并发执行不加以控制时具有不可再现性和错误的例子:
例:堆栈S,栈顶指针top,取栈顶数据的程序get(top)和
将数据压栈的程序put(blk)。
Procedure get(top)
Procedure put(blk) Begin
Begin local r
top:=top+1 r:=(top)
(top):=blk top:=top-1
return(r)
End
End
top r
top A A top A
B put(blk) B get(top) B
文档评论(0)