操作系统第3章同步、通信与死锁合编.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 同步、通信与死锁 主要内容 并发进程 临界区管理 信号量与PV操作 管程 进程通信 死锁 Linux同步机制和通信机制 Windows2003同步机制和通信 3.1 并发进程 3.1.1 顺序程序设计 3.1.2 进程的并发性 3.1.3 进程的交互:协作和竞争 3.1.1 顺序程序设计 进程的顺序性 一个进程在顺序处理器上的执行是严格按序的,一个进程只有当一个操作结束后,才能开始后继操作。 顺序程序设计是把一个程序设计成一个顺序执行的程序模块,顺序的含义不但指一个程序模块内部,也指两个程序模块之间。 顺序程序设计特点 程序执行的顺序性 程序环境的封闭性 程序执行结果的确定性 计算过程的可再现性 3.1.2 进程的并发性 1、并发程序设计 进程执行的并发性:一组进程的执行在时间上是重叠的。 并发性举例:有两个进程A(a1、a2、a3)和B(b1、b2、b3)并发执行。 a1、a2、a3、b1、b2、b3 顺序执行 a1、b1、a2、b2、a3、b3 并发执行 从宏观上看,并发性反映一个时间段中几个进程都在同一处理器上,处于运行还未运行结束状态。 从微观上看,任一时刻仅有一个进程在处理器上运行。 并行工作图示 并发的实质 并发的实质是一个处理器在几个进程之间的多路复用,并发是对有限的物理资源强制行使多用户共享,消除计算机部件之间的互等现象,以提高系统资源利用率。 2、并发进程的特性 无关的并发进程 一组并发进程分别在不同的变量集合上操作,一个进程的执行与其他并发进程的进展无关。 交往的并发进程 一组并发进程共享某些变量,一个进程的执行可能影响其他并发进程的结果。 并发程序设计的优点 对于单处理器系统,可让处理器和各I/O设备同时工作,发挥硬部件的并行能力。 对于多处理器系统,可让各进程在不同处理器上物理地并行,加快计算速度。 简化了程序设计任务。 3、与时间有关的错误 对于一组交往的并发进程,执行的相对速度无法相互控制,各种与时间有关的错误就可能出现。 与时间有关错误的表现形式: 结果不唯一 永远等待 (结果不唯一)机票问题 //飞机票售票问题 void T1( ) { void T2( ) { {按旅客订票要求找到Aj}; {按旅客订票要求找到Aj}; int X1=Aj; int X2=Aj; if(X1=1) { if(X2=1) { X1--; X2--; Aj=X1; Aj=X2; {输出一张票}; {输出一张票}; } } else else {输出信息票已售完}; {输出信息票已售完}; } } (永远等待)主存管理问题 申请和归还主存资源问题 int X=memory; //memory为初始主存容量 void borrow(int B) { void return(int B) { while(BX) X=X+B; {进程进入等待主存资源队列}; {修改主存分配表}; X=X-B ; {唤醒等主存资源进程}; {修改主存分配表, 进程获得主存资源}; } } 3.1.3 进程的交互:竞争与协作(1) 第一种是竞争关系 因为并发进程共享系统资源,故存在竞争关系。 资源竞争的两个控制问题: 一个是死锁(Deadlock)问题, 一个是饥饿(Starvation) 问题 既要解决饥饿问题,又要解决死锁问题。 若干个进程因相互争夺独占型资源时所产生的竞争制约关系称为进程互斥。 进程的交往:竞争与协作(2) 第二种是协作关系 某些进程为完成同一任务需要分工协作。 我就把多个并发进程间的协作制约关系称为进程同步。 进程同步指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于协作进程的消息或信号,当一个进程没有得到来自于协作进程的消息或信号时需等待,直到消息或信号到达才被唤醒。 进程互斥关系是一种特殊的进程同步关系,即逐次使用互斥共享资源,是对进程使用资源次序上的一种协调。 3.2.1 互斥与临界区(1) 并发进程中与共享变量有关的程序段叫“临界区”, 共享变量代表的资源叫“临界资源”。 与同一变量有关的临界区分散在各进程的程序段中,而各进

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档