您好,欢迎访问三七文档
进程的特点资源所有权-一个进程包括一个存放进程映像的虚拟地址空间调度/执行-一个进程沿着轨迹执行,可能和其他进程交替系统必须完成的操作:创建进程进程切换撤消进程缺点:时间空间开销大,限制并发度的提高进程的引入提高了计算机资源的利用效率。但在进一步提高进程的并发性时,人们发现进程切换开销占的比重越来越大,同时进程间通信的效率也受到限制。线程的引入正是为了简化进程间的通信,以更小的开销来提高进程内的并发程度某些操作系统独立处理进程的两个特点:调度和分派:基本单位通常称为线程或轻量级进程资源分配和保护:独立单位通常称为进程传统:单线程;现在:多线程---每个进程内允许包含多个并发执行的实体(控制流)。OS在单个进程内支持多个并发执行路径的能力DOS系统支持单进程单线程方法UNIX系统支持多用户进程,但只是单线程Java运行环境是单进程多线程进程是资源分配和抢占CPU的单位;所有线程共享该进程的状态和资源,驻留在同一块地址空间,可以访问到相同数据线程是进程内部最小的调度单位;一个进程可产生多个线程,并发执行;线程不拥有系统资源,共享内存,线程通信和切换开销小。进程是操作系统中进行除处理器外的资源分配和保护的基本单位有独立的虚拟地址空间,用来容纳进程映像(如与进程关联的程序与数据)各种资源实施保护:如受保护地访问处理器、文件、外部设备及其他进程(进程间通信)。线程是进程中能够独立执行的实体是处理器调度和分派的基本单位线程是进程的组成部分多线程环境,每个线程都有独立的栈,独立的控制块包含寄存器值、优先级和其他线程相关的状态信息每个线程的相关元素:1.线程执行状态2.在未运行时保存的线程上下文3.一个执行栈4.用于每个线程局部变量的静态存储空间5.与进程内的其他线程共享的进程内存和资源的访问线程标识符:线程状态信息:运行态、阻塞态、就绪态线程上下文:可把线程看成是进程中一个独立的程序计数器在操作;内核栈:内核态下工作时,保存参数,函数调用时的返回地址等;私有存储区:用于存放线程局部变量及用户栈。创建新线程比创建一个新的进程要快许多终止一个线程比终止进程时间少同一进程内线程间切换比进程间切换时间少线程提高了不同的执行程序间通信的效率1、前台和后台工作:前台接受,后台执行,响应速度快2、异步处理---自动保存,周期性备份3、执行速度---多个线程同时执行4、模块化程序结构---涉及多种活动或I/O操作****************************************************挂起进程,其中所有线程都会同时挂起进程终止会导致进程中所有线程终止线程并发执行,涉及到同步互斥(第五章)线程状态:①运行态、②就绪态、③阻塞态基本操作派生:派生新进程同时派生新线程;线程也可在同一个进程中派生新线程阻塞:当线程等待一个事件时解除阻塞:当等待的事件发生,移入就绪队列结束:线程执行完毕,释放其寄存器上下文和栈线程同步一个进程中的所有线程共享地址空间和其他资源一个线程对资源的修改都会影响同一个进程中其他线程的环境需同步各线程,互不干涉,保护数据结构可分为两类用户级线程(UserLevelThread,ULT)内核级线程(KernelLevelThread,KLT)内核支持的线程或轻量级线程Solaris既支持用户级线程,又支持内核级线程---混合式线程用户级所有线程管理由应用程序完成线程库:例程包,用于创建和销毁线程的代码,线程间通信的代码,调度线程执行的代码,保存和恢复上下文的代码内核不知道线程的存在,线程切换不需核心态特权内核不知道线程的活动,但仍然管理进程的活动当线程调用系统调用时,整个进程阻塞但对线程库来说,线程仍然是运行状态即线程状态是与进程状态独立的b)?d)?c)?优点:线程切换不需内核态特权,节省了两次状态转换开销调度算法可以为应用程序量身定做不需要对底层内核进行修改。线程库是一组供所有应用程序共享的函数缺点:系统调用时会引起阻塞;同一进程的多线程不能应用于多处理器线程管理由内核完成应用程序部分没有进行线程管理的代码(线程库),只有一个接口内核为进程和线程维护上下文信息调度基于线程完成如:WindowsNT优点内核可以调度同一进程的多个线程到多个处理器一个线程阻塞,调度另一个内核例程自身也是可以使用多线程缺点同一进程间的线程间切换,需要状态切换,导致速度下降线程创建在用户空间完成调度和同步也在应用程序中进行内核级线程对应着用户级线程,数量很大时,构建“线程池”用户级线程通过内核级线程完成系统调用,得到内核服务Solaris是个很好的例子线程和进程之间的关系多核系统支持多线程应用程序工作站、游戏机等,涉及到性能问题多核系统上的软件性能多核架构的性能提升取决于一个应用程序有效使用可用并行资源的能力Amdahl定律给出多核系统的加速比,效率的提升能力加速比=Ws和Wp式中分别表示问题规模的串行分量(问题中不能并行化的那一部分)和并行分量,p表示处理器数量。很小的串行代码也会影响性能提升,需要尽量降低串行部分的比例调度、通信、高速缓存等性能维护会有额外开销,导致性能达到一个峰值后开始下降Solaris存在四种概念进程用户级线程(ULT)轻量级进程(LWP)内核级线程(KLT)复习题:5、6、7
本文标题:操作系统第四章线程
链接地址:https://www.777doc.com/doc-2381428 .html