《操作系统原理》第三章进程间的并发控制和死锁

《操作系统原理》第三章进程间的并发控制和死锁

ID:38951456

大小:418.51 KB

页数:73页

时间:2019-06-22

《操作系统原理》第三章进程间的并发控制和死锁_第1页
《操作系统原理》第三章进程间的并发控制和死锁_第2页
《操作系统原理》第三章进程间的并发控制和死锁_第3页
《操作系统原理》第三章进程间的并发控制和死锁_第4页
《操作系统原理》第三章进程间的并发控制和死锁_第5页
资源描述:

《《操作系统原理》第三章进程间的并发控制和死锁》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章进程之间的并发控制和死锁进程通信进程的状态是基于一定的原因和条件而变化的,而这些原因和条件又常常是由于进程之间的相互制约关系引起的。系统中诸进程之所以有这种关系,是由两方面原因引起的:1)各并发进程对资源的共享2)系统中存在若干协作进程1、各并发进程对资源的共享互斥关系:通过共享资源而使进程之间产生的关系叫间接制约关系,又叫互斥关系。可用“进程—资源—进程”来描述。例:进程P1和P2在运行中都要使用打印机,为了使各进程输出的完整性,打印机的使用必须独占。一旦系统将打印机分配给进程P1,那么进程P2

2、必须等待,等待P1使用完打印机并释放后,才能使用。2、系统中存在若干协作进程同步关系:通常,一个用户作业涉及一组并发进程(输入、计算和输出进程),这些进程须相互协作完成这项任务。在运行过程中,这些进程可能要在某些同步点上等待协作者发来信息后才能继续运行。进程之间的这种制约关系叫直接制约关系。又叫同步关系。可用“进程—进程”来描述进程通信:是指进程的上述相互依赖关系。进程之间的这种相互依赖又相互制约、相互合作又相互竞争的关系,也即进程的同步与互斥关系。互斥是同步的一个特例。进程之间的这种关系就叫进程的低级

3、通信。一、进程之间的互斥(进程的互斥是由于共享资源而引起的)共享资源:慢速的硬件设备,如打印机、磁带机等资源软件资源,如共享变量、共享文件等临界资源(criticalresource):就是一次仅允许一个进程使用的资源。如:打印机临界区(criticalsection):就是并发执行的进程访问临界资源的那个必须互斥执行的程序段程序1Y=Y+1output程序2Y=Y+2output内存共享区Ypcb1pcb2临界资源和临界区为了正确而有效地使用临界资源,系统中的并发进程需要遵循如下四个准则:空闲让进-无

4、进程在临界区就允许进入忙则等待-有进程在临界区,则等待有限等待-多进程要求进入临界区是,应该让某一个进入,而不能无限等待都不让进让权等待-等待的进程必须释放CPU四个准则1、关中断二、解决进程之间互斥的方法进程AClose_INT;Critical_region();Open_INT;进程BClose_INT;Critical_region();Open_INT;解决思想在临界区中防止发生进程调度保证临界区操作的完整性方法分析用户控制系统中断是非常危险的本方法对多个CPU系统将失去作用2、lock,un

5、lock在原语里设置一个公共变量代表临界资源的状态。x=使用临界资源必须做如下三步:1、检查锁的设置2、进入临界区,访问临界区3、释放临界资源,开锁二、解决进程之间互斥的方法锁机制框图测试x=0?Lock[x],x=1进入临界区退出临界区Unlock[x],x=0返回继续测试x=1x=0返回显然,采用加锁机制,由于进程循环测试,白白浪费了CPU的时间,降低了系统的速度三、进程之间的同步同步原因:一组进程要合作完成一项任务。例:两个用户进程通过共享缓冲区完成其计算和打印任务。计算进程负责将计算结果送入共享

6、缓冲区,打印进程从缓冲区取数据打印。当缓冲区空时,不允许取数据,满时不允许送数据。否则,将出现错误。计算进程与打印进程这种制约关系,不是由于两个进程同时访问共享缓冲区,而是由于它们访问缓冲区时的速度不匹配造成的。为了使进程同步,需要引入信号量机制。四、信号量1965年,荷兰学者Dijkstra提出的。基本原理:两个或多个进程可以通过简单的信号进行合作,一个进程可以被迫在某一位置停止,直到它接收到一个特定的信号。任何复杂的合作需求通过适当的信号结构得到满足。为此,需要使用一个称作为信号量的特殊变量,以便通

7、过信号量传送信号。信号量是一个数据结构定义如下:structsemaphore{intvalue;Pointer_PCBqueue;}整型变量,其值大小表示该资源的可用数量是等待使用该资源的进程排成队列的队列头指针对信号量S的操作只允许执行P、V操作。其中P/V操作由原语组成,执行过程中不可分割。P操作原语P(S)1)S:=S–1//请求一个资源2)IfS>=0,goon;ifS<0,blocked//申请不成功(资源用完),调用阻塞原语“让权等待”V操作原语V(S)1)S:=S+1//释放一个资源2)

8、IfS>0,goon;ifS<=0,thefirstblockedprocessinwaitingqueueblocked->ready,goon//表示在信号链表,仍有等待该资源的进程,调用唤醒原语。显然,P、V操作的引入,克服了加锁操作的忙等待现象,有效提高了系统的效率操作系统正是利用信号量的状态对进程和资源进行管理和控制的。从物理意义上理解,P操作相当于申请资源;V操作相当于释放资源。1、利用信号量实现进程之间的互斥引入一个互斥信号量

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

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

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