第4讲操作系统_进程管理分析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * 死锁的解除: 重要的是以最小的代价恢复系统的运行。方法如下: 1)重新启动 2)撤消进程 3)剥夺资源 4)进程回退 采用资源剥夺法可解除死锁,还可以采用( )方法解除死锁。 A.执行并行操作 B、撤销进程 C.拒绝分配新资源 D、修改信号量 银行家算法是一种( )算法。 A.死锁解除 B、死锁避免 C、死锁预防 D、死锁检测 3.8 线程的基本概念 线程的引入 线程与进程的对比 线程的实现 3.8.1 线程的引入 进程的两个基本属性: 资源的拥有者: 给每个进程分配一虚拟地址空间,保存进程映像,控制一些资源(文件,I/O设备),有状态、优先级、调度 调度单位: 进程是一个执行轨迹 以上两个属性构成进程并发执行的基础 3.8.1 线程的引入(续1) 系统必须完成的操作: 创建进程 撤消进程 进程切换 缺点: 时间空间开销大,限制并发度的提高 3.8.1 线程的引入(续2) 在操作系统中,进程的引入提高了计算机资源的利用效率。但在进一步提高进程的并发性时,人们发现进程切换开销占的比重越来越大,同时进程间通信的效率也受到限制 线程的引入正是为了简化进程间的通信,以小的开销来提高进程内的并发程度 3.8.1 线程的引入(续3) 线程:有时称轻量级进程 进程中的一个运行实体 是一个CPU调度单位 资源的拥有者还是进程 将原来进程的两个属性分开处理 3.8.1 线程的引入(续4) 线程: 有执行状态(状态转换) 不运行时保存上下文 有一个执行栈 有一些局部变量的静态存储 可存取所在进程的内存和其他资源 可以创建、撤消另一个线程 线程和进程: 单进程、单线程 单进程、多线程 多进程、一个进程一个线程 多进程、一个进程多个线程 P C B 用 户 栈 单线程进程模型 用户地址空间 核 心 栈 线程控制块: 包含了寄存器映像,线程优先数和线程状态信息 P C B 多线程进程模型 用户 地址 空间 用 户 栈 核 心 栈 线程 控制块 用 户 栈 核 心 栈 线程 控制块 用 户 栈 核 心 栈 线程 控制块 引入线程的好处: 创建一个新线程花费时间少(结束亦如此) 两个线程的切换花费时间少 (如果机器设有“存储[恢复]所有寄存器”指令,则整个切换过程用几条指令即可完成) 因为同一进程内的线程共享内存和文件,因此它们之间相互通信无须调用内核 适合多处理机系统 例子1: LAN中的一个文件服务器,在一段时间内需要处理几个文件请求 因此有效的方法是:为每一个请求创建一个线程 在一个SMP机器上:多个线程可以同时在不同的处理器上运行 例子2: 一个线程显示菜单,并读入用户输入; 另一个线程执行用户命令 考虑一个应用:由几个独立部分组成,这几个部分不需要顺序执行,则每个部分可以以线程方式实现 当一个线程因I/O阻塞时,可以切换到同一应用的另一个线程 线程与进程的比较 进程是资源分配的基本单位。所有与该进程有关的资源,例如打印机,输入缓冲队列等,都被记录在进程控制块PCB中。 进程也是抢占处理机的调度单位,它拥有一个完整的虚拟地址空间。 与进程相对应,线程与资源分配无关,它属于某一个进程,并与进程内的其他线程一起共享进程的资源。 当进程发生调度时,不同的进程拥有不同的虚拟地址空间,而同一进程内的不同线程共享同一地址空间。 3.8.2 线程的分类 线程的两个基本类型是:用户级线程和系统级线程(核心级线 程)。 在同一个操作系统中,有的使用纯用户级线程,有的使用纯核心级线程,例如Windows NT和Os/2;有的则混合使用用户及线程和核心级线程,例如Solaris 。 3.8.3 线程的执行特性 线程在执行时也有它的相关特性。线程的状态和同步用来反映线程的这些特性。 线程有3个基本状态,即执行、就绪和阻塞。但是线程没有进程中的挂起状态。 针对线程的3种基本状态,存在5种基本操作来转换 线程的状态。这5种基本操作是: (1)派生(spawn):线程在进程内派生出来,它 即可由进程派生,也可由线程派生。新派生线程被放入就绪队列。 (2) 阻塞(Block):如果一个线程在执行过程中需要等待某个事件发生,则被阻塞。 (3) 激活(unblock):如果阻塞线程的事件发生,则该线程被激活并进入就绪队列。 (4) 调度(schedule):选择一个就绪线程进入执行状态。 (5) 结束(Finish):如果一个线程执行结束,它的寄存器上下文以及堆栈内容等将被释放。 关于线程正确的是() A、线程是处理机的独个线程立调度基本单位,多个线程是可以并发执行的 B

文档评论(0)

武神赵子龙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档