12 2009 操作系统第12讲:第3章进程管理(续6 线程)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2020/2/121操作系统第12讲第3章进程管理(续4线程与超级线程)主讲:闫新庆2012–032020/2/122第3章进程管理内容提纲3.1认识进程前的准备3.2进程的概念与描述3.3进程状态及其转换3.4进程控制3.5进程互斥与同步3.6进程通信3.7死锁问题3.8银行家算法3.9线程与超级线程●本章小结●习题2020/2/1233.9线程一、什么是线程(80年代中期)1、一个进程往往要涉及和实现多个功能的操作,如:●计算操作●读数据操●写盘操作●打开一个文件操作………….这些功能操作是进程的控制线索,每个进程一般都有多个控制线索,控制线索又叫线程。2020/2/1243.9线程一、什么是线程(续)如:设备控制线索:能够提高I/O设备的利用效率;互斥控制线索:能够提高系统内程序并发执行的程度;同步控制线索:可以提高系统的吞吐量;文件控制线索;可以提高文件的运行效率;………….线程又被叫作:●轻量进程Tannibaum●轻权进程清华张尧学●轻载进程中国人大孟静2020/2/1253.9线程二、线程有什么作用1、进程与线程:●进程是程序的一次执行过程和资源分配的基本单位,即使是同一段程序,在不同的执行时间,应属于不同的进程。●线程是一个进程内的独立运行的基本调度单位,这个调度单位既可以由操作系统内核控制,也可以由用户程序控制。2020/2/1263.9线程二、线程有什么作用(续1)2、线程功能——提高计算机系统效率▲减少处理机空载时间;▲减少进程调度切换的频率与时间;▲减少进程阻塞的频率与时间;▲更加方便系统管理;2020/2/1273.9线程二、线程有什么作用(续2)3、适用范围:主要适用于现代OS和多处理机4、举例:一个文件服务进程,包括:●显示菜单操作●读取数据操作●写盘操作●启动一个外设的操作,当第一个线程被阻塞,可以运行第2个线程,第2个线程被阻塞,可以运行第3个线程…….2020/2/1283.9线程三、进程与线程之间的差别1、是调度执行和分配资源的单位●线程:1、只是调度和执行的一个基本单位。与分配资源无关2、各进程拥有不同的地址空间●线程:2、线程没有新分配地址空间,共享所在进程的空间3、进程可以并发执行,必然引发进程之间的切换●线程:3、一个进程的线程可以并发执行,且线程之间的切换不会引发进程之间的切换。2020/2/1293.9线程三、进程与线程之间的差别4、进程拥有系统资源(代码段、数据段、I/O设备、打开的文件等)●线程:4、线程不拥有但可以访问进程所拥有的资源5、进程拥有7种状态:涉及到有关资源及地址的保存与恢复等问题●线程:5、线程拥有三种基本状态,线程切换不涉及中断的保护与恢复问题,速度快、效率高。6、进程切换由内核完成●线程:6、线程切换有2种,用户级线程和内核级线程2020/2/12103.9线程四、线程组成与特点1、组成(1)TCB线程控制表(2)1个程序计数器(3)寄存器组只能存贮本线程变量,不能存贮其它线程变量。2、特点(1)属于某个进程,(2)与资源分配无关(3)无专用地址空间同步特性2020/2/12113.9线程五、线程的基本类型1、用户级线程:和内核无关,处于内存用户区,由线程库创建、调度和撤消。线程间的通信功能,只用到用户栈和分配各用户进程的寄存器。2、系统级进程:核心级线程创建依赖于内核支持,创建、切换与撤消都依赖于内核实现,在内核中,通过一张线程表,感知线程的存在,并对线程进行控制!2020/2/12123.9线程五、线程的基本类型(续1)由以上比较可知,线程只由相关堆栈(系统栈或用户栈)寄存器和线程控制表TCB组成。寄存器可被用来存储线程内的局部变量,但不能存储其他线程的相关变量。发生进程切换与发生线程切换时相比较,进程切换时涉及到有关资源指针的保存以及地址空间的变化等问题。线程切换时,由于同一进程内的线程共享资源和地址空间,将不涉及资源信息的保存和地址变化问题,从而减少了操作系统的开销时间。而且,进程的调度与切换都是由操作系统内核完成,而线程则既可由操作系统内核完成,也可由用户程序进行。多线程系统中进程与线程的关系如图3.24。2020/2/12133.9线程进程控制块PCB用户地址空间进程程序与数据图3.24多线程与进程之间的关系线程1线程控制块TCB1堆栈与寄存器线程控制块TCBi堆栈与寄存器线程控制块TCBn堆栈与寄存器线程2线程n2020/2/12143.9线程六线程的适用范围(1)●并不是在所有的计算机系统中线程都是适用的。在那些很少做进程调度和切换的实时系统、个人数字助理系统中,由于任务的单一性,设置线程相反会占用更多的内存空间和寄存器。●使用线程的最大好处是在有多个任务需要处理机处理时,减少处理机的切换时间;而且,线程的创建和结束所需要的系统开销也比进程的创建和结束要小得多。2020/2/12153.9线程六线程的适用范围(2)●文件管理或通信控制。在局域网的文件服务器中,对文件的访问要求可被服务器进程派生出的线程进行处理。由于服务器同时可能接受许多个文件访问要求,则系统可以同时生成多个线程来进行处理。如果计算机系统是多处理机的,这些线程还可以安排到不同的处理机上执行。●前后台处理。即把一个计算量较大的程序或实时性要求不高的程序安排在处理机空闲时执行。对于同一个进程中的上述程序来说,线程可被用来减少处理机切换时间和提高执行速度2020/2/12163.9线程六、线程的适用范围(3)●异步处理。程序中的两部分如果在执行上没有顺序规定,则这两部分程序可用线程执行。●数据的批处理以及网络系统中的信息发送与接收和其他相关处理等。例如,图3.25给出了一个用户主机通过网络向2台远程服务器进行远程调用(RPC)以获得相应结果的执行情况。如果用户程序只用一个线程,则第2个远程调用的请求只有在得到第1个请求的执行结果后才能发出(如图3.25a)。多线程时,用户程序不必等待第1个RPC请求的。2020/2/12173.9线程六、线程的适用范围(4)●并不是在所有的计算机系统中线程都是适用的。在那些很少做进程调度和切换的实时系统、个人数字助理系统中,由于任务的单一性,设置线程相反会占用更多的内存空间和寄存器。●使用线程的最大好处是在有多个任务需要处理机处理时,减少处理机的切换时间;而且,线程的创建和结束所需要的系统开销也比进程的创建和结束要小得多。2020/2/12183.9线程图3.25(a)单线程时的RPC请求处理2020/2/12193.10超级线程技术简介一、什么是超级线程技术●所谓超线程技术就是利用特殊的硬件指令,把多线程处理器内部的两个逻辑内核模拟成两个物理芯片,从而使单个处理器就能“享用”线程级的并行计算的处理器技术。多线程技术可以在支持多线程的操作系统和软件上,有效的增强处理器在多任务、多线程处理上的处理能力。●超线程技术可以使操作系统或者应用软件的多个线程,同时运行于一个超线程处理器上,其内部的两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、负载等操作。这样做可以使得处理器的处理能力提高30%,因为在同一时间里,应用程序可以充分使用芯片的各个运算单元2020/2/12203.10超级线程技术简介二、超线程是如何工作的?超线程技术可以使操作系统或者应用软件的多个线程,同时运行于一个超线程处理器上,其内部的两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、负载等操作。从而可以使处理器的处理能力提高30%,因为在同一时间里,应用程序可以充分使用芯片的各个运算单元。2020/2/12213.10超级线程技术简介三、实现超线程的五个前提(1)需要CPU支持:目前正式支持超线程技术的CPU有Pentium43.06GHz、2.40C、2.60C、2.80C、3.0GHz、3.2GHz等处理器。(2)需要主板芯片组支持:正式支持超线程技术的主板芯片组的主要型号包括Intel的:E7205,850E,865PE/G/P,845PE/GE/GV,845E,875P,865PE/G/P,845PE/GE/GV等芯片组。2020/2/12223.10超级线程技术简介(3)需要主板BIOS支持:主板厂商必须在BIOS中支持超线程才行。(4)需要操作系统支持:目前微软的操作系统中只有WinXP支持此功能,而在Win2000上实现对超线程支持的计划已经取消了。(5)需要应用软件支持:支持多处理器的软件均可支持超线程技术,但是实际上这样的软件并不多,而且偏向于图形、视频处理等专业软件方面,游戏软件极少有支持的。应用软件有Office2000/XP等。另外Linuxkernel2.4.x以后的版本也支持超线程技术。2020/2/12233.10超级线程技术简介四、超线程技术的优点(1)超线程在Web服务、SQL数据库等很多服务器领域的应用中表现优异。(2)主流的桌面芯片组基本都已可以支持超线程。(3)WinXP已经针对其作出优化,在运行多个不支持多线程的程序时,性能也可能会获得提高。即便带来损失,也会比较轻微。(4)在某些支持多线程的软件应用上能够得到30%左右的性能提升,如3dsmax、Maya、Office、Photoshop等。Intel甚至在一项测试中取得了90%能也可能会获得提高。2020/2/12243.10超级线程技术简介五、超线程技术的缺点●Windows2000并不支持超线程技术,WindowsXP,支持超线程技术。●打开超线程后,处理单线程应用,处理器性能有时会降低。●缺乏针对超线程优化的各种普通应用软件,性能因此得不到充分体现的提高。2009年考研试题三个进程P1、P2、P3互斥使用一个包含N(N0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。2020/2/12252011年考研试题某银行提供1个服务窗口和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号。取号机每次仅允许一位顾客使用。当营业员空闲时,通过叫号选取一位顾客,并为其服务。顾客和营业员的活动过程描述如下:2020/2/12262011年考研试题cobegin{process顾客i{从取号机获得一个号码;等待叫号;获得服务;}process营业员{while(TRUE){叫号;为顾客服务;}}}coend2020/2/1227请添加必要的信号量和P、V(或wait()、signal())操作,实现上述过程中的互斥与同步。要求写出完整的过程,说明信号量的含义并赋初值。2020/2/1228第3章进程管理小结★特别强调1●进程是操作系统中最重要、最基本的概念之一。它是系统分配资源的基本单位,是一个具有独立功能的程序段对某个数据集的一次执行活动。●进程是由操作系统的资源有限性和处理上的并行性以及系统用户的执行起始时间的随机性所决定的。2020/2/1229第3章进程管理小结★特别强调2●进程具有动态、并发、独立、异步性等特性。●进程要经历创建、等待资源、就绪准备、执行、执行后释放资源、消亡等几个过程和状态。●进程的状态转换要由不同的原语执行完成。●进程的并发特性反映在进程对资源的竞争以及由资源竞争所引起的影响进程执行速度的直接制约和间接制约。●进程间的直接制约是被制约进程和制约进程之间,存在着使用对方资源的需求,只有制约进程执行后,被制约进程才能继续往前推进。2020/2/1230第3章进程管理小结★特别强调2(续)●进程间的间接制约是被制约进程共享某个一次只能供一个进程使用的系统资源,只有得到该资源的进程才能继续往前推进,其他进程在获得资源进程执行期间不允许交叉执行。因此,直接制约进程之

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功