计算机操作系统 教学课件 作者 冯裕忠 方智 周舸 第二章 进程管理.pptVIP

计算机操作系统 教学课件 作者 冯裕忠 方智 周舸 第二章 进程管理.ppt

  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文档。上传文档
查看更多
2.3.2 线程间的同步与通信 为了使多线程能有条不紊地运行,在系统中必须提供用于实现线程间同步和通信的多种机制.这些机制包括互斥锁、条件变量、计数信号量以及多读、单写锁等。 1、互斥锁(mutex) 用于访问频度高的关键共享数据和程序。互斥锁有开锁(unlock)和关锁(lock)状态。 关锁lock操作将mutex关上,开锁unlock把mutex打开。 2、条件变量 为了防止只利用mutex实现资源互斥访问会造成死锁的可能,通常把互斥锁与条件变量一起使用。 线程先对mutex执行关操作,若成功便进入临界区,然后查找用于描述该资源状态的数据结构,以了解资源的情况。只要发现所需资源R正处于忙状态,线程便转为等待状态,并对mutex执行开锁操作后,等待该资源被释放;若该资源处于空闲状态,表明线程可以使用该资源,于是将该资源设置为忙状态,再对mutex执行开所操作。 3、信号量机制 信号量机制可以实现诸线程或进程间的同步。为了提高效率,可为线程和进程分别设置相应的信号量。 (1)私用信号量---为某一线程创建信号量来完成同一进程中各线程间的同步; (2)公用信号量---用于实现不同进程间或不同进程中各线程架的同步。 ★线程与进程的比较 1、调度。在传统的OS中,进程是拥有资源和独立调度的基本单位;在引入线程的OS中,线程是独立的调度单位,而进程是拥有资源的基本单位。 2、拥有资源。进程拥有资源而线程不拥有资源,但可所属进程的资源。 3、并发性。在引入线程的OS中,进程可并发,在同一进程内的多个线程间也可并发执行。提高了操作系统的并发性和吞吐量。 4、系统开销。进程(在分配资源等管理)开销大,而线程在切换时只需保存和设置少量寄存器内容。开销很小。 2.3.3 用户级线程和内核支待线程 1、内核支持线程 为了提高计算机的整体性能,尤其是速度方面,现代的操作系统中基本上都加入了线程或线线程(主要是减少程序执行中的进程状态转换(就绪、执行、阻塞)。 所谓的内核支持线程,也都同样是在内核的支持下运行的,即无论是用户进程中的线程,还是系统进程中的线程,他们的创建、撤消和切换等,也是依靠内核实现的。此外,在内核空间还为每一个内核支持线程设置了一个线程控制块,内核是根据该控制块而感知某线程的存在的,并对其加以控制。 2、用户级线程 此线程仅存在于用户空间中。对于此种线程的创建、撤消、线程间的同步与通信无须利用系统调用来实现。用户级线程的切换通常发生在一个应用进程的诸多线程间,而不须内核的支持。线程切换规则比进程少,因而线程切换非常快。 在一个系统中,用户级线程的数目可达数百至数千个。 利用管程解决生产者—消费者问题时,生产者和消费者可描述为: Producer:brgin Repeat Producer an item in nextp; PC.put(item); Until false; End Consumer:begin repeat PC.get(item) Consumer the item in nextc; Until false; End 2.2.4 进程通信 前面内容的提示: 前面讨论了“进程”同步的有关方法--信号量:在操作系统中,信号量是表示资源的实体,它有s,q两个成员构成,s是有非负初值的整型变量,q是初始状态为空的队列.S表示系统中某类资源的使用情况:>0 表示系统中当前有可用资源的数目 <0其绝对值表示系统中因请求该类资源而阻塞等待的进程数目.除信号量的初值外,信号量的值仅由P操作(wait操作)和V操作(signal操作)改变. 进程通信——是指进程之间的信息交换。 进程通信分为两种: ①低级通信:以信号量作为通信工具,由于其所交换的信息量少而被归结为低级通信。P、V原语为低级进程通信原语。 ②高级通信:是指用户可直接利用操作系统所提供的一组通信命令,高效地传送大量数据的一种通信方式。 进程通信的类型 高级进程通信方式有三大类: 一.共享存储器系统 (1)基于共享数据结构的通信方式。 (2)基于共享存储区的通信方式。 二.消息传递系统 在消息传递系统中,进程间的数据交换,是以格式化的消息为单位的;程序员直接利用系统提供的一组通信命令(原语)进行通信。 ★实现方式的不同,而分成: (1)直接通信方式 (2)间接通信方式两种。 三.管道(Pipe)通信 所谓“管道”,是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件。 管道机制必须提供以下三方面的协调能力:①互斥使用管道。 ②同步读写关系。 ③确定对方

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档