《操作系统课件:Lecture4 进程描述与状态》由会员分享,可在线阅读,更多相关《操作系统课件:Lecture4 进程描述与状态(46页珍藏版)》请在金锄头文库上搜索。
1、Lecture4:进程表示与进程进程表示与进程状态变化状态变化目的与要求目的与要求: :理解进程概念理解进程概念, ,掌握进程在系掌握进程在系统中的表示方法,理解进程的创建及其统中的表示方法,理解进程的创建及其状态变化。状态变化。重点与难点:重点与难点:进程表示与进程创建进程表示与进程创建, ,状态转状态转换。换。操作系统中最核心的概念是操作系统中最核心的概念是进程进程:对正:对正在运行程序的一个抽象。在运行程序的一个抽象。操作系统的其他所有内容都是围绕着操作系统的其他所有内容都是围绕着进进程程的概念展开的。的概念展开的。在一个多道程序设计系统中,在一个多道程序设计系统中,CPUCPU在各在各
2、进进程程之间切换。之间切换。处理机管理处理机管理进程管理进程管理1. 1. 为什么要引入进程的概念?为什么要引入进程的概念?程序的顺序执行:程序的顺序执行:在任何时刻,机器只执行一在任何时刻,机器只执行一个操作,只有在前一个操作执行完后,才能执个操作,只有在前一个操作执行完后,才能执行后继操作。行后继操作。例:例:作业作业i i的输入操作、计算操作和打印操作分的输入操作、计算操作和打印操作分别用别用I Ii i、C Ci i、P Pi i表示。则顺序执行过程为:表示。则顺序执行过程为:I1I2I3P1C1P2P3C2C3程序的顺序执行程序的顺序执行S1: a = x+y;S2: b = a-5
3、;S3: c = b+1;程序语句的顺序执行程序语句的顺序执行程序顺序执行特点:程序顺序执行特点:l顺序性顺序性l资源独占性,封闭性资源独占性,封闭性 程序在运行时独占全机资源。因此,这些资源的状态程序在运行时独占全机资源。因此,这些资源的状态只能由这个运行的程序决定和改变。只能由这个运行的程序决定和改变。l可再现性可再现性 只要初始条件相同,无论程序是连续运行,还是断断只要初始条件相同,无论程序是连续运行,还是断断续续地运行,程序的执行结果与其执行速度无关。续续地运行,程序的执行结果与其执行速度无关。优点:优点: 由于顺序程序的封闭性和可再现性,由于顺序程序的封闭性和可再现性, 为程序员调试
4、程序带来了很大方便。为程序员调试程序带来了很大方便。缺点:缺点: 由于资源的独占性,使得系统资源由于资源的独占性,使得系统资源利用率非常低。利用率非常低。多道程序设计:多道程序设计:同一时刻内存中存放了多个作同一时刻内存中存放了多个作业,处理器交替运行不同的作业。提高了系统业,处理器交替运行不同的作业。提高了系统的效率,尤其是资源利用率。的效率,尤其是资源利用率。特点:特点:l多道多道l宏观上并行宏观上并行l微观上串行微观上串行 问题问题l系统管理复杂化系统管理复杂化程序的并发执行:程序的并发执行:计算机同时运行几个程序计算机同时运行几个程序, , CPUCPU要不断地在几个程序之间切换。要不
5、断地在几个程序之间切换。程序程序A程序程序BCPUI/Otime资源资源例例: : 作业作业i i的输入、计算和输出操作分别用的输入、计算和输出操作分别用I Ii i、C Ci i、P Pi i表示。表示。虽然同一作业中的输入、计算和输出必须顺虽然同一作业中的输入、计算和输出必须顺序执行序执行,但对一批作业而言,情况就不同了。,但对一批作业而言,情况就不同了。I1I2I3I4P1C1P2P3C2C3P4C4并发执行并发执行并发执行并发执行程序并发执行带来的新特征程序并发执行带来的新特征:l资源共享性,失去了封闭性;资源共享性,失去了封闭性; 在并发执行时,多个程序共享系统中的各种资源,因而在并
6、发执行时,多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。了封闭性。l制约性;制约性; 因共享资源或协调完成同一任务而引起的。因共享资源或协调完成同一任务而引起的。l程序执行的间断性;程序执行的间断性;l结果不可再现。结果不可再现。例例: : 有程序有程序A A和和B B,共享一个变量,共享一个变量N N。以不同。以不同的速度运行。的速度运行。 program A: program B:S1: N = 1 ; S3: N = 0 ; S2: N=N+1; print(N); S1S1, ,S2S
7、2和和S3S3的运行顺序的运行顺序 print(N)print(N)S1-S2-S3 S1-S2-S3 0 0S1-S3-S2 S1-S3-S2 1 1S3-S1-S2 S3-S1-S2 2 2a = n /n表示剩余的票数表示剩余的票数if (a=1) a = a-1; /售出一张票售出一张票 n = a; a = n /n表示剩余的票数表示剩余的票数if (a=1) a = a-1; /售出一张票售出一张票 n = a; 因为这种错误和相对执行因为这种错误和相对执行速度有关,因此称为与时速度有关,因此称为与时间有关的错误。间有关的错误。服务器服务器售票员售票员A售票员售票员B分时系统分时系
8、统结论:结论: 程序的并发执行使得程序的执行情况不可预见,其程序的并发执行使得程序的执行情况不可预见,其结果不再唯一,成为一个动态的过程。而程序是一结果不再唯一,成为一个动态的过程。而程序是一个静态的概念,不再能切实反映程序执行的各种特个静态的概念,不再能切实反映程序执行的各种特征(独立性、并发性、动态性)。征(独立性、并发性、动态性)。“进程进程”MITMIT:6060年代初,年代初,MULTICSMULTICS系统中提出;系统中提出;IBMIBM:CTSS/360CTSS/360系统,系统,LinuxLinux系统等称为系统等称为“任务任务”(task)(task)。进程的概念进程的概念是
9、为了描述系统中各并发活动而引入的。是为了描述系统中各并发活动而引入的。较典型的进程定义有:较典型的进程定义有: (1) 进程是程序的一次执行。进程是程序的一次执行。 (2) 进程是一个程序及其数据在处理机上顺序执行时进程是一个程序及其数据在处理机上顺序执行时所发生的活动。所发生的活动。 (3) 进程是程序在一个数据集合上运行的过程,它是进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。系统进行资源分配和调度的一个独立单位。 我们可以把传统我们可以把传统OSOS中的进程定义为:中的进程定义为:“进进程是程序的运行过程,是系统进行资源分配和调度的程是程序的运行过程,是
10、系统进行资源分配和调度的一个独立单位一个独立单位”。 进程具有的特性进程具有的特性动态性动态性。进程是程序的一次执行过程,是临时的,。进程是程序的一次执行过程,是临时的,有生命期的。有生命期的。独立性独立性。进程是系统进行资源分配和调度的一个独。进程是系统进行资源分配和调度的一个独立单位。立单位。并发性并发性。多个进程可在处理机上交替执行。多个进程可在处理机上交替执行。结构性结构性。系统为每个进程建立一个进程控制块。系统为每个进程建立一个进程控制块。内存内存进程与程序的区别和联系进程与程序的区别和联系(1 1)程序是静态的,进程是动态的。程序是有序)程序是静态的,进程是动态的。程序是有序代码的
11、集合;进程是程序的一次执行。代码的集合;进程是程序的一次执行。(2 2)进程是暂时的,程序的永久的。进程是一个)进程是暂时的,程序的永久的。进程是一个变化的过程,有生命周期,暂时存在,程序没变化的过程,有生命周期,暂时存在,程序没有生命周期,可长久保存。有生命周期,可长久保存。(3 3)进程是操作系统资源分配和保护的基本单位,)进程是操作系统资源分配和保护的基本单位,程序没有此功能。程序没有此功能。(4 4)进程与程序的对应关系。通过多次执行,一)进程与程序的对应关系。通过多次执行,一个程序可对应多个进程;通过调用关系,一个个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。进程可包括
12、多个程序。进程可创建其他进程,进程可创建其他进程,而程序并不能形成新的程序。而程序并不能形成新的程序。(5 5)进程与程序的结构不同,进程包括程序、数)进程与程序的结构不同,进程包括程序、数据、进程控制块。据、进程控制块。磁盘磁盘2.2.进程的描述进程的描述进程的组成:进程的组成: Process Control Block Process Control Block 灵魂,进程存在的唯一标志灵魂,进程存在的唯一标志。 程序:程序:描述了进程要完成的功能,是描述了进程要完成的功能,是 进程执行时不可修改的部分。进程执行时不可修改的部分。 数据:数据:进程执行时用到的数据(用进程执行时用到的数据
13、(用 户输入的数据、常量、静态变量)。户输入的数据、常量、静态变量)。 工作区:工作区:参数传递、系统调用时使参数传递、系统调用时使 用的动态区域(堆栈区)。用的动态区域(堆栈区)。实体实体进程映像进程映像:进程执行程序:进程执行程序, ,数据数据, ,栈。进程映像栈。进程映像如何存放在内存取决于存储管理机制。如何存放在内存取决于存储管理机制。进程控制块进程控制块PCBPCB:系统管理控制进程运行用的信:系统管理控制进程运行用的信息集合(含核心栈)。息集合(含核心栈)。用户空间用户空间系统空间系统空间进程组成结构进程组成结构进程控制块(进程控制块(PCB)定义:定义:是操作系统用来记录进程详细
14、状态和相关是操作系统用来记录进程详细状态和相关信息的基本数据结构,它和进程是一一对应的,信息的基本数据结构,它和进程是一一对应的,是进程存在的唯一标识。是进程存在的唯一标识。作用:作用:提供进程的各种信息,以便操作系统控制提供进程的各种信息,以便操作系统控制和管理和管理。类型类型内容内容作用作用标识信息标识信息1 1)进程标识)进程标识2 2)用户标识)用户标识3 3)父进程标识)父进程标识标识一个进程标识一个进程现场信息现场信息1 1)CPUCPU通用寄存器内容通用寄存器内容2 2)CPUCPU控制和状态寄存器内容控制和状态寄存器内容3 3)堆栈指针等)堆栈指针等记录处理机现场记录处理机现场
15、信息,以备恢复信息,以备恢复之用之用控制信息控制信息1 1)进程状态)进程状态2 2)调度信息)调度信息3 3)队列指针)队列指针4 4)位置信息)位置信息5 5)资源占用信息)资源占用信息用于进程的调度用于进程的调度管理管理PCBPCB结构结构PCBPCB含有三大类信息描述:含有三大类信息描述:进程标识信息进程标识信息。如本进程的标识;本进程的产。如本进程的标识;本进程的产生者标识生者标识( (父进程标识父进程标识) );进程所属用户标识。;进程所属用户标识。处理机状态信息保存区处理机状态信息保存区( (栈式结构栈式结构) )。实质就是。实质就是核心栈。保存进程的运行现场信息:核心栈。保存进
16、程的运行现场信息: 通用寄存器通用寄存器。这是指任何程序都可以使用的。这是指任何程序都可以使用的数据、地址寄存器。数据、地址寄存器。控制和状态寄存器控制和状态寄存器。如程序计数器。如程序计数器(PC)(PC);处理;处理机状态字机状态字(PS)(PS) 进程控制信息进程控制信息调度和状态信息调度和状态信息,用于操作系统调度进程占用处理,用于操作系统调度进程占用处理机。机。 进程间通讯信息进程间通讯信息,为支持进程间的通讯相关的各种,为支持进程间的通讯相关的各种标识,信号,信件等,这些信息存在接收方的进程标识,信号,信件等,这些信息存在接收方的进程控制块中。控制块中。存储管理信息存储管理信息。包
17、含有指向本进程映像存储空间的。包含有指向本进程映像存储空间的数据结构。数据结构。进程所用资源进程所用资源。说明由进程打开,使用的系统资源,。说明由进程打开,使用的系统资源,如打开的文件等。如打开的文件等。有关数据结构链接信息有关数据结构链接信息,进程可以链接到一个进程,进程可以链接到一个进程队列中,或链接到相关的其它进程队列中,或链接到相关的其它进程PCBPCB。UnixUnix:struct struct procproc ; LinuxLinux: struct struct task_structtask_struct ;Windows NT/2000/XPWindows NT/2000
18、/XP执行体进程块(执行体进程块(EPROCESSEPROCESS)包含了管理地址空间的域、跟踪分配给进程资源包含了管理地址空间的域、跟踪分配给进程资源的域等,基本信息同的域等,基本信息同LinuxLinux进程描述符。进程描述符。EPROCESSKPROCESSETHREADKTHREAD内核实现线程调度,调度信息在内核实现线程调度,调度信息在KTHREADKTHREAD结构中结构中实例实例操作系统对操作系统对PCBPCB的管理:集中统一管理的管理:集中统一管理内存内存PCB表表PCBPCBPCBPCB辅存辅存非常驻信息非常驻信息非常驻信息非常驻信息非常驻信息非常驻信息非常驻信息非常驻信息3
19、.3.进程的状态进程的状态进程的创建进程的创建操作系统为进程创建进程控制块和分配地址空间的操作系统为进程创建进程控制块和分配地址空间的过程就是进程创建的过程。过程就是进程创建的过程。 创建进程标识创建进程标识 分配内存和其它资源分配内存和其它资源初始化进程控制块初始化进程控制块将创建的进程置于就绪队列将创建的进程置于就绪队列 PCBPCBPCBPCB就绪队列就绪队列进程创建处理过程大致为:进程创建处理过程大致为:接收进程运行所需参数:如初始优先级,执行接收进程运行所需参数:如初始优先级,执行程序描述及输入参数,其它资源等参数。程序描述及输入参数,其它资源等参数。请求分配进程描述块请求分配进程描
20、述块PCBPCB空间,得到一个内部空间,得到一个内部数字进程标识。数字进程标识。用传来的参数初始化用传来的参数初始化PCBPCB表。表。产生用于描述进程空间的数据结构,用初始执产生用于描述进程空间的数据结构,用初始执行文件初始化进程空间,建立程序段,数据段、行文件初始化进程空间,建立程序段,数据段、用户栈段等。用户栈段等。进程的创建与结束等系统调用进程的创建与结束等系统调用用进程运行输入参数等设置处理机现场保护区,用进程运行输入参数等设置处理机现场保护区,造一个进程运行栈帧。造一个进程运行栈帧。置好父进程等关系域。置好父进程等关系域。 将进程置成就绪状态。将进程置成就绪状态。将将PCBPCB表
21、挂入就绪队列,等待时机被调度运行。表挂入就绪队列,等待时机被调度运行。进程结束大致处理过程如下:进程结束大致处理过程如下:将进程状态改到结束状态;将进程状态改到结束状态;关闭所有打开文件、设备;关闭所有打开文件、设备;释放进程程序文件和其他资源;释放进程程序文件和其他资源;进行相关信息统计;进行相关信息统计;清理其相关进程的链接关系,如在清理其相关进程的链接关系,如在LinuxLinux中,将中,将该结束进程的所有子进程链到该结束进程的所有子进程链到1 1号进程,作为号进程,作为1 1号进程的子进程,并通知父进程自己已结束;号进程的子进程,并通知父进程自己已结束;释放进程映像空间;释放进程映像
22、空间;释放进程控制块释放进程控制块(PCB)(PCB);调进程调度与切换程序。调进程调度与切换程序。进程等待系统调用进程等待系统调用如如waitpid(pid,&statloc,opts)waitpid(pid,&statloc,opts)系统调用。系统调用。 进程发出此系统调用阻塞于内核等待进程发出此系统调用阻塞于内核等待pidpid所所指进程运行结束。指进程运行结束。进程的状态进程的状态l进程在其生命期内一直处在进程在其生命期内一直处在一个状态不断变化一个状态不断变化的过程的过程中。为了刻画这种变化过程,操作系统中。为了刻画这种变化过程,操作系统把进程分成若干种状态,并约定各种状态之间把进
23、程分成若干种状态,并约定各种状态之间的转换条件。的转换条件。l状态信息记录在进程的状态信息记录在进程的PCBPCB结构结构中。中。进程的执行进程的执行运行运行Running被调度被调度时间片用完,时间片用完,中断中断资源释放或资源释放或事件完成事件完成阻塞阻塞Blocked等待资源和等待资源和事件事件进程占有处理机,处理机正在执行该进进程占有处理机,处理机正在执行该进程的程序。程的程序。进程已获得除处理机外进程已获得除处理机外的所需资源,等待分配的所需资源,等待分配处理机执行。处理机执行。也叫等待、挂起、睡眠态,此时进也叫等待、挂起、睡眠态,此时进程因等待某种条件(如程因等待某种条件(如I/O
24、操作或进操作或进程同步)无法运行。引起进程阻塞程同步)无法运行。引起进程阻塞的原因很多,系统将根据不同的阻的原因很多,系统将根据不同的阻塞原因将进程插入某个相应的阻塞塞原因将进程插入某个相应的阻塞队列中。队列中。就绪就绪Ready进程状态转换及原因进程状态转换及原因状态转换状态转换原因原因就绪就绪运行运行进程被调度程序选中占用进程被调度程序选中占用CPUCPU。运行运行阻塞阻塞进程出让进程出让CPUCPU,等待系统分配资源或某些事件的,等待系统分配资源或某些事件的发生,如:暂时不能访问某一资源,操作系统尚发生,如:暂时不能访问某一资源,操作系统尚未完成服务,系统正在初始化未完成服务,系统正在初
25、始化I/OI/O设备,等待用设备,等待用户的输入信息等。户的输入信息等。阻塞阻塞就绪就绪处于等待队列中的进程,当其等待的事件已经发处于等待队列中的进程,当其等待的事件已经发生,或等待的资源可用时,此进程将进入就绪队生,或等待的资源可用时,此进程将进入就绪队列竞争列竞争CPUCPU。运行运行就绪就绪进程分配的时间片已用完,或者在中断机制下,进程分配的时间片已用完,或者在中断机制下,有更高优先级的进程进入系统,这时进程进入就有更高优先级的进程进入系统,这时进程进入就绪队列等待下一次被选中而占用绪队列等待下一次被选中而占用CPUCPU。运行状态运行状态(Running)(Running):当一个进程
26、正在处理机上运:当一个进程正在处理机上运行时。行时。就绪状态就绪状态(Ready)(Ready):一个进程获得了除处理机之外:一个进程获得了除处理机之外的一切所需资源,一旦得到处理机即可运行的一切所需资源,一旦得到处理机即可运行. .阻塞状态又称等待状态阻塞状态又称等待状态(Blocked)(Blocked):一个进程正在:一个进程正在等待某一事件而暂停运行时,如等待某资源成为可等待某一事件而暂停运行时,如等待某资源成为可用,等待输入用,等待输入/ /输出完成。输出完成。创建状态创建状态(New)(New):一个进程正在被创建,还没到转:一个进程正在被创建,还没到转到就绪状态之前的状态。到就绪
27、状态之前的状态。结束状态结束状态(Exit)(Exit):一个进程正在从系统中消失时的:一个进程正在从系统中消失时的状态,这是因为进程结束或其它原因终止所导致。状态,这是因为进程结束或其它原因终止所导致。运行运行就绪就绪阻塞阻塞被调度被调度时间片用完,时间片用完,中断中断资源释放或事件完资源释放或事件完成成等待资源等待资源和事件和事件新建新建创建完毕创建完毕结束结束结束执行结束执行五种进程状态转换五种进程状态转换可能的状态变化如下:可能的状态变化如下:空空创建:创建:一个新进程被产生来执行一个一个新进程被产生来执行一个程序。程序。创建创建就绪:就绪:当进程被创建完成,初始化当进程被创建完成,初
28、始化后,一切就绪准备运行时变到就绪态。后,一切就绪准备运行时变到就绪态。就绪就绪运行:运行:处于就绪状态的进程被进程调度处于就绪状态的进程被进程调度程序选中后,在处理机上运行。程序选中后,在处理机上运行。运行运行结束:结束:当进程指示它已经完成或者因错当进程指示它已经完成或者因错终止,当前运行进程会由操作系统作结束处理。终止,当前运行进程会由操作系统作结束处理。运行运行就绪:就绪:进程在其运行过程中,分给它的进程在其运行过程中,分给它的处理机时间片用完而让出处理机处理机时间片用完而让出处理机; ;在可剥夺的操在可剥夺的操作系统中,当有更高优先级的进程就绪,在准作系统中,当有更高优先级的进程就绪
29、,在准备从内核返回用户态运行时运行调度程序可以备从内核返回用户态运行时运行调度程序可以将正运行进程从运行状态改变为就绪状态,让将正运行进程从运行状态改变为就绪状态,让更高优先级进程运行。更高优先级进程运行。运行运行阻塞:阻塞:当进程请求某样东西且必须等待当进程请求某样东西且必须等待时,如,当进程请求操作系统服务,而操作系时,如,当进程请求操作系统服务,而操作系统得不到所需的资源,或进程请求一个输入统得不到所需的资源,或进程请求一个输入/ /输出操作,操作系统已启动外设,但输入输出操作,操作系统已启动外设,但输入/ /输输出尚未完成,或进程要与其它进程通讯,要接出尚未完成,或进程要与其它进程通讯
30、,要接收对方还未发出的信件时进程都会被阻塞。收对方还未发出的信件时进程都会被阻塞。阻塞阻塞就绪:就绪:当进程要等待事件到来时,它从当进程要等待事件到来时,它从阻塞变到就绪。阻塞变到就绪。进程的组织进程的组织(1 1)线性表组织方式)线性表组织方式:把所有进程的:把所有进程的PCBPCB存放在一存放在一个数组中,系统通过数组下标访问每个个数组中,系统通过数组下标访问每个PCBPCB。 PCB(0)PCB(0) PCB(1)PCB(1) PCB(2)PCB(2). . PCB(n-1)PCB(n-1) PCB(n)PCB(n)进程控制块采用线性表管理进程控制块采用线性表管理(2 2)链链表表组组织
31、织方方式式:把把具具有有相相同同状状态态的的PCBPCB组组成一个队列。成一个队列。 处处于于就就绪绪态态的的进进程程可可按按照照某某种种策策略略排排成成多多个就绪队列。个就绪队列。 处处于于阻阻塞塞态态的的进进程程又又可可以以根根据据阻阻塞塞的的原原因因不不同同组组织织成成多多个个阻阻塞塞队队列列。如如,等等待待磁磁盘盘I/OI/O队列,等待磁带队列,等待磁带I/OI/O队列等。队列等。接收进程接收进程就绪队列就绪队列1 1就绪队列就绪队列2 2.就绪队列就绪队列n n超时超时事件事件1 1发生发生事件事件2 2发生发生等事件等事件1 1等事件等事件2 2.处理机处理机终止进程终止进程事件事
32、件m m发生发生等事件等事件m m状态表示方法状态表示方法: :系统专门设置一个指针指向系统专门设置一个指针指向当前运行进程当前运行进程的的PCBPCB。UNIXUNIX系统中就有一个系统中就有一个CURPROCURPRO指针,指向当前运指针,指向当前运行进程的行进程的PCBPCB。索索引引方方式式:系系统统根根据据进进程程的的状状态态,建建立立几几张张索索引引表表,并并把把索索引引表表在在内内存存的的首首地地址址记记录录于于内内存存中中一一些些专专用单元。用单元。进程挂起进程挂起 进进程程在在挂挂起起(SuspendSuspend)状状态态意意味味着着进进程程没没有有占占用用内内存存空空间间,处处在在挂挂起起状状态态的的进进程程映映像像在在磁盘上。磁盘上。七种进程状态转换七种进程状态转换解挂解挂进程描述进程描述l进程定义进程定义l进程控制结构进程控制结构进程状态进程状态l进程的创建与结束进程的创建与结束l进程状态变化模型进程状态变化模型l进程挂起进程挂起 主要内容总结主要内容总结