- 1、本文档共95页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4-操作系统进程通信
第四章 进程通信 本章主要内容: 同步和互斥的基本概念 进程间的互斥控制和实现 互斥锁机制及实现 wait、signal操作 进程间的同步控制 用wait、signa操作实现同步 经典的同步问题 进程间的数据通信 进程间的信号机制 进程的资源分配和进程死锁 1、同步和互斥的背景和概念 1-1、进程的顺序执行: 概念: 进程在顺序处理器上的执行是严格按序的,即只有当一个进程结束后,才开始另一个进程。每个进程在执行时间上是不重叠的。 特性: 运行环境的封闭性:一个进程在运行时,不会受到其它进程的干扰。 执行结果的确定性:进程执行的结果是可预知的。 计算过程的可再现性:一个进程针对同一个数据集合一次执行的结果,在下一次执行时会重现 1-2、进程的并发执行: 概念: 处理器同时交错执行多个进程, 一组进程的在执行在时间上是重叠的。 特性: 运行环境的开放性:进程在运行过程中可能会受到其它进程的影响。影响和交互类型: 被动影响:资源竞争。 主动合作:合作同步、数据交互、收发信号。 运行结果的不确定性:对进程自身而言,其运行结果受不确定因素的影响。 运行过程的不可再现性:两次运行可能会得到不同结果。 1-3、进程同步: 两个或两个以上的进程要协作完成一个任务,它们之间就要互相配合,需要在某些动作之间进行同步。含义: 一个进程的某些动作需要与协作进程的某些动作之间在时序上要有一定的关系。 如果协作进程的某些操作没有完成,那么进程就要在执行路径的某些点上等待这些操作的完成,之后才能继续执行下去。 例如:计算进程和打印进程 是否可以通过约定时间等待的方式来实现进程间的同步? 1-4、进程互斥 两个或两个以上的进程同时竞争某资源,而该资源在同一时刻只能被一个进程使用。 操作系统需要提供一种资源分配机制,来控制为这些进程分配资源的顺序,既保证各进程能够使用资源,又能保证各进程互斥使用资源。 1-5、临界资源和临界区 临界资源:一个时刻只能被一个进程访问或使用的资源。临界资源可能是硬件设备,也可能是软件资源,如共享的变量。 临界区:在进程代码空间中,对临界资源完成一次完整访问/操作的代码区域称为一个临界区。又称临界段或互斥段。 进入临界区:进程开始执行临界区的代码。 离开临界区:进程由执行临界区代码到不再执行临界区内的代码。 临界区的实例统计两个进程 P1和P2对共享变量count访问计数: P1:: P2:: R1=count R2=count R1=R1+1 R2=R2+1 count=R1 count=R2 : : 在并发系统中,进程可能并发交叉执行。 两个进程可能的相对执行次序 P1:R1=count R1=R1+1 P2:R2=count R2=R2+1 count=R2 P1:count=R1 结果:虽然P1和P2进程各自都执行了对count加1的操作段,但结果count只增加1。 原因分析:变量count就是临界资源,P1、P2访问count的两个程序段就是临界区。但是两个进程同时进入了临界区执行了。 1-6 临界区的基本特征: 一个临界区对应临界资源的一次完整操作; 临界区是针对特定临界资源而言的。不同临界资源对应的临界区是互不相干的; 临界区可能是嵌套的:一个临界资源的临界区可能包含在另一个资源的临界区中。 1-7、临界区的含义: 对临界资源R的一次完整操作可能分为多个步骤。 处于临界区的进程A可能已经完成了一些步骤,还有若干个步骤没有完成。也就是临界资源R可能处于一种中间或临时的状态。 处于临界区的进程A如果被剥夺了CPU,CPU又选中了其它进程B运行: B如果不执行与临界资源R相关的操作。A再次被调度执行时,能够继续完成对R的剩余操作步骤。 B如果执行与临界资源R相关的操作,R所处于的中间状态就会遭到破坏。 A再次被调度执行时,无法继续完成对R的剩余几个操作步骤,从而导致运行错误。 要不出现运行错误,必须满足: OS必须保证进程A最好一次性(不被中断)完成对临界资源R的一次完整访问。 如果不能保证一次性完成,最低也要保证新被调度到的进程不要执行与临界资源R相关的操作。 也就是:并发进程不能同时处于某临界资源的临界区。 1-8、临界区的设计和调度原则: 互斥进入:在所有共享相同资源或对象的临界段中,每次只能允许一个进程进入 空闲让进:当无进程在临界区中,且有进程希望进入临界区时,必须让某希望进入进程立即进入临界区。 有限停留:不能让一个进程无限时得停留在临界区,一个进程只能在临界段内停留有限的时间。 公平进入:不能让某进程无限等待进入临界区。 高效性:临界区的设计要尽可能短,从而使进程停
文档评论(0)