进程同步与进程通信.ppt

  1. 1、本文档共145页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*《计算机操作系统》-第4章*消息传递系统--直接通信方式首先调用“寻找目标进程的PCB”的程序查找接收进程的PCB,如果接收进程存在,申请一个存放消息的缓冲区,消息缓冲区为空时,接收此消息的进程因等待此消息的到来而处于阻塞状态,则唤醒此进程,并把消息的内容、发送原语的进程名和消息等,复制到预先申请的存放消息的缓冲区,且将存放消息的缓冲区连接到接收进程的PCB上;如果接收进程不存在,则由系统给出一个“哑”回答;最后控制返回到发送消息的进程继续执行,或转入进程调度程序重新分配处理机。第127页,共145页,星期六,2024年,5月*《计算机操作系统》-第4章*进程通信的类型共享存储器系统基于共享数据结构的通信方式基于共享存储区的通信方式消息传递系统直接通信方式间接通信方式管道(Pipe)通信共享文件间接通信方式通过作为共享数据结构的实体(即信箱)私用信箱公用信箱共享信箱一对一关系多对一关系一对多关系多对多关系消息传递的相关问题通信链路消息的格式进程同步方式第128页,共145页,星期六,2024年,5月*《计算机操作系统》-第4章*消息缓冲队列第129页,共145页,星期六,2024年,5月*《计算机操作系统》-第4章*进程通信的类型共享存储器系统基于共享数据结构的通信方式基于共享存储区的通信方式消息传递系统直接通信方式间接通信方式管道(Pipe)通信共享文件第130页,共145页,星期六,2024年,5月*《计算机操作系统》-第4章*进程通信的类型共享存储器系统基于共享数据结构的通信方式基于共享存储区的通信方式消息传递系统直接通信方式间接通信方式管道(Pipe)通信共享文件基本原理借助于一个特殊的共享文件连接发送进程和接收进程。发送进程向管道写入信息,接收进程从管道读信息。是一种单向的传递信息方式,先进入管道的信息首先从管道中流出。发送进程只能写入信息,接收进程只能接收信息。从实现机理上说,就是发送进程将发送的信息写入文件,接收进程从文件中读出信息。因此管道需要作为文件引用。特点在通信前需要创建管道利用管道通信的进程双方需要同步第131页,共145页,星期六,2024年,5月*《计算机操作系统》-第4章*UNIX的管道类别无名管道:是操作系统提供的资源,可以被所有的进程使用。限制:每次打开管道的进程,只能是与自己进程相关的进程(子进程)共享对管道的操作,完成相互之间的通信。有名管道:克服无名管道使用上的限制,所有的进程都可以共享对管道的操作,相互之间通过管道通信。第132页,共145页,星期六,2024年,5月*《计算机操作系统》-第4章*本章目录4.1进程并发4.2临界区管理4.3信号量机制4.4用信号量解决经典进程同步问题4.5管程4.6进程通信4.7线程的同步和通信第133页,共145页,星期六,2024年,5月*《计算机操作系统》-第4章*线程之间的同步机制:互斥锁、条件变量、信号量机制1:互斥锁用于线程之间对互斥共享资源竞争访问的同步机制。互斥锁的操作开销低,实施简单,适合用于访问频率高的环境。同一进程中的线程,共享进程的地址空间,对进程的数据和程序段访问频率高。对这样的线程,适合用互斥锁机制实现线程之间的同步。互斥锁存在两个状态:开锁(unlock)和关锁(lock),可以用两条命令对互斥锁进行操作。其中的lock操作相当于将访问的数据段关上,unlock操作相当于将访问的数据段打开。第134页,共145页,星期六,2024年,5月*《计算机操作系统》-第4章*线程之间的同步机制2:条件变量针对互斥锁用于线程同步时可能造成的死锁问题,引入了条件变量,将条件变量与互斥锁结合使用占有资源的线程在使用完资源后,按照右边的描述释放该资源,用wakeup(conditionvariable)语句唤醒所有指定变量上的阻塞线程。这样,在同一条件下阻塞的所有线程都被唤醒,避免了同一变量下的线程死锁。lockmutex/*mutex为互斥锁*/lockmutexcheckdatastructures;markresourcesasfree;while(resourcesbusy);unlockmutex;wait(conditionvariable);wakeup(conditi

文档评论(0)

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

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

1亿VIP精品文档

相关文档