1、本章教学目标,了解线程概念、线程由来了解线程切换线程池的概念对称多处理,线程的由来,虽然进程可以提高CPU的利用率,但是进程之间的切换是非常耗费资源和时间的,为了能更进一步的提高操作系统的并发进,引进了线程.这样,进程是分配资源的基本单位,而线程则是系统调度的基本单位。一个进程内部的线程可以共享该进程的所分配到的资源。线程的创建与撤消,线程之间的切换所占用的资源比进程要少很多。总的来说就是为了更进一步提高系统的并发性,提高CPU的利用率。,线程的基本概念,线程的概念线程是进程中的一个实体,是被系统独立调度和执行的基本单位。进程的概念(回顾)进程是程序在一个数据集合上运行的过程,它是系统进行资源
2、分配和调度的一个独立单位。,进程和线程的比较,调度性的比较线程是调度和分派的基本单位,进程是作为资源的基本单位并发性的比较在引入线程的OS中,不仅进程之间可以并发执行,而且在一个进程的多个线程之间,亦可并发执行,因而是OS具有更好的并发性,拥有资源的比较进程始终是拥有资源的一个独立单位,线程自己不拥有系统资源,但它可以访问其隶属进程的资源系统开销的比较在创建、撤销和切换进程方面,进程的开销远远大于线程的开销,多线程,指操作系统支持在一个进程中执行多个线程的能力此时,每个线程具有:线程执行状态一个执行栈用于每个线程局部变量的静态存储空间对所属进程的内存和资源的访问,并与该进程中的其他线程共享这些
3、资源,线程的优点,在一个已有进程中创建一个新线程比创建一个全新进程所需的时间要少许多终止一个线程比终止一个进程花费的时间少同一进程内线程间切换比进程间切换花费的时间少线程提高了不同执行程序间通信的效率:进程间的通信要内核的介入,而同进程间线程共享内存和文件,无需调用内核,线程状态,运行态就绪态阻塞态PS:一个进程被换出,由于它的所有线程都共享该进程的地址空间,因而它们必须都被换出,与线程状态相关的基本操作,派生:产生一个新进程时,同时也为该进程产生了一个线程,随后,进程中的线程可以在同一个进程中产生另一个线程,并为新线程提供指令指针和参数;新线程拥有自己的寄存器上下文和栈空间,被放置在就绪队列
4、中。阻塞:当线程需要等待一个时间时,它将被阻塞,此时处理器转而执行另一个处于同一进程中或不同进程中的就绪线程,解除阻塞:当阻塞一个线程的事件发生时,该线程被转移到就绪队列中。结束:当一个线程完成时,其寄存器上下文和栈都被释放。,线程同步,一个进程中所有线程共享同一个地址空间和其他资源。一个线程对资源的任何修改都会影响同一个进程中其他线程的环境,故需要同步各种线程的活动,以便他们互不干涉且不破坏数据结构。具体技术请参考后面同学所讲。,线程的类型,系统级线程:是依赖于系统控制的,即无论是用户进程中的线程,还是系统进程中的线程,它们的创建、撤消、切换都是由系统控制实现的。 用户级线程 :是由用户控制
5、,对于用户级线程的创建、撤消、切换,都与系统控制无关,完全由用户自己管理。,进程切换步骤(回顾),保存处理器上下文,包括程序计数器和其他寄存器更新当前处于运行态的进程的进程控制块把进程的进程控制块移到相应的队列选择另一个进程执行更新所选择金错刀进程控制块更新内存管理的数据恢复处理器在被选择的进程最近一次切换出运行态时的上下文,线程切换步骤,保存CPU寄存器的值到当前线程内核对象中的线程上下文中。选择并调度一个等待线程集合中的线程,如果这个线程与上一个线程不在同一个进程中,那么线程在正式开始前切换到当前进程的虚拟地址空间。加载线程上下文数据到CPU寄存器并开始执行,线程池,线程池是创建在一个多线
6、程应用程序初始化的线程集合,然后再利用作为新的任务和要求时这些线程的过程,而不是创建新的线程。 该进程的线程数,通常固定在可用内存量而定,以及应用程序的需要。 不过,也许可以增加可用的线程数。 池中的每个线程被赋予的任务,一旦这项工作完成后,线程返回到池中,并为下一个任务等待,使用线程池的优点,避免了线程创建的开销提高系统的性能,对称多处理,传统的计算机被看出时序机,处理器在执行程序时,顺序地执行且每次只执行一条机器指令。随着计算机技术的发展和计算机硬件价格的下降,设计者们找到了很多并行处理的机会以提高性能。所谓对称多处理就是通过服用处理器提供并行性的手段。,SMP系统的体系结构,计算机系统的
7、分类单指令单数据(SISD)流:一个单处理器执行一个单指令流,对保存在一个存储器中的数据进程进行操作单指令多数据(SIMD)流:是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据矢量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术。,多指令单数据(MISD)流:它具有n个处理单元,按n条不同指令的要求对同一数据流及其中间结果进行不同的处理。多指令多数据(MIMD)流:一组处理器同时在不同的数据集上执行不同的指令序列。处理器是通用的,因为它们必须能够处理执行相应的数据转换所需的所有指令。,并行处理器体系结构,并行处理器 SIMD MIMD共享存储器 分布式存储器 主/从
8、 对称多处理(SMP) 集群,分布式存储器系统:每个处理器都有一个专用存储器,则每个处理部件都是一个独立的计算机。共享存储器系统:处理器共享一个公用的存储器,每个处理器都访问保存在共享存储器中的程序和数据,处理器之间通过这个存储器互相通信。基于如何把进程分配给处理器,可分为:,主/从结构:操作系统内核在某个特定的处理器上运行,其他处理器只用于执行用户程序,还可能执行以下操作系统实用程序。主处理器负责调度进程或线程,需要从处理器服务时,给主处理器发送请求,并等待服务的执行。 缺点:一个处理器控制了所有存储器和I/O资源。主处理器的失败将导致整个系统失败。主处理器必须单独完成所有的调度和进程管理,可能成为性能瓶颈。,对称多处理系统:内核可以在任何处理器上执行,并且通常每个处理器从可用的进程或线程池中进程各自的调度工作。内核可有多线程构成,允许部分内核并行执行。 缺点:增加操作系统的复杂性,必须确保两个处理器不会选择同一个进程,并且保证进程不会由于某种原因从队列中丢失,因此需解决同步资源的要求。,SMP组织结构,SMP中有多个处理器,每个处理器都含有它自己的控制单元、算术逻辑单元和寄存器;每个处理器都可 以通过某种形式的互连机制访问一个共享主存和I/O设备。处理器可以通过存储器互相通信,还可以直 接交换信号。,对称多处理组织结构(图),Thanks!,