第二章 进程管理part8.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文档。上传文档
查看更多
第二章 进程管理part8

Heb Nomal University Department of Computer Science * 2.6 线 程 2.6.1 线程的基本概念 1. 为什么引入线程? 引入进程的目的: 使多个程序能并发执行,提高资源利用率和系统吞吐量。 进程的基本属性: 进程是一个可拥有资源的独立单位 进程同时又是一个可独立调度和分派的基本单位 系统进行的其它操作:创建进程;撤销进程;进程切换 将进程的两个基本属性分开:如果作为调度和分派的基本单位,那么就不同时作为拥有资源的单位,以“轻装上阵”; 引入线程:轻型实体,独立调度和分派的基本单位。 由于进程是一个资源拥有者,因而在进程的创建、撤销和切换中,系统必须为之付出较大的时空开销。 * 2. 线程是什么? 线程:是进程的一条执行路径。 线程和线程的关系: 共享:同一进程中的各个线程共享其所附属的进程的所有的资源,包括打开的文件、页表(因此也就共享整个用户态地址空间)、信号标识及动态分配的内存等等。 独立:它包含独立的堆栈和CPU寄存器状态。 并发:同一进程中的多个线程之间、不同进程中的线程之间都可以并发。 线程和进程的关系:线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一物理内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。 2.6.1 线程的基本概念 * 线 程 模 型 第一列为进程中所有线程共享的内容。 第二列为每个线程私有的内容。 每个线程的内容 程序计数器 寄存器 堆栈 状态 每个进程的内容 地址空间 全局变量 打开的文件 子进程 挂起的警告信号 信号和信号处理程序 账户信息 * 2.6.1 线程的基本概念 3. 线程的状态 状态参数:OS中可用线程标识符和一组状态参数进行描述 寄存器状态 堆栈 线程运行状态 优先级 线程专有寄存器用于保存线程自己的局部变量拷贝 信号屏蔽 线程的状态 执行状态 就绪状态 阻塞状态 状态之间的转换 线程切换开销小 * 线程的属性 线程具有如下属性: 线程有线程控制表TCB。每个线程都有一张线程控制表,表中记录了该线程的标识符、线程执行时的寄存器和栈等现场状态信息。 线程共享所属进程的资源。同一进程中的各个线程共享分配给进程的全部资源,例如,主存地址空间。 线程是处理器的独立调度单位,多个线程可以并发执行。 线程具有动态性。一个线程被创建后便开始了它的生命周期,直至终止。 * * 2.6.1 线程的基本概念 4. 引入线程带来的好处 减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。 提高进程自身的执行速度 将进程分解为多个线程可以有效利用多处理机和多核计算机 例如:具有下述四条语句的程序段 S1: a:=x+2 S2: b:=y+4 S3: c:=a+b S4: d:=c+b S3 S2 S1 S4 将s1和s2放到不同的线程中, 可以提高进程自身的执行速度。 * 5. 线程的创建和终止 创建: 在多线程OS中,应用程序启动时,通常只有一个线程(初始化线程)在执行,它根据需要可创建若干线程。 创建新线程时,需要利用线程创建函数(或系统调用),并提供相应参数。线程创建函数执行完后,返回一个线程标识符供以后使用。 线程的终止方式 自愿退出(完成工作) 被其它线程强行终止或出错 2.6.1 线程的基本概念 * 2.6.1 线程的基本概念 6. 多线程OS中线程与进程的比较 调度单位 拥有资源 并发 系统开销 进程 否 是 是 大 线程 是 极少 是 小 P75 进程仍然具有与执行相关的状态; 对进程所施加的与进程状态有关的操作,也对其线程起作用。 进程中不同的线程并没有像不同的进程那么独立。所有的线程严格地使用同一地址空间,也就是说它们共享相同的全局变量。 由于每个线程都可以访问进程地址空间中的所有内存地址,因此,一个线程可以读、写甚或清除掉另一个线程的堆栈。线程间是没有保护的。 * 2.6.2 线程间的同步和通信 1. 互斥锁 Lock(); Unlock() 2. 条件变量 3. 信号量机制 私有信号量:实现同一进程内的各线程间的 同步;存放在应用程序的地址空间;OS并不知道它的存在。 公用信号量:实现不同进程间或不同进程的线程间的同步;存放在受保护的系统存储区;OS对它进行管理。 * 2.6.2 线程间的同步和通信 互斥锁:是一种比较简单的同步机制,它有两种状态,即开锁和关锁状态。 对互斥锁的操作: 关锁命令,lock(L); 开锁命令,unlock(L)。 适用情况:由于操作互斥锁的时间

文档评论(0)

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

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

1亿VIP精品文档

相关文档