操作系统-第三章 进程通信.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文档。上传文档
查看更多
操作系统-第三章 进程通信

* * * 进程的两个基本属性 进程是一个可拥有资源的基本单位。 进程同时又是一个可独立调度和分派的基本单位。 进程作为一个资源拥有者,在创建、撤消、切换中,系统必须为之付出较大时空开销。所以系统中进程的数量不宜过多,进程切换的频率不宜过高,但这也就限制了并发程度的进一步提高。 3.9.1 线程的引入 1. 引入线程是为了提高系统的执行效率,减少处理机的空转时间和调度切换(保护现场信息)的时间,以及便于系统管理。 一个进程内的基本调度单位称为线程thread 线程既可以由操作系统内核控制,也可以由用户程序控制 在引入线程的OS中,线程是进程中的一个实体,是被系统独立调度和分派的基本单位。 线程自己基本不拥有系统资源,只拥有少量必不可少的资源:程序计数器、一组寄存器、栈。 它可与同属一个进程的其它线程共享进程所拥有的全部资源。 一个线程可以创建和撤消另一个线程;同一进程中的多个线程之间可以并发执行。 3.9.2 线程的概念 线程是进程内的基本CPU调度单位。这个调度单位可以由操作系统内核控制,也可以由用户程序控制。 线程的组成:(如图:3.25-3.26) 线程只由相关堆栈(系统栈或用户栈)寄存器和线程控制表TCB组成。 线程具有进程的许多特征,故又称轻型进程,传统进程称重型进程。 3.9.3线程与进程的比较 在引入线程的OS中,每一进程都拥有多个线程,至少一个。 下面我们通过四方面来区别两者的关系: 线程 线程 线程 进程1 进程2 进程3 进程与线程关系图 ① 调度 在传统OS中,拥有资源、独立调度和分派的基本单位都是进程,在引入线程的系统中,线程是调度和分派的基本单位,而进程是拥有资源的基本单位。 在同一个进程内线程切换不会产生进程切换,由一个进程内的线程切换到另一个进程内的线程时,将会引起进程切换。 2. 线程与进程的比较 2. 线程与进程的比较 ② 并发性 在引入线程的系统中,进程之间可并发,同一进程内的各线程之间也能并发执行。因而系统具有更好的并发性。 2. 线程与进程的比较 ③ 资源拥有 无论是传统OS,还是引入线程的OS,进程都是拥有资源的独立单位,线程一般不拥有系统资源,但它可以访问隶属进程的资源。即一个进程的所有资源可供进程内的所有线程共享。 2. 线程与进程的比较 ④ 系统开销 进程的创建和撤消的开销要远大于线程创建和撤消的开销,进程切换时,当前进程的CPU环境要保存,新进程的CPU环境要设置.线程切换时只须保存和设置少量寄存器,并不涉及存储管理方面的操作 同时,同一进程内的各线程由于它们拥有相同的地址空间,它们之间的同步和通信的实现也变得比较容易。 图3.24 多线程与进程之间的关系 3.9.4 线程的适用范围 引入线程的好处: 创建一个新线程花费时间少(结束亦如此) 两个线程的切换花费时间少 因为同一进程内的线程共享内存和文件,因此它们之间相互通信无须调用内核 因此最适合多处理机系统 同一用户程序可以根据不同的功能划分为不同的线程,放在不同的处理机上执行 几种典型的应用: 服务器中的文件管理或通信控制 在局域网的文件服务器中,对文件的访问要求可被服务器进程派生出的线程进行处理。由于服务器同时可能接受许多个文件访问要求,则系统可以同时生成多个线程来进行处理。 如果计算机系统是多处理机的,这些线程还可以安排到不同的处理机上执行。 几种典型的应用: 2. 前后台处理。 一个线程显示菜单,并读入用户输入; 另一个线程执行用户命令 由于用户输入命令和命令执行分别由不同的线程在前后台执行,从而提高了操作系统的效率 几种典型的应用: 3. 异步处理 考虑一个程序:由几个独立部分组成,这几个部分不需要顺序执行,则每个部分可以以线程方式实现 当一个线程因I/O阻塞时,可以切换到同一应用的另一个线程 几种典型的应用: 4. 可用于数据的批处理以及网络系统中的信息发送与接收和其他相关处理等 (a) 单线程时的RPC请求处理 (b) 多线程时的RPC请求处理 对于线程可分为两类 系统级(核心级)线程,它们依赖于OS内核,它们的创建、撤消、切换等管理都由OS内核实现。 用户级线程,对于这种线程的创建、撤消、和切换全部由用户来完成 3.10 线程的分类与执行 3.10.1线程的分类 用户级线程(User Level Thread) 由应用程序完成所有线程的管理 通过线程库(用户空间):一组管理线程的函数 线程库提供一个线程运行管理系统(运行系统) 核心不知道线程的存在 线程切换不需要内核参与 线程库的作用: 提供线

文档评论(0)

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

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

1亿VIP精品文档

相关文档