《操作系统》进程管理3

上传人:宝路 文档编号:48222845 上传时间:2018-07-11 格式:PPT 页数:13 大小:122.97KB
返回 下载 相关 举报
《操作系统》进程管理3_第1页
第1页 / 共13页
《操作系统》进程管理3_第2页
第2页 / 共13页
《操作系统》进程管理3_第3页
第3页 / 共13页
《操作系统》进程管理3_第4页
第4页 / 共13页
《操作系统》进程管理3_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《《操作系统》进程管理3》由会员分享,可在线阅读,更多相关《《操作系统》进程管理3(13页珍藏版)》请在金锄头文库上搜索。

1、操作系统原理 Principles of Operating System12.8 线程机制n传统进程有两个属性,就是操作系统进行资源分 配的基本单位和处理机调度的基本单位。一是与 资源的所有权有关,另一个是与执行有关。n系统中进程的数量不宜过多,进程切换的频率不 宜过高,但这也就限制了并发程度的进一步提高 。n为解决这个问题,我们把进程的两个属性分离, 即作为执行的基本单位,不同时作为独立分配资 源的单位。对拥有资源的单位,不对之进行频繁 切换。多线程意味着一个进程的多个部分可以并 发执行。进一步提高了系统的效率,促进了操作 系统的发展。22.8.2 线程的概念n在引入线程的操作系统中,从物

2、理上看, 线程是处理机执行的基本单位。从逻辑上 看,线程是指进程内部的一个可独立执行 的实体。 n线程拥有少量必不可少的资源,如程序计 数器、一组寄存器、栈,它可与同属一个 进程的其他线程共享进程所拥有的全部资 源。 n我们可以把原来的进程概念理解为只有一 个线程的进程。342.8.3 进程和线程的比较n线程与进程从以下性能比较,线程的重要优点如下:n创建线程比创建进程所需的时间短。n撤消线程比撤消进程花费的时间短。n线程间切换比进程间切换花费的时间短。n线程可以提高通信效率。由于同进程内线程间共享内 存和文件资源,可以不通过内核,直接进行通信。n适合多处理机系统。例如:LAN中的一个文件服务

3、器 ,在一段时间内需要处理几个文件请求。因此有效的方 法是为每一个请求创建一个线程。在一个多处理机的机 器上,多个线程可以同时在不同的处理机上运行。5从以下几个角度来比较进程和线程的差异。n地址空间资源。不同进程的地址空间是相互独立的, 而同一进程的各线程共享同一地址空间。n通信关系。进程间通信比须使用操作系统提供的进程 间通信机制,而同一进程中的各线程间可以通过直接读 /写进程的数据段(如全局变量)来进行通信。n调度方面。在传统的操作系统中,拥有资源的基本单 位和调度的基本单位都是进程。而在引入线程的操作系 统中,线程是处理机执行的基本单位,进程是拥有资源 的基本单位。在同一进程中,线程的切

4、换不会引起进程 的切换。在不同的进程中进行线程切换,将会引起进程 的切换。同一进程中的线程上下文切换比进程上下文切 换要快得多。6n拥有资源。不论是传统操作系统还是设有线程的操作 系统,进程都是拥有资源的基本单位,而线程不拥有系 统资源,但线程可以使用其所隶属进程的资源。n并发性。在引入线程的操作系统中,不仅进程之间可 以并发执行,而且同一进程内的多个线程之间也可并发 执行。n系统开销。由于创建进程或撤消进程时,系统都要为 之分配或回收资源,操作系统所付出的开销远大于创建 或撤消线程时的开销。在进行进程切换时,涉及到整个 当前进程CPU环境的保存及新调度到进程的CPU环境的设 置。而线程切换时

5、,只需保存和设置少量寄存器内容, 因此开销很小。另外,由于同一进程内的多个线程共享 进程的地址空间,因此,多线程之间的同步与通信非常 容易实现,甚至无需操作系统的干预。72.8.4 线程的状态n创建线程。当产生一个新进程时,同时也为该进程产生 了一个线程,随后,进程中的线程可以在同一个进程中产 生另一个线程,并为新线程提供指令指针和参数,同时还 提供新线程自己的寄存器上下文和栈空间,新线程被放置 在就绪队列中。n线程的阻塞。与进程一样,当线程等待一个事件时,它 将阻塞(保存用户寄存器、程序计数器和栈指针),此时处 理机转而执行另一个就绪线程。n线程的唤醒。当线程等待的一个事件发生时,该线程由

6、阻塞状态转变为就绪状态,被插入就绪队列中。n线程的结束。当线程执行任务结束后,系统将释放它所 占用的寄存器上下文和栈空间。82.8.5 线程类型 用户级线程n用户级线程仅存在于用户空间中,不依赖于操作系统内 核,在一个纯粹的用户级线程应用程序中,有关线程管 理的所有工作都由应用程序完成,内核没有意识到线程 的存在。应用程序可以通过使用线程库设计成多线程程 序,线程库是用于用户级线程管理的一个例程包,它包 含用于创建和撤销线程的代码、在线程间传递消息和数 据的代码、调度线程执行的代码以及保存和恢复线程上 下文的代码。 9内核级线程n内核级线程由操作系统内核完成线程的创建、撤销和切 换等,内核为每

7、个线程在核心空间中设置了一个线程控 制块,用来登记该线程的线程标识符、寄存器值、状态 、优先级等信息。在支持内核线程的操作系统中,内核 维护进程和线程的上下文信息,线程切换由内核完成。 一个内核线程由于I/O操作而阻塞,不会影响其他线程 的运行。这时处理机时间片分配的对象是线程,所以多 线程的进程可以获得更多的处理机时间。 10内核级线程克服用户级线程的缺陷,具有如下优点: n在多机系统中,在KLT操作系统中,线程是调度的基 本单位。调度可以为一个应用中的多个线程分配多个处 理机,使多个线程达到并行,提高了程序的执行速度和 系统效率。在纯粹的ULT中,一个多线程应用程序不能 利用多处理技术。内

8、核一次只把一个进程分配给一个处 理机,因此一次进程中只有一个线程可以执行,无法享 用多处理机带来的好处。n在KLT操作系统中,如果进程中的一个线程被阻塞, 内核可以调度同一个进程中的另一个线程;在ULT操作 系统中,许多系统调用都会引起阻塞,因此,当ULT执 行一个系统调用时,不仅这个线程会被阻塞,进程中的 所有线程都会被阻塞。n在KLT操作系统中,内核例程也可以使用多线程。11相对于内核级线程,用户级线程具有如下主要优点:n由于所有线程管理数据结构都在一个进程的用 户地址空间中,线程切换不需要内核模式特权, 因此,进程不需要为了线程管理而切换到内核模 式,这节省了在两种模式间进行切换的开销。

9、nULT调用可以是应用程序专用的。一个应用程 序可能倾向于简单的循环调度算法,而另一个应 用程序可能倾向于基于优先级的调度算法。调度 算法可以去适应应用程序,而不会扰乱底层的操 作系统调度程序。nULT可以在任何操作系统中运行,不需要对底 层内核进行修改以支持ULT。线程库是一组供所 有应用程序共享的应用级实用程序。 12组合线程控制机制n某些操作系统提供了一种组合线 程控制机制ULT/KLT,Solaris就 是一个重要例子。在组合系统中 ,线程创建完全在用户空间中完 成,线程的调度和同步也是在应 用程序中进行。一个应用程序中 的多个ULT被映射到一些(小于 或等于ULT的数目)KLT上。程序 员可以为特定的应用程序和机制 调节KLT的数目,以达到整体最 佳结果。n在组合方法中,同一个应用程序 中的多个线程可以在多个处理器 上并行地运行,某个线程阻塞不 会引起整个进程阻塞。13

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号