互斥与同步.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
互斥与同步,互斥,互斥与对立,进程同步与互斥,线程同步与互斥,进程的同步与互斥,同步和互斥,同步互斥,同步和互斥的区别,多线程同步和互斥

操作系统原理 第8章 互斥与同步 7章的重点 深刻理解进程的概念,进程与程序,线程,作业的区别 进程的状态及转化,进程控制块 进程是如何并发执行的 进程的原语及功能 线程的基本概念 操作系统进程管理的内容 进程管理 并发性 管理进程和线程的基本问题是并发性(concurrency),这是操作系统设计的基础。它涉及资源的共享或争用、多个进程活动的同步与互斥、进程间的通信等。 进程的并发问题在多种环境中出现,如: 多道程序技术:管理单处理机系统中的多个进程。 多处理技术:管理多处理机系统中的多个进程。 分布式处理技术(包括集群):管理多台分布式计算机中多个进程的执行。 进程间的相互作用 进程中的资源争用 当一个进程获得资源时,另一进程必须等待。这种情况需要通过互斥(Mutual Exclusion)机制来解决。 进程间通过共享的合作 一个进程等待另一进程的执行,并以另一进程的执行结果作为本进程的执行条件,就形成了同步(Synchronization)机制。 进程间通过通信的合作 通信提供了同步和协调各种活动的方法,如:各种类型的消息、发送和接收消息的原语(或者程序)以及由操作系统的系统内核提供的通信功能。 关于互斥 互斥(mutual exclusion)是一组并发进程中的一个或多个程序段,因共享某一共有资源而导致他们必须以一个不允许交叉执行的单位执行。 若干进程访问某一资源时,任何时刻只允许一个进程使用。其它要使用该资源的进程必须等待,直到占用者释放了该资源。 互斥的进程间逻辑上完全独立,对共享资源没有时间顺序的特征。谁先申请,谁就先获得资源。 临界资源和临界区 临界资源critical resource一次只能允许一个进程访问的资源称为临界资源。 临界区 critical section每个进程访问临界资源的那段程序称为临界区。 同步与互斥 基本概念 同步工具 硬件指令 信号量与P、V操作 程序设计语言中的某些机制 基本概念 同步 进程之间的一种通信方式,有时序上的制约关系,或者说是进程之间为了协同工作而存在的一种等待关系。 互斥 进程之间对临界资源的一种竞争关系,排他性地对资源的访问方式。 同步工具 同步机制:用于控制进程之间的同步与互斥。 硬件指令:test-and-set(lock) 功能表示如下: test-and-set(lock) begin a:=lock; If lock=0 then lock :=1; reutrn(a) end 其中:lock是内存单元。 应用举例 信号量 信号量:仅能由P、V操作修改的整型变量。 P操作 P操作:申请资源操作 (1)?S:=S-1; (2)?如果S≥0,则表示有资源,该进程继续执行;如果S0,则表示已无资源,执行原语的进程被置成阻塞状态,并使其在S信号量的队列中等待,直至其他进程在S上执行V操作释放它为止。 V操作 V操作:释放资源操作 (1)? S:=S+1; (2)?如果S0,则该进程继续执行;如果S≤0,则释放S信号量队列的排头等待者并清除其阻塞状态,即从阻塞状态转变到就绪状态,执行V(S)者继续执行。 用P、V操作实现互斥 用信号量实现进程同步 两个经典的同步/互斥问题 生产者与消费者 读者与写者 生产者与消费者问题 模型的抽象化与进程分析 经典的进程同步问题 生产者——消费者问题(Producer-Consumer) Producer:P(available), available=n-1; P(mutex), mutex=0; … V(full),full=1;V(mutex), mutex=1Ponsumer:P(full),full=0; P(mutex),mutex=0; … V(avail),available=n; V(mutex),mutex=1 注意:P操作位置和顺序不能错,否则会发生死锁。 Ponsumer:P(mutex),mutex=0; P(full),full= -1,阻塞;Producer:P(available),available=n-1; P(mutex),mutex= -1,阻塞 生产者/消费者算法描述1 var mutex,empty,full:psemaphore; i,j,goods:integer;buffer:array [0…n-1] of item; procedure producer; 生产者进程 begin while true do

文档评论(0)

mydoc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档