进程同步与互斥.ppt

进程同步与互斥.ppt

ID:61970552

大小:1.15 MB

页数:67页

时间:2021-04-07

进程同步与互斥.ppt_第1页
进程同步与互斥.ppt_第2页
进程同步与互斥.ppt_第3页
进程同步与互斥.ppt_第4页
进程同步与互斥.ppt_第5页
资源描述:

《进程同步与互斥.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、进程间的相互作用进程间的联系进程的同步机制──信号量及P.V操作(解决进程同步互斥问题)进程间的联系相交进程与无关进程相交进程:指多个并发进程在逻辑上有某种联系无关进程(不相交进程):在逻辑上无任何联系的进程直接作用和间接作用直接作用:进程间的相互联系是有意识的安排的,直接作用只发生在相交进程间间接作用:进程间要通过某种中介发生联系,是无意识安排的,可发生在相交进程之间,也可发生在无关进程之间进程的同步(直接作用)进程的同步:synchronism指系统中多个进程中发生的事件存在某种时序关系,需要相互合

2、作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态。进程的互斥(间接作用)mutualexclusion由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥临界资源(Criticalresource):系统中某些资源一次只允许一个进程使用,这样的资源称为临界资源或互斥资源或共享变量。临界区(Criticalregion):把不允许多个并发进程交叉执行的一段程

3、序称为临界区或临界部分。临界区就是访问公用数据的那段程序。例如堆栈操作中的get(top)和rel(blk)程序。临界区(互斥区):criticalsection一个程序片段的集合,这些程序片段分散在不同的进程中,对某个共享的数据结构(共享资源)进行操作。在进程中涉及到临界资源的程序段叫临界区。多个进程的临界区称为相关临界区。在临界区前面增加一段用于进行检查的代码,称为进入区。在临界区后面加上一段代码,称为退出区。进程中除了进入区、临界区及退出区之外的其它部分的代码,称为剩余区。使用互斥区的原则:空闲让

4、进:当无进程在互斥区时,任何有权使用互斥区的进程可进入忙则等待:不允许两个以上的进程同时进入互斥区有限等待:任何进入互斥区的要求应在有限的时间内得到满足让权等待:处于等待状态的进程应放弃占用CPU,以使其他进程有机会得到CPU的使用权使用互斥区的原则:前提:任何进程无权停止其它进程的运行进程之间相对运行速度无硬性规定进程互斥的解决有两种做法:由竞争各方平等协商引入进程管理者,由管理者来协调竞争各方对互斥资源的使用具体方法:硬件(当一个进程进入临界区,就屏蔽所有中断,但成本高)软件(用编程解决,但常常忙等

5、待)进程互斥的软件方法通过平等协商方式实现进程互斥的最初方法是软件方法。其基本思路是在进入区检查和设置一些标志,如果已有进程在临界区,则在进入区通过循环检查进行等待;在退出区修改标志。其中的主要问题是设置什么标志和如何检查标志。设有两个计算进程PA、PB共享内存MS。其中MS分为三个领域,即系统区、进程工作区和数据区。这里数据区被划分大小相等的块,每个块中既可能放有数据,也有可能未放有数据。系统区主要是堆栈S,其中存放那些空数据块的地址。如图所示:getspace(){intg;            

6、 gstack[top];toptop-1;}执行getspace就是获取一个空数据release(ad){toptop+1;stack[top]ad;}release(ad)就是释放一个地址为ad的数据块信号量:semaphore是一个数据结构定义如下:structsemaphore{intvalue;pointer_PCBqueue;}信号量说明:semaphores;P、V操作P(s){s.value=s.value--;if(s.value<0){该进程状态置为等待状态;将该进程的PCB

7、插入相应的等待队列末尾s.queue;}}V操作V(s){s.value=s.value++;if(s.value<=0){唤醒相应等待队列s.queue中等待的一个进程;改变其状态为就绪态并将其插入就绪队列;}}P、V操作为原语操作原语:primitiveoratomicaction是由若干多机器指令构成的完成某种特定功能的一段程序,具有不可分割性即原语的执行必须是连续的,在执行过程中不允许被中断实现:开关中断信号量的使用:必须置一次且只能置一次初值初值不能为负数只能执行P、V操作用P、V操作解决进程

8、间互斥问题P(mutex)V(mutex)P1P2P3互斥区P(mutex)P(mutex)V(mutex)V(mutex)三个进程共用两个I/O缓冲区。解:设用信号量S表示共享资源,S初始值为2互斥例子例:用信号量及P、V原语实现两个并发进程Pa和Pb互斥。两进程都想进入临界区S。解:1)设sem为互斥信号量,表示临界区是否可进入2)设sem的初始值为1,表示临界区可用3)描述:Pa:Pb:P(sem)P(sem)V(sem)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。