第2章进程的描述及控制.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
具有挂起功能的进程状态及其转换 关键转换 阻塞-挂起阻塞:若当前不存在就绪进程,系统根据资源分配状况和性能要求选择阻塞进程对换出去,以便接收新的进程 挂起阻塞-挂起就绪:等待的事件完成 挂起就绪-就绪:主存中不存在就绪态进程,或者挂起就绪态进程具有比就绪态进程更高的优先级 就绪-挂起就绪:资源有限,系统把就绪态进程对换出去 挂起阻塞-阻塞:主存拥有足够空间,而某个挂起阻塞态进程具有更高优先级别,且系统得知导致该进程阻塞的事件也即将结束 运行态-挂起就绪态:具有更高优先级的挂起阻塞态进程所等待的事件完成后,需要抢占CPU,而此时主存空间不够 新建态-挂起就绪态:资源有限,将新建进程挂起 原 语 原语(Primitive)是在核心态下执行、完成系统特定功能的过程。 原语和机器指令类似,其特点是执行过程中不允许被中断,是一个不可分割的基本单位,原语的执行是顺序的而不可能是并发的。 非进程内核模型( 独立运行的内核模型) unix OS功能在用户进程内执行的模型 3、作为独立进程执行的模型 2.6.2 Solaris系统中的线程状态 一般的线程状态有创建、就绪、阻塞、运行和结束。但是,在Solaris系统中,由于引入了轻量进程,线程状态与一般线程状态有一定的区别。 用户级线程的执行由线程库管理。 如果用户级线程没有绑定到一个指定的轻量进程上,则多个用户级线程可以共享轻量进程,用户级线程可处于的状态为:可运行、活跃、睡眠和停止。 轻量进程可处于的状态为:可运行态、运行态、阻塞态、停止态。 用户级线程与轻量进程的状态及转换分别如图2.20和图2.21所示。 2.6.2 Solaris系统中的线程状态 图2.20 Solaris系统线程状态及转换 剥夺 唤醒 睡眠态 可运行态 活跃态 停止态 继续 挂起 停止 停止 停止 指派 图2.21 Solaris系统轻量进程状态及转换 阻塞态 可运行态 停止态 运行态 继续 阻塞 唤醒 剥夺 指派 停止 停止 继续 2.6.2 Solaris系统中的线程状态(续) 对用户级线程来讲,可执行状态相当于一般线程描述中的就绪态,活跃态相当于处于运行状态。 在Solaris系统中,轻量进程的状态相当于用户级线程的活跃态的详细描述。 当一个用户级线程处于活跃状态时,只能捆绑到一个轻量进程上。只有当轻量进程处于运行状态时,一个处于活跃状态的用户级线程才能真正处于活跃状态并运行。 在用户级线程状态转换中,导致用户级线程离开活跃态的主要原因如下: 剥夺:一个活跃用户线程在运行,另一个优先级更高的线程变为可执 行态时,会剥夺运行线程,优先级更高的线程被分配到可用的轻量进程上执行,而被剥夺的线程被放回到可执行态。 挂起:任何线程可挂起其他线程或使自己再进入停止态,直到其他线程发出继续运行的请求,再将挂起线程移入到可运行队列。 2.6.2 Solaris系统中的线程状态(续) 让位:若运行线程时执行了thread_yield()库命令,库中的线程调度程序将查看是否有另一个可运行线程。如果另一个可运行线程与运行线程有相同的优先级,则把运行线程放入可运行队列,另一个可运行线程分配到可用轻量进程上;否则原线程继续。 同步:一个用户级线程调用了同步原语与其他线程协调活动,则进入睡眠态。到同步条件满足后,该用户级线程才能够被唤醒并进入可运行态。 当一个处于活跃态的用户级线程调用一个阻塞的系统调用时,它对应的轻量进程进入阻塞态,这个用户级线程继续处于活跃态并与相应的轻量进程捆绑,直到线程库显式地做出变动。 如果用户级线程被捆绑到一个轻量进程上,用户级线程因为等待某事件而进入睡眠状态,则相应的轻量进程也必须停止运行;如果用户级线程没有捆绑到一个轻量进程上,则用户级线程因为等待某事件而进入睡眠状态,则相应的轻量进程与之无关,会调用另一个可执行态用户线程。 2.7 本 章 小 结 本章主要讲述的内容是进程和线程: 进程是操作系统中最重要和最基本的概念,能够完全刻画出操作系统的并发性。 操作系统的基本功能是管理进程。操作系统维护着每个进程的数据结构,进程控制块是进程最重要的数据结构。 对进程控制块的基本内容和组织形式的理解,有利于全面、深入理解和掌握进程概念,理解进程切换需要完成的工作,理解为何需要引入线程。 在本章中首先讲述了进程概念、进程的特征、进程的状态与状态转换以及进程控制,描述进程的前趋图,并详细介绍了UNIX操作系统的进程与进程控制。 在进程基础上,本章的后面部分对线程概念和线程控制、线程的实现方式等内容进行了详细论述,对内核级线程与用户级线程的特点和区别进行了论述。在本章的最后以Solaris系统中的线程作为线程实例讲解。 练 习 2 2.1

文档评论(0)

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

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

1亿VIP精品文档

相关文档