欢迎来到天天文库
浏览记录
ID:1514190
大小:396.50 KB
页数:73页
时间:2017-11-12
《进程同步与进程通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、进程同步与进程通信进程的并发性每一个进程具有顺序性,但是在多道程序设计系统中,多个进程要竞争,轮流占用处理器。有两个进程A和B,它们各自顺序执行时的操作序列如下:进程A:a1,a2,a3,…,am进程B:b1,b2,b3,…,bm在多道程序设计系统中,处理器可能执行的操作序列a1,b1,a2,b2,a3,b3…a1,a2,b1,a3,b2,b3…进程的并发性在一个进程的工作没有完成之前,另一个进程就可以开始工作,这些进程就称为可同时执行的。或者称它们具有并发性,并且把可同时执行的进程称为并发进程。进程的并发性如果一个进程的执行不影响另一个进程的执行结果,也不依赖一个进程的
2、进展情况,即它们是各自独立的,则称这些进程相互之间是无关的。如果一个进程的执行要依赖其他进程的进展状况,或者可能会影响其他进程的执行结果,则说这些进程是有交互的。并发进程之间的关系进程互斥多个进程不能同时使用同一个资源,某个进程使用该资源时,其他进程必须等待。进程同步多个进程的调用存在时序关系,某些进程的执行必须先于另一些进程。进程通信多个进程之间传递消息。与时间有关的错误对于有交互的并发进程来说,并发会破坏“封闭性”和“可再现性”例1:航班售票系统processPi(i=1,2,…)beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出
3、一张票;end;else输出”票已售完“end;Ak代表某天某次航班的剩余票数;Pi代表售票处理进程;Ri是每个售票进程的私有变量;各个售票处进程的工作如右边代码所示:processP2beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;processP3beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;Ri=5假设某时刻Ak为5,A、B两个人同时在2号3号窗口买票processP2beginRi:=Ak
4、;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;processP3beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;Ri=5假设某时刻Ak为5,A、B两个人同时在2号3号窗口买票processP3beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;processP2beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;A
5、k=Ri输出一张票;end;else输出”票已售完“end;Ri=5假设某时刻Ak为5,A、B两个人同时在2号3号窗口买票processP2beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;processP3beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;Ri=5假设某时刻Ak为5,A、B两个人同时在2号3号窗口买票processP3beginRi:=Ak;ifRi>=1thenbeginRi:=Ri
6、-1;Ak=Ri输出一张票;end;else输出”票已售完“end;processP2beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;Ri=4假设某时刻Ak为5,A、B两个人同时在2号3号窗口买票processP2beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;processP3beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已
7、售完“end;Ak=4假设某时刻Ak为5,A、B两个人同时在2号3号窗口买票processP2beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;processP3beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;Ri=4假设某时刻Ak为5,A、B两个人同时在2号3号窗口买票processP3beginRi:=Ak;ifRi>=1thenbeginRi:=Ri
此文档下载收益归作者所有