欢迎来到天天文库
浏览记录
ID:53310492
大小:352.50 KB
页数:88页
时间:2020-04-18
《自考操作系统原理第七章进程同步与进程通信.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、进程同步与进程通信进程的顺序性进程的顺序性是指进程在顺序处理器上的执行是严格按序的,即按照程序规定的操作顺序,只有在前一个操作结束后才能开始后继操作。当一个进程独占处理器时,它具有两个特性:封闭性可再现性进程的并发性每一个进程具有顺序性,但是在多道程序设计系统中,多个进程要竞争,轮流占用处理器。有两个进程A和B,它们各自顺序执行时的操作序列如下:进程A:a1,a2,a3,…,am进程B:b1,b2,b3,…,bm在多道程序设计系统中,处理器可能执行的操作序列a1,b1,a2,b2,a3,b3…a1,a2,b1
2、,a3,b2,b3…进程的并发性在一个进程的工作没有完成之前,另一个进程就可以开始工作,这些进程就称为可同时执行的。或者称它们具有并发性,并且把可同时执行的进程称为并发进程。进程的并发性如果一个进程的执行不影响另一个进程的执行结果,也不依赖一个进程的进展情况,即它们是各自独立的,则称这些进程相互之间是无关的。如果一个进程的执行要依赖其他进程的进展状况,或者可能会影响其他进程的执行结果,则说这些进程是有交互的。与时间有关的错误对于有交互的并发进程来说,并发会破坏“封闭性”和“可再现性”例1:车辆自动计数系统pr
3、ocessObserverbeginL1:observealorry;count:=count+1;gotoL1;end;processReporterbeginprintcount;count:=0;end;系统功能:统计每小时的卡车流量观察者进程(Observer):观察到一辆卡车,计数器+1报告者进程(Reporter):每隔1小时,将计数值输出,计数器清零例2:航班售票系统processPi(i=1,2,…)beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票
4、;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两个人同时
5、在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-1;Ak=Ri输出一张票;end;el
6、se输出”票已售完“end;processP2beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=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输出一张票;e
7、nd;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;Ak=Ri输出一张票;end;else输出”票已售完“end;Ri=4假设某时刻Ak为5,A、B两个人同时在2号3号窗口买票processP2beginRi:=Ak;i
8、fRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;processP3beginRi:=Ak;ifRi>=1thenbeginRi:=Ri-1;Ak=Ri输出一张票;end;else输出”票已售完“end;Ak=4假设某时刻Ak为5,A、B两个人同时在2号3号窗口买票processP2beginRi:=Ak;ifRi>=1thenbeginR
此文档下载收益归作者所有