您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第04章 线程、对称多处理和微内核
第四章线程、对称多处理器和微内核厦门大学软件学院吴清强操作系统24.1进程和线程进程概念的特点:•资源所有权:一个进程包括一个存放进程映像的虚拟地址空间;时常拥有对资源的控制或所有权,OS执行保护功能,以防止进程之间发生不必要的与资源相关的冲突。•调度/执行:一个进程沿着通过一个或多个程序的一条执行路径(轨迹)执行,其执行过程可能与其它进程的执行过程交替进行。是OS进行调度的实体。•两个特点互相独立,OS分别处理,为了区分:–分派单元:线程或轻量级进程(LWP:LightWeightProcess)–拥有资源所有权的单位仍然为进程或任务34.1.1多线程•多线程是指OS支持在一个进程中执行多个线程的能力。4多线程环境下进程的定义:资源分配和保护的单位。•存放进程映像的虚拟地址空间•受保护地访问处理器、其它进程、文件和I/O资源线程具有:•线程状态•线程上下文(有独立的程序计数器PC)•执行栈•线程局部变量的静态存储空间•对进程所拥有的内存和资源的访问–该进程中的所有线程共享这些资源。4.1.1多线程54.1.1多线程图4.2单线程和多线程的进程模型6多线程优点:•在一个已有进程中创建一个新线程比创建一个全新进程所需要的时间要少许多。•终止一个线程比终止一个进程花费的时间少。•同一进程内线程间的切换比进程间切换花费的时间少。•线程提高了不同的执行程序间的通信的效率–共享内存和文件,通信无需内核参与4.1.1多线程挂起与终止:–挂起一个进程,该进程的所有线程都被挂起。–终止一个进程,该进程的所有线程都被终止。74.1.2线程功能特性线程四种基本操作:–派生•新线程–阻塞–解除阻塞(就绪)–结束远程过程调用RPC–单线程–多线程84.1.2线程功能特性图4.4多线程在单处理器上的执行94.1.3多线程例子AdobePageMaker104.1.4用户级和内核级线程线程分类:•用户级线程(User-LevelThread,ULT)•内核级线程(Kernel-LevelThread,KLT)纯粹的用户级线程•所有的线程管理工作都由应用程序完成•内核没有意识到这种线程的存在,还是以进程为调度单位114.1.4用户级和内核级线程系统调用时间片到被抢占线程同步/调度124.1.4用户级和内核级线程纯粹的用户级线程优点:•线程切换不需要模式切换•调度算法可以是应用程序专用的•可在任何OS中运行(线程库支持)缺点:•系统调用引发阻塞,一个线程执行一个系统调用时,不仅这个线程会被阻塞,进程中的所有线程都会被阻塞。•一个多线程应用程序无法利用多处理器技术。解决方案:–应用程序写成多进程而非多线程(切换代价大)–Jacketing技术:把一个产生阻塞的系统调用转换成一个无阻塞的系统调用。13纯粹内核级线程•内核管理进程和线程的上下文信息•基于线程调度4.1.4用户级和内核级线程144.1.4用户级和内核级线程纯粹的内核级线程优点:•内核可以调度同一个进程的多个线程到多个处理器上同时运行•线程的阻塞不会引起同一进程内其它线程的阻塞•内核例程自身也可以使用多线程缺点:•进程内线程切换需要模式切换(调度:内核模式,执行:用户模式)15线程、进程操作执行时间对比4.1.4用户级和内核级线程数量级的差异16组合方法=用户级线程+内核级线程•线程在用户空间中创建•线程的调度和同步也在应用程序中进行4.1.4用户级和内核级线程–应用程序中的多个用户线程被映射到一些(小于或等于用户级线程数目)内核线程上–同一个应用程序中的多个线程可以在多个处理器上并行运行–系统调用引起的线程阻塞不需要阻塞整个进程174.1.5其它方案线程:进程描述示例系统1:1执行的每个线程是一个唯一的进程,有它自己的地址空间和资源传统的UNIXM:1一个进程定义了一个地址空间和动态资源所有权。可以在该进程中创建和执行多个线程WindowsNT、Solaris、MACH1:M一个线程可以从一个进程环境迁移到另一个进程环境。这允许线程可以很容易地在不同系统中移动Ra(Clouds)、EmeraldM:N结合M:1和1:M情况下的属性TRIX184.2对称多处理器计算机系统分类:•单指令单数据(SISD)流–一个单处理器执行一个单指令流,对保存在一个存储器中的数据进程进行操作。•单指令多数据(SIMD)流–一个机器指令控制许多处理部件步伐一致地同时执行。•多指令单数据(MISD)流–一系列数据被传送到一组处理器上,每个处理器执行不同的指令序列。(从未实现过)•多指令多数据(MIMD)流–一组处理器同时在不同的数据集上执行不同的指令序列4.2.1SMP系统的体系结构194.2对称多处理器图4.8并行处理器体系结构204.2.2SMP系统的组织结构214.3微内核•小型的OS内核•只包含最基本的OS功能•非基本的服务和应用程序在内核之上构造–设备驱动程序–文件系统–虚拟内存管理–窗口系统–安全服务224.3微内核练习•用户级线程与内核线程之间的关系存在多对一、一对一、多对多三种模型。–多对一模型:多个用户级线程映射到一个内核线程,在这种模型中用户级线程在内核之上支持,并在用户空间通过A实现;对线程的创建、管理、和调度B内核支持;任何一个用户级线程执行了引起阻塞的系统调用,则该C阻塞;开发人员可创建任意多的线程,系统的并发度(并发性能)D。–一对一模型:每个用户级线程映射到一个内核线程,在这种模型中线程的并发能力E,能F运行在多处理器系统上。–多对多模型:多路复用了许多用户级线程到同样数量或更小数量的内核线程上,开发人员可创建G的用户级线程,内核线程可在多处理器系统上并行运行。备选答案:•A:①内核②线程库③原语④系统调用•B:①需要②不需要•C、D、E、F、G:①线程②程序③进程④任意数量⑤提高⑥并发⑦不变⑧并行⑨有限数量作业•P142复习题4.2•P142习题4.1•P143习题4.5、4.7
三七文档所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
本文标题:第04章 线程、对称多处理和微内核
链接地址:https://www.777doc.com/doc-4044494 .html