操作系统教程Linux实例分析孟庆昌第2章进程管理.ppt
《操作系统教程Linux实例分析孟庆昌第2章进程管理.ppt》由会员分享,可在线阅读,更多相关《操作系统教程Linux实例分析孟庆昌第2章进程管理.ppt(167页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2 2章章 进程管理进程管理 操作系统教程Linux实例分析孟庆昌第2章进程管理 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望第第2 2章章 进程管理进程管理 2.1 进进 程程 概概 念念 2.1.1程序的顺序执行顺序程序活动有三个主要特点:(1)程序所规定的动作在机器上严格地按顺序执行。(2)只有程序本身的动作才能改变程序的运行环境。(3)程序的执行结果与程序运行的速度无关。第第2 2章章 进程管理进程管理 图2-1列出了几个典型的顺序程序的示意图。其中
2、图(a)最简单,一条条指令顺次做下去;图(b)表示程序代码中出现循环的情况;图(c)表示A程序在执行过程中调用B程序,B运行完,返回A,继续执行A的情况。第第2 2章章 进程管理进程管理 图2-1顺序程序示意图第第2 2章章 进程管理进程管理 2.1.2程序的并发执行和资源共享多道程序设计是指两个或更多个程序同时在系统中存在并且运行。这时的工作环境与单道程序(仅一个)的运行条件相比,大不相同。首先,每个用户程序都需要一定的资源,如内存、设备、CPU时间等,因此系统中的软、硬件资源不再是单个程序独占,而是由几道程序所共享。这样,共享资源的状态就由多道程序的活动共同决定,从而打破了单道程序“闭关自
3、守”的局面。第第2 2章章 进程管理进程管理 图2-2非多道技术下作业执行过程第第2 2章章 进程管理进程管理 采用多道程序技术来执行同样的作业A和B,就能大大改进系统性能,如图2-3所示。作业A先运行,它运行一秒后等待输入,此时让B运行;B运行一秒后等待输入,此时恰好A输入完,可以运行了就这样在CPU上交替地运行A和B。在这种理想的情况下,CPU不空转,其使用率升至百分之百,并且吞吐量也随之增加了。第第2 2章章 进程管理进程管理 图2-3多道技术下作业执行过程第第2 2章章 进程管理进程管理 2.1.3程序并发执行的特性资源共享和程序的并发执行使得系统的工作情况变得非常复杂,带来一系列新的
4、问题,特别表现在各种程序活动的相互依赖和制约关系方面。我们分析一下图2-4中几个程序并发执行的情况。第第2 2章章 进程管理进程管理 图2-4并发程序的执行(a)并发执行的程序;(b)并发程序的关系;(c)有制约关系的并发程序第第2 2章章 进程管理进程管理 通过上述三个例子的分析,可以得出并发程序的三个主要特征:(1)没有封闭性。有共享公共变量时,其执行结果不可再现,就是说,结果与相关的并发程序的相对速度有关。(2)程序与计算不再一一对应。“程序”是指令的有序集合,是“静态”的概念。(3)并发程序在执行期间可以互相制约。第第2 2章章 进程管理进程管理 2.1.4进程概念的引入和描述“进程”
5、是操作系统的最基本、最重要的概念之一。引进这个概念对于理解、描述和设计操作系统都具有极其重要的意义。但是迄今为止,对这个概念还没有形成统一的定义,都是从不同的角度来描述它的各个基本特征。下面列举出比较能反映进程实质的几种定义:第第2 2章章 进程管理进程管理 (1)进程(或任务)是可以和别的计算并发执行的计算。(2)进程是程序的一次执行,是在给定内存区域中的一组指令序列的执行过程。(3)所谓进程,简单说来就是一个程序在给定活动空间和初始条件下,在一个处理机上的执行过程。(4)进程可定义为一个数据结构和能在其上进行操作的一个程序。(5)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和
6、调度的一个独立单位。第第2 2章章 进程管理进程管理 进程和程序是两个不同的概念,但又有密切的联系。它们之间的主要区别是:(1)程序是静态概念,本身可以作为一种软件资源长期保存着;而进程则是程序的一次执行过程,它是动态概念,有一定的生命期,是动态地产生和消亡的。第第2 2章章 进程管理进程管理 (2)进程是一个能独立运行的单位,能与其他进程并发执行,进程是作为资源申请和调度单位存在的;而通常的程序段是不能作为一个独立运行的单位的。(3)程序和进程无一一对应关系。一个程序可由多个进程共用;另一方面,一个进程在其活动中又可顺序地执行若干个程序。第第2 2章章 进程管理进程管理 (4)各个进程在并发
7、执行过程中会产生相互制约关系,造成各自前进速度的不可预测性。而程序本身是静态的,不存在这种异步特征。表2-1列出了进程和程序之间的主要区别。第第2 2章章 进程管理进程管理 表2-1进程和程序的对比第第2 2章章 进程管理进程管理 2.1.5进程的状态及其变迁进程是一个程序的执行过程,有着走走停停的活动规律。进程的动态性质是由其状态变化决定的。如果一个事物始终处于一种状态,那么它就不再是活动的,就没有生命力了。通常在操作系统中,进程至少要有三种基本状态,这些状态是处理机挑选进程运行的主要因素,所以又称之为进程控制状态。这三种基本状态是:运行态、就绪态和阻塞态(或等待态)。如图2-5所示。第第2
8、 2章章 进程管理进程管理 图2-5进程状态及其变化第第2 2章章 进程管理进程管理 在很多操作系统中,又添加了两种基本状态:创建态和终止态。创建态是指新进程正被创建时的状态,当创建工作完成后它就进入到就绪态。终止态是指进程正常或非正常终止时所处的状态,它的必然结局是从系统中消失。上述五种进程状态及其变迁情况如图2-6所示。第第2 2章章 进程管理进程管理 图2-6进程的五种基本状态第第2 2章章 进程管理进程管理 2.1.6进程的组成进程的活动是通过在CPU上执行一系列程序和对相应数据进行操作来体现的,因此程序和它操作的数据是进程存在的实体。但这二者仅是静态的文本,没有反映出其动态特性。为此
9、,还需要有一个数据结构,用来描述进程当前的状态、本身的特性等。这种数据结构被称为进程控制块(PCB,ProcessControlBlock)。第第2 2章章 进程管理进程管理 程序往往由一系列函数组成。执行函数调用时要保存好调用者的现场信息,以便被调函数完成后能恢复调用者的运行环境。这一系列现场信息要保存在堆栈中,按“后进先出”方式管理。为此,系统要为每个进程设立一个或多个栈。所以进程通常都由程序、栈、数据集合和PCB这四部分组成。图2-7示出进程的物理结构。第第2 2章章 进程管理进程管理 图2-7进程组成第第2 2章章 进程管理进程管理 2.1.7进程控制块进程控制块有时也称为进程描述块(
10、ProcessDescriptor),它是进程映像中最关键的部分,其中含有进程的描述信息和控制信息,是进程动态特性的集中反映,它是系统对进程施行识别和控制的依据。在不同的系统中,PCB的具体组成成分是不同的,在简单操作系统中它较小;而在大型操作系统中它很复杂,设有很多信息项。一般来说,进程控制块应包括如下内容,如图2-8所示。第第2 2章章 进程管理进程管理 图2-8PCB构成第第2 2章章 进程管理进程管理 (1)进程名。它是惟一标志对应进程的一个标志符或数字。(2)特征信息。它包括是系统进程还是用户进程,进程映像是否常驻内存等。(3)进程状态信息。它表明该进程的执行状态,是运行态、就绪态还
11、是阻塞态。(4)调度优先权。这表示进程获取CPU的优先级别。第第2 2章章 进程管理进程管理 (5)通信信息。它反映该进程与哪些进程有什么样的通信关系,如等待哪个进程的信号等。(6)现场保护区。当对应进程由于某个原因放弃使用CPU时,需要把它的一部分与运行环境有关的信息保存起来,以便在重新获得CPU后能恢复正常运行。第第2 2章章 进程管理进程管理 (7)资源需求、分配和控制方面的信息。如进程所需要或占有的IO设备、磁盘空间、数据区等。(8)进程映像信息。指出该进程的程序和数据的存储情况,在内存或外存的地址、大小等。(9)族系关系。它反映父子进程的隶属关系。(10)其他信息。如文件信息、工作单
12、元等。第第2 2章章 进程管理进程管理 2.1.8PCB的组织方式1.线性表方式如图2-9所示,线性表的方式简单,最容易实现。操作系统预先确定整个系统中同时存在的进程最大数目,比如是n,静态分配空间,把所有的PCB都放在这个表中。第第2 2章章 进程管理进程管理 图2-9PCB线性表第第2 2章章 进程管理进程管理 2.链接表方式链接表方式是经常采用的方式。其原理是:按照进程的不同状态分别放在不同的队列中,如图2-10所示。第第2 2章章 进程管理进程管理 图2-10PCB链接表第第2 2章章 进程管理进程管理 3.索引表方式索引表方式是利用索引表记载各种状态进程的PCB地址,如就绪索引表中的
13、表项指向就绪进程PCB的指针,而阻塞表中的表项指向阻塞进程PCB的指针。各索引表的起始地址放在专用的指针单元中,运行进程的PCB由一个专用的运行指针指向。图2-11示出PCB索引表方式。第第2 2章章 进程管理进程管理 图2-11PCB索引表第第2 2章章 进程管理进程管理 2.2 线线 程程2.2.1线程概念1.线程线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。如果把进程理解为在逻辑上操作系统所完成的任务,那么线程表示完成该任务的许多可能的子任务之一。第第2 2章章 进程管理进程管理 2.Thread结构每个线程有一个Thread结构,用于保存与线程有关的信息,主要由以下几个
14、基本部分组成:(1)一个惟一的线程标识符。(2)描述处理器状态的一组状态寄存器的内容,用于调度。(3)每个Thread结构有两个堆栈指针:一个指向核心堆栈,一个指向用户堆栈。(4)一个私有存储区,存放现场保护信息及其他各种统计信息等。第第2 2章章 进程管理进程管理 图2-12Thread结构第第2 2章章 进程管理进程管理 3.带线程的进程模型一个进程可以包含一个或者多个线程,但至少要有一个线程。在传统的进程中就只有一个线程。当一个进程包含多个线程时,各线程除自己有少量私有资源(如程序计数器、寄存器和堆栈)外,要共享所属进程的全部资源(如程序代码、数据和文件等)。图2-13示出单线程和多线程
15、的进程模型。第第2 2章章 进程管理进程管理 图2-13单线程式和多线程式的进程第第2 2章章 进程管理进程管理 4.进程与线程的关系从以上介绍中可以看出,进程和它的线程有如下关系:(1)一个进程可以有多个线程,但至少要有一个线程。(2)进程是资源的拥有者,是分配资源的独立单位;而线程一般不拥有系统资源(仅有一点必不可少的资源),同一进程的所有线程共享该进程的全部资源。(3)在支持线程的操作系统中,线程是调度和分派的基本单位。第第2 2章章 进程管理进程管理 (4)进程可以并发执行。(5)线程在执行过程中往往需要协作同步。(6)在实施创建、撤消和切换等操作时,进程的开销远大于线程的开销。(7)
16、线程和进程一样,都是动态实体,具有不同的状态,如运行态、就绪态、阻塞态和终止态等。第第2 2章章 进程管理进程管理 2.2.2线程的实现方式1.用户级线程在这种方式下,整个管理线程的线程库放在用户空间,对线程从创建到撤消的全部管理工作都由应用程序完成。核心对线程一无所知,只对常规进程实施管理。图2-14(a)示出用户级线程的实现方式。第第2 2章章 进程管理进程管理 图2-14线程的实现方式第第2 2章章 进程管理进程管理 用户级线程实现方式具有以下三个优点:(1)线程切换速度快。(2)调度算法可以是应用程序专用的,不仅最适合自己的需求,而且不干扰底层操作系统的进程调度。(3)用户级线程可运行
17、在任何操作系统上,包括不支持线程机制的操作系统。第第2 2章章 进程管理进程管理 用户级线程方式也存在两个主要缺点:(1)系统调用的阻塞问题。当一个线程执行系统调用时,不仅它自己被阻塞,而且在同一进程内的所有线程都将被阻塞。(2)这种方式下的多线程应用程序不具有多处理的优点。因为核心只为每个进程一次分配一台处理机。第第2 2章章 进程管理进程管理 2.核心级线程在这种方式下,核心知道线程的存在,并对它们实施管理。如图2-14(b)所示。在核心空间中不仅有一个进程表,而且有一个线程表,其中记载系统中所有线程的情况。这样,就由核心统一管理系统中所有的线程。核心进行调度时以线程为基本单位。第第2 2
18、章章 进程管理进程管理 核心级线程的优点是:(1)在多处理器系统中,核心可以同时调度同一进程的多个线程,真正实现并行操作。(2)一个进程的某个线程阻塞了,核心可以调度同一进程的另一个线程运行。核心级线程方式也存在缺点,主要是:(1)线程切换速度慢,控制转移开销大。(2)调度算法由核心确定,应用进程无法影响线程的切换。第第2 2章章 进程管理进程管理 2.3 进进 程程 管管 理理 2.3.1创建进程1.进程图(ProcessGraph)与多数操作系统对进程的管理相似,UNIX系统中各个进程构成了树型的进程族系,如图2-15所示。第第2 2章章 进程管理进程管理 图2-15各个进程构成了树型的进
19、程族系第第2 2章章 进程管理进程管理 2.进程创建过程父进程利用系统调用(如UNIX/Linux系统中的fork)来创建子进程,其主要过程如下:(1)申请一个空闲的PCB。(2)为新进程分配资源。(3)将新进程的PCB初始化。(4)将新进程加到就绪队列中。第第2 2章章 进程管理进程管理 2.3.2终止进程终止进程的主要操作过程是:(1)从系统的PCB表中找到指定进程的PCB。(2)回收该进程所占用的全部资源。(3)若该进程还有子孙进程,则还要终止其所有子孙进程,回收它们所占用的全部资源。(4)释放被终止进程的PCB,并从原来队列中摘走。第第2 2章章 进程管理进程管理 2.3.3更换进程映
20、像改变进程映像的工作很复杂,其主要过程是:(1)释放子进程原来的程序和数据所占用的内存空间;(2)从磁盘上找出子进程所要执行的程序和数据(通常以可执行文件的形式存放);(3)分配内存空间,装入新的程序和数据;(4)为子进程建立初始的运行环境主要是对各个寄存器初始化,返回到用户态,运行该进程的程序。第第2 2章章 进程管理进程管理 2.3.4阻塞进程进程阻塞的过程如下:(1)立即停止当前进程的执行;(2)将现行进程的CPU现场送到该进程的PCB现场保护区中保存起来,以便将来重新运行时恢复此时的现场;第第2 2章章 进程管理进程管理 (3)把该进程PCB中的现行状态由“运行”改为“阻塞”,把它插入
21、到具有相同事件的阻塞队列中;(4)然后转到进程调度程序,重新从就绪队列中挑选一个合适的进程投入运行。第第2 2章章 进程管理进程管理 2.3.5唤醒进程唤醒原语执行过程是:(1)首先把被阻塞进程从相应的阻塞队列中摘下;(2)将现行状态改为就绪态,然后把该进程插入到就绪队列中;(3)如果被唤醒进程比运行进程有更高的优先级,则设置重新调度标志。第第2 2章章 进程管理进程管理 2.4 进进 程程 间间 通通 信信 2.4.1进程间的关系1.同步同步是进程间共同完成一项任务时直接发生相互作用的关系,也就是说,这些具有伙伴关系的进程在执行的时间次序上必须遵循确定的规律。第第2 2章章 进程管理进程管理
22、 2.互斥协同工作的进程之间存在同步关系,但是进程之间更一般的关系是互斥关系,这是由于诸进程共享某些资源而引起的。3.通信进程经常需要与其他进程通信。第第2 2章章 进程管理进程管理 2.4.2竞争条件和临界区1.竞争条件在有些操作系统中,并发进程在活动过程中可能共享一些彼此都能够读写的公用存储区。它可能在内存中,也可能是一个共享文件,其所在位置并不影响问题的实质。下面我们考虑两个进程对一个系统打印机分配表的操作情况。第第2 2章章 进程管理进程管理 假定进程Pa负责为用户进程分配打印机,进程Pb负责释放打印机。由于分配和释放可能同时发生,因此两个进程必须共享一个打印机分配表,如表2-2所示。
23、第第2 2章章 进程管理进程管理 表2-2打印机分配表第第2 2章章 进程管理进程管理 Pa进程分配打印机的过程是:(1)逐项检查分配标志,找出标志为0的打印机号码;(2)把该机的分配标志置1;(3)把用户名和设备名填入分配表中相应位置。第第2 2章章 进程管理进程管理 Pb进程释放打印机的过程是:(1)逐项检查分配表的各项信息,找出标志为1并且用户名和设备名与被释放的名字相同的机号;(2)该机标志清0;(3)清除该机用户名和设备名。第第2 2章章 进程管理进程管理 表2-3打印机分配表(出错情况)第第2 2章章 进程管理进程管理 2.临界区为了使临界资源得到合理使用,就必须禁止两个或两个以上
24、的进程同时进入临界区内,就是说欲进入临界区的若干个进程要满足如下关系:(1)如果有若干进程要求进入临界区,一次仅允许一个进程进入。第第2 2章章 进程管理进程管理 (2)任何时候,处于临界区内的进程不可多于一个。(3)进入临界区的进程要在有限时间内退出,以便其他进程能及时进入自己的临界区。(4)如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。第第2 2章章 进程管理进程管理 2.4.3用锁操作原语实现互斥进程通信是实现进程间同步与互斥的一种机制。这类似于人类社会生活中为表达意见、交流思想、交换信息等而采用多种通信方式,例如,人们打手势、交谈、打电话、写信、发E-mail
25、等,方式有简有繁,当然其功能也有强弱之别。下面分别介绍典型的实现进程同步与互斥的手段。第第2 2章章 进程管理进程管理 为解决进程互斥进入临界区的问题,可为每类临界资源设置一把锁,该锁有打开和关闭两种状态。进程执行临界区程序的操作按下列步骤进行:(1)关锁。先检查锁的状态,如为关闭状态,则等待其打开;如已打开了,则将其关闭,继续执行(2)的操作。(2)执行临界区程序。(3)开锁。将锁打开,退出临界区。第第2 2章章 进程管理进程管理 2.4.4信号量上的P、V操作原语1.信号量(Semaphore)信号量及信号量上的P操作和V操作是E.W.Dijkstra在1965年提出的一种解决同步、互斥问
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 教程 Linux 实例 分析 孟庆昌第 进程 管理
限制150内