文档详情

第4章进程及进程管理4.ppt

发布:2016-12-20约6.06千字共20页下载文档
文本预览下载声明
操作系统与实验 第3章第7讲 操作系统与实验 第3章第7讲 4.7 进程通信 进程通信是指进程之间可直接以较高的效率传递较多数据的信息交换方式。 Linux进程间通信(Inte-Process Communication,IPC)可分为控制信息的通信(低级通信)和大批数据信息的通信(高级通信)。 低级通信主要用于进程间的同步、互斥、终止、挂起等控制信息的传递,所传递的信息往往只是一个信号、一个键或组合键。高级通信主要用于进程间数据块的交换和共享。 用于实现低级通信的有软中断信号、信号量集。实现高级通信的有管道、消息队列、共享内存等。 * * 4.8 线程 (一)问题的提出 进程的引入使操作系统得以完成对并发执行的多道程序动态特征的描述和资源共享的管理,因而进程既是调度的基本单位又是资源分配的基本单位。进程所具有的这两个特点构成了程序并发执行的基础,但同时又导致进程切换过程中由于进程映像过大而带来的时空开销。因此,如果系统中创建的进程过多,或进程切换的频率过高,则会使系统效率下降,限制了并发度的进一步提高。 进程切换所带来的庞大开销是因为进程与资源分配有关,操作系统如何降低进程切换所需要的时空开销呢?比如野战军作战略转移时,所有辎重都要随身携带,速度自然很慢。但是当部队要抢占山头时所采取的办法是卸下辎重,只带轻武器以急行军方式跑步前进,速度自然就会快很多。 那么,操作系统是否也可以将调度的基本单位改成一种只用于调度执行而不涉及资源分配的单位?这个单位就是“线程”。 ——减小进程上下文切换开销 及更好地支持SMP(对称多处理) * * (二)线程及其特征 线程是调度执行的基本单位;线程不是资源分配的基本单位; 线程从属于某个进程,是该进程的某个执行路线。因此,也将进程称为重型进程,线程称为轻型进程。 线程是进程中的一个相对独立的可执行单元。 一个进程中至少包含一个线程。 由于同一进程内的线程之间涉及资源共享,所以需要同步机制来实现进程内多线程之间的通信。 与进程类似,线程还可以创建其它线程,线程也有生命周期,也有状态的变化。 * * (三)线程与进程的主要区别与联系 调度与资源分配 在引入线程的操作系统中,线程是调度和指派的基本单位,而进程是资源的拥有单位。在同一进程中,线程的切换不会引起进程的切换;而在不同的进程中进行线程的切换,比如从一个进程中的线程切换到另一个进程中的线程时,将会引起进程的切换。 线程不拥有资源,但可以访问它所在的进程的资源,从而获得系统资源。 并发性 引入线程的操作系统具有更好的并发性。 系统开销 进程切换时有很大的时空开销,而线程切换时只需要保存和设置少量的寄存器内容,时空开销很小。另外,由于同一进程内的多个线程共享进程的同一地址空间,因此,多个线程之间的同步与通信也非常容易实现,甚至不需要操作系统内核的干预。 在一个进程内使用多线程的优点主要在于创建线程的工作量要比创建进程的工作量小不涉及资源分配,不同线程之间的切换比进程之间的切换要快。 * * (四) 线程的状态与线程控制块 与进程类似,线程也是一个动态的概念,也有一个从创建到消亡的过程,它也具有以下几个基本状态: 新建态 就绪态:具备执行条件,等待调度。 运行态:正占有CPU 处于运行中。 阻塞态:等待某个事件发生。 结束态:线程结束执行,释放其寄存器上下文和堆栈的内容。 线程使用线程控制块TCB(Thread Cotrol Block)来描述。线程由与其相关的堆栈、寄存器和线程控制块TCB组成。寄存器可以用来存储线程内的局部变量,但是不能存储其它线程的局部变量。 线程的控制原语包括线程创建、线程终止、线程阻塞等等。 * * (五)线程的分类 1.用户级线程 用户级线程ULT(User-Level Thread)由用户程序创建,并由用户程序对其进行调度和管理。操作系统内核并不知道有用户级线程的存在,因而用户级线程与内核无关。我们也称之为“纯ULT方法”。MS-DOS、Unix属于这种方法。 其优点在于: 应用程序中的线程转换开销比内核级的开销要小得多。(开销小) 线程的调度算法与操作系统的调度算法无关。(算法灵活) 用户级线程方法可以适用于任何操作系统,因为它与内核无关。(高适应性) 其缺点在于: 当进程中某线程执行一个系统调用而被阻塞时,会导致本进程的其它线程也阻塞。 在纯ULT方式下,多线程不便利用多处理器,因为每次只有一个进程的一个线程在一个CPU上运行。 * * 2.内核级线程 内核级线程KLT(Kernel-Level Thread)中,所有线程的创建、调度、管理都由操作系统内核负责。一个用户进程可以按多线程方式编写程序,当它被提交给多线程操作系统运行时,内核为它创建一个进程和一个线程,线程在运行中还可以创建
显示全部
相似文档