文档详情

嵌入式系统教学课件:操作系统3-互斥.ppt

发布:2025-04-08约2.3千字共10页下载文档
文本预览下载声明

进程管理2系统中诸进程之间在逻辑上存在着两种制约关系:01直接制约关系(进程同步):即为完成同一个任务的诸进程间,因需要协调它们的工作而相互等待、相互交换信息所产生的直接制约关系。02间接制约关系(进程互斥):是进程共享独占型资源而必须互斥执行的间接制约关系。03两种形式的制约关系进程互斥进程互斥同步互斥进程-进程进程-资源-进程时间次序上受到某种限制竞争到某一物理资源时不允许进程工作相互清楚对方的存在及作用,交换信息不一定清楚其进程情况往往指有几个进程共同完成一个任务往往指多个任务多个进程间通讯制约例:生产与消费之间,发送与接受之间,作者与读者之间,供者与用者之间例:交通十字路口,单轨火车的拨道岔同步与互斥比较进程互斥1、临界区、临界资源◆1次仅允许1个进程使用◆具备这种特性的资源称为临界资源(criticalresource),使用临界资源的那段程序称为临界段(criticalsection)◆从进程角度看,它被各个进程互斥地使用临界资源、临界区例:有两个进程A和B,它们共享一个变量x,且两个进程按以下方式对变量X进行访问和修改:其中R1和R2为处理机中的两个寄存器。 A与B均对X+1,即X+2。若按另一顺序对变量进行修改:结果x只加了1。A:R1=X;B:R2=X;A:R1=R1+1;X=R1;B:R2=R2+1;X=R2;A:R1=X;R1=R1+1;X=R1;B:R2=X;R2=R2+1;X=R2;(1)变量X必需按临界资源处理。(2)每个进程中访问临界资源的那段代码称为临界区例2:getspace和release:1getspace:beginlocalg2gstack[top]3toptop-14end5release(ad): begin6toptop+17stack[top]ad8end9两个进程公用一个堆栈,堆栈是临界资源;访问堆栈的程序段就是临界区。10临界资源、临界区临界资源、临界区 为了保证临界资源的正确使用,可以把临界资源的访问过程分成以下几部分:进入区临界区退出区剩余区进入区—增加在临界区前面的一段代码,用于检查欲访问的临界资源此刻是否被访问。退出区—增加在临界区后面的一段代码,用于将临界资源的访问标志恢复为未被访问标志。剩余区—进程中除了进入区、临界区及退出区之外的其余代码。临界资源、临界区要进入临界区的若干进程必须满足:(1)一次只允许一个进程进入临界区(2)任何时候,处于临界区的进程不得多于一个(3)进入临界区的进程要在有限的时间内退出(4)如果不能进入自己的临界区,则应让出处理机资源解决临界区(互斥)问题的几类方法:(1)软件方法(2)硬件方法(3)P-V操作进入区临界区退出区剩余区互斥的定义互斥的定义:不允许两个以上的共享某一公有资源的并发进程同时进入临界区称为互斥。让权等待:不能进入临界区的执行进程应放弃CPU执行权。有限等待:应保证为有限等待,不会产生死等。多中选一忙则等待空闲让进一组并发进程互斥执行需满足的准则12信号量(Sem)是一整数;当sem?0时代表可供并发进程使用的资源实体的数目;当sem0时则表示正在等待使用资源(如临界区)的进程数目。信号量(Sem)的物理意义:用于进程互斥的信号量sem的初值应该大于零;建立一个信号量时必须说明所建信号量所代表的意义(物理)并赋初值。信号量使用时应注意的问题:信号量和P,V原语信号量sem减1;01若sem减1后仍大于等于零,则进程继续执行;02若sem减1后小于零,则该进程被阻塞后加入与该信号相对应的等待队列中,然后转进程调度。03P操作的定义:P,V原语P操作流程图入口S=S-1S=0调用进程入等待队列转进程调度返回信号量sem加1;若sem加1后仍大于零,则进程继续执行;若sem加1后小于或等于零,则从与该信号相对应的等待队列中唤醒一个等待进程,然后返回原进程继续执行或转进程调度。信号量的值仅能由P、V原语操作改变。0102V操作的定义:P,V原语V操作流程图入口S=S+1S0唤醒等待队列中的一个进程返回或转进程调度返回根据问题给出的条件,确定进程有几个或几

显示全部
相似文档