- 1、本文档共67页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 同步、通信与死锁;3.1 进程的同步与互斥
在多道程序的环境中,系统中的多个进程可以并发执行,同时它们又要共享系统中的资源,由此诸进程间会产生错综复杂的相互制约的关系。
一、进程间制约关系
1.竞争关系
源于资源共享,多个不存在逻辑关系的进程因共享资源而产生制约关系。
若一个进程要求使用某一资源,而该资源正被另一个进程使用,并且这一资源不允许两个进程同时访问,那么该进程只有等待,只有这一资源释放后才能使用。
2.协作关系
源于进程间的协作。
一组进程为完成共同任务分工协作,各进程都独立以不可预知速度推进,在执行的先后次序就有约束,在一些关键点上协调工作。若一个进程运行到某关键点时,在尚未收到另一协作进程发来的信息前应阻塞自己,等协作进程发来消息后方可继续执行。;进程间这种相互依赖又相互制约,相互协作又相互竞争的关系,主要表现在进程互斥和进程同步两方面
二、进程互斥
引例: 宿舍电话的使用
打印机的使用
1、临界资源
一次仅允许一个进程使用的资源称为临界资源。
引例中的电话和打印机都属于临界资源。还有光盘刻录机、绘图仪、共享变量、共享的数据结构等等也是临界资源。
2、临界区:
每个进程中访问临界资源的那段程序段称为临界区。(临界段);;3、进程互斥
进程应互斥访问同一临界资源,即进程应互斥的进入临界区。当一进程正在访问某临界区时,就不允许其它进程进入,试图进入临界区的另一进程必须等待。进程之间的这种相互制约的关系称为进程互斥。;三、进程同步;例:计算fun1(X)*fun2(y)
两进程合作完成任务
进程1:计算fun1(X)。
进程2:计算fun2(X);与进程1结果相乘。
进程1和进程2并发执行。
;3.2 进程互斥的实现;尝试 (1);尝试 (2);process P0( )
{
inside[0]=true;
turn=1;
while(inside[1]turn==1);
{临界区};
inside[0]=false;
};为每一进程设标志位inside[i],当inside[i]=true时,表示进程pi要求进入,或正在临界区中执行。此外再设一个变量turn,用于指示???许进入的进程编号。
进程0为了进入先置inside[0]=true,并置turn为1,表示应轮到p1进入。接着再判断inside[1]turn==1的条件是否满足,若不满足则可进入。或者说当inside[ 1 ]=false或者turn==0时,进程可以进入。前者表示p1未要求进入,后者表示仅允许p0进入.;软件解法的缺点;二、实现进程互斥的硬件设施;1.利用关中断实现进程互斥 ;2.Test-and-Set(TS)指令实现互斥;TS指令实现进程互斥
bool s=true;
cobegin
process Pi( ) { //i=1,2,...,n
while(!TS(s)); //上锁
{临界区};
s=true; //开锁
}
coend;3.swap指令实现进程互斥;利用swap实现进程互斥
为每一临界资源设置一个全局布尔变量lock,其初值为false,表示无进程在临界区内。在每个进程中有局部布尔变量keyi。;实现进程互斥的软件算法太过复杂,效率低下;
实现进程互斥的硬件方法虽简单有效,但采用忙式等待,白白浪费cpu时间;将测试能否进入临界区的责任推卸给各进程,会削弱系统的可靠性,加重用户的编程负担;且这些方案只能解决进程互斥问题,却不能解决进程同步问题。;3.3 信号量与PV操作;1.信号量的定义
是一个结构型数据结构,定义如下:
struct semaphore
{
int value; //信号量的值
struct pcb *list; //信号量队列的头指针
}
信号量说明:
semaphore s;
信号量必须置一次且只能置一次初值,初值不能为负数。
对信号量只能执行P、V操作;2.P、V操作
对信号量仅能执行P、V操作。
对信号量的P操作记为:P(S),P操作是一个原子操作。
对信号量的V操作记为:V(S), V操作是一个原子操作。
在实际系统中,一般情况下是由机器硬件提供P、V操作的指令,当然是原子操作,若机器不提供P、V操
您可能关注的文档
- 第三讲常用中文电子期刊数据库.pptx
- 第三讲风险投资合约.pptx
- 第三讲顾客价值.pptx
- 第三讲经营模式.pptx
- 第三讲信息化学习资源利用.pptx
- 第三讲营销组合之:目标市场战略.pptx
- 第三节固体和半固体石油产品、石油沥青及液化石油气的.pptx
- 第三节国际金融体系.pptx
- 第三节合理布局发展交通运输业.pptx
- 第三节河流和湖泊——黄河的治理.pptx
- 某区纪委书记年度民主生活会“四个带头”个人对照检查材料.docx
- 某县纪委监委2024年工作总结及2025年工作计划.docx
- 某市场监督管理局2024年第四季度意识形态领域风险分析研判报告.docx
- 县委书记履行全面从严治党“第一责任人”职责情况汇报.docx
- 税务局党委书记2024年抓党建工作述职报告.docx
- 某市税务局副局长202X年第一季度“一岗双责”履行情况报告.docx
- 副县长在全县元旦春节前后安全生产和消防安全工作部署会议上的讲话.docx
- 某市委书记个人述职报告.docx
- 某县长在县委常委班子年度民主生活会个人对照检查材料1.docx
- 某县长在县委常委班子年度民主生活会个人对照检查材料.docx
文档评论(0)