您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 《操作系统原理》第二章 进程管理
第二章进程管理在多道程序批处理系统和分时系统中,程序并不能独立运行,操作系统引入进程作为资源分配和独立运行的基本单位,并按照进程的观点进行设计现代操作系统的重要特征:程序的并发性和资源的共享性(这二者是相互联系和相互依赖的。)现代操作系统是围绕进程这个概念设计和构造的。操作系统必须交替执行多个进程,以提高处理器的利用率本章主要内容进程的引入和概念进程的描述:进程状态、PCB进程控制:创建、撤销、阻塞、唤醒…处理机的调度线程的引入进程的引入和概念程序的顺序执行程序:指令或语句序列的集合,体现了某种算法所有程序是顺序的程序的顺序执行:在任何时刻,机器只执行一个操作,只有在前一个操作执行完后,才能执行后继操作。程序的顺序执行例如:一个有四条语句的程序段:S1:a:=x+2;S2:b:=y+4;S3:c:=a+b;S4:d:=c+b;S1S2S3S4程序顺序执行的特征顺序性:处理机的操作严格按照程序所规定的顺序执行,即每一个操作必须在下一个操作之前结束。资源独占性(封闭性):运行程序独占全机资源。系统资源状态由运行的这个程序决定和改变。执行过程中不受外界因素影响。结果无关性(可再现性):程序运行结果与程序执行速度无关,只要环境和初始条件相同,程序重复执行总能得到相同结果。程序顺序执行优缺点优点:由于顺序程度的资源独占性(封闭性)和结果无关性(可再现性),为程序员调试程序带了很大方便缺点:由于资源的独占性,使得系统资源利用率非常低程序并发执行并发处理技术引入:大大提高了计算机的利用率、运行速度和系统的处理能力。程序的并发执行:是指若干个程序(或程序段)同时在系统中运行,这些程序(或程序段)的执行在时间上是重叠的,一个程序(或程序段)的执行尚未结束,另一个程序(或程序段)的执行已经开始。程序并发执行例如:一个有四条语句的程序段:S1:a:=x+2;S2:b:=y+4;S3:c:=a+b;S4:d:=c+b;S1S2S3S4并发执行程序并发执行的特征1、失去了程序的封闭性和可再现性程序在并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性;由于失去了封闭性,也将导致失去其可再现性。程序并发执行的特征例如:程序AL1:N:=N+1;Goto:L1程序BL2:PRINT(N);N:=0;Goto:L2设共享变量N初值为5,则会产生3种执行结果1)6,6,02)5,0,13)5,6,0程序并发执行的特征2、并行执行的程序间产生了相互制约关系因共享资源或协调完成同一任务,使得并发程序之间发生了相互制约关系间接制约关系例:系统中并发执行的程序段A和B在运行过程中都希望使用打印机输出计算结果,若系统只有一台打印机,分得打印机的程序段(假设A得到)可以继续运行,而没有得到打印机的程序段B就不得不暂停,等到有可用打印机时才能继续执行。我们称这种制约关系为间接制约关系产生间接制约关系的原因主要是竞争相同资源程序并发执行的特征直接制约关系是各个并发执行的程序段之间需要协调共同完成同一个任务引起的。例如:ps-ef|grephttpd这两条命令就需要两个程序通过管道实现两者之间协作完成用户希望的工作。在并发环境下程序的执行是间断性的:执行----暂停----执行程序并发执行的特征3、程序与CPU执行活动之间不再一一对应程序:是完成某一特定功能的指令或语句序列,是静态概念CPU执行的活动:是一个动态概念,它是程序的执行过程。程序在顺序执行(即单道运行)时,程序与CPU的活动是一一对应的,而在程序并行执行(即多道程序)时,这种关系不再存在。例:在分时系统中,多个用户都调用C编译对自己的源程序进行编译,实际系统只保留一个编译程序,为多个用户进行编译这里要求编译程序必须是可再入程序(reentrycode)可再入程序具有这样的性质:它是纯代码,即在执行过程中自身不改变。可被多个进程同时调用的程序,调用它的进程应该提供各自独立的数据区。由于并发程序的上述这些特点,使得系统中的活动以及各种活动之间的相互关系非常复杂。“程序”这个静态的概念已不能如实地反映系统中的活动情况。为此,现代操作系统引入了进程的概念进程进程这个概念是为了描述系统中各并发活动而引入的。定义:Process进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位又称任务(Task)进程的特征动态性并发性独立性异步性结构特征进程的特征—动态性进程对应程序的执行,是一个动态的过程。进程是动态产生,动态消亡的。进程在其生命周期:进程由创建而产生,由调度而执行,由撤销而消亡的过程。进程的特征—并发性、独立性、异步性并发性:多个进程同时在内存中,且能在一段时间内同时运行。独立性:进程是一个能独立运行、独立分配资源、独立接受调度的基本单位。例如:各进程的地址空间相互独立异步性:每个进程都以其相对独立的、不可预知的速度向前推进进程的特征—结构特征进程结构特征进程=PCB+程序段+数据段PCB进程控制块程序段数据段动态特征的集中反映描述要完成的功能操作对象及工作区进程和程序的关系1)动态性和静态性进程是一个动态概念,程序是一个静态概念。程序可以作为一种软件资源长期保存进程是把程序作为它的运行实体,没有程序,也就没有进程。可以把程序看做菜谱,而进程则是按照菜谱进行烹饪的过程2)进程控制块进程由:程序+数据+PCB构成进程和程序的关系3)一对多的关系一个程序可对应多个进程,一个进程为多个程序服务4)并发性多个进程实体,能在一段时间内同时执行;而程序无法描述并发执行5)进程具有创建其他进程的功能,而程序没有6)操作系统中的每一个程序都是在一个进程现场中运行的进程分类系统进程是操作系统管理系统资源并行活动的并发软件;用户进程是可以独立执行的用户程序段。系统进程之间的关系由操作系统负责;用户进程之间的关系由用户负责。为便于用户管理自己的任务,操作系统提供了一套简便的任务调用命令作为协调手段。系统进程直接管理有关的软、硬设备的活动;用户进程只能间接和系统资源发生关系系统进程优先级高于用户进程。进程的描述进程控制块进程状态进程的组织进程控制块(ProcessControlBlock)操作系统在管理和控制进程时必须知道什么?1、进程的位置2、进程属性进程控制块:与每个进程相关联的操作系统用于控制进程的所有属性的集合。PCB是进程存在系统中的唯一标识。它包含了进程的描述信息和管理控制信息,是进程动态特性的集中表现。PCB内容1、进程标识符:用于唯一地标识一个进程。外部标识符:由创建者提供,通常是由字母、数字所组成,往往是由用户访问进程时使用,便于记忆。如计算进程、打印进程、发送进程、接收进程等。内部标识符:OS为每一个进程赋予了一个唯一的整数,作为内部标识。父进程标识符、子进程标识符、用户标识符。PCB内容(2)2、进程的状态:说明进程目前所处的状态,进程可能的状态在下一节描述。3、CPU现场保护区:当进程由于某种原因不能继续运行时,要将其CPU运行的现场信息保存起来,以便下次继续运行。通常,CPU的现场信息包括:程序计数器(PC)、工作寄存器、程序状态字等。4、CPU的调度信息:包括进程优先级、进程所在各种队列的指针。5、进程要执行的程序在主存和外存起始地址,及存取保护信息。PCB内容(3)6、进程使用的资源信息:包括分配给进程的I/O设备、正在执行的I/O请求信息、当前进程正打开的文件等。7、记帐信息:包括CPU占用量,实际所用时间量,帐号等。8、进程之间的家族关系:在进程的树型结构系统(如UNIX系统)中,进程之间存在着家族关系。创建进程的进程称为父进程,被创建进程称为子进程。进程的基本状态及其转换(1)进程的三种基本状态:运行状态、就绪状态和阻塞状态进程在生命消亡前处于且仅处于三种基本状态之一不同系统设置的进程状态数目不同进程的基本状态及其转换(2)运行状态:进程占有CPU,并在CPU上运行;在单处理机系统只有一个进程处于执行状态。多处理机系统则有多个处于执行状态就绪状态:进程已经分配了除处理机以外的所有必要资源,只要再获得处理机就能够执行的状态。这样的进程可能有多个,通常排成一个队列,称就绪队列。进程的基本状态及其转换(3)阻塞状态:正在执行的进程由于发生某事件而暂时无法继续运行时,放弃处理机而进入的状态,又称等待状态、封锁态、睡眠态。处于阻塞态的进程在逻辑上是不能运行的,即使CPU空闲,该进程也不可运行引起阻塞的事件:请求I/O,申请缓存等。运行就绪阻塞进程调度程序把处理机分配给进程时间片已用光进程因某事件(I/O,etc)变成堵塞状态某事件被解除(如I/O完成)就绪态--运行态:处于就绪态的某进程被进程调度程序的执行选中时。运行态--阻塞态:是由运行进程自己主动改变的。例:一个正在运行的进程启动了某一外围设备后,等待该外围设备传输完成时,使自己由运行态变为阻塞态。阻塞态--就绪态:是由外界事件引起的。例:上面所述的外围设备传输已经完成时,请求中断,由I/O中断处理程序把因等待这一I/O完成而阻塞的进程变为就绪态由进程状态转换图可以看出:运行态--就绪态:处于运行态的进程被剥夺CPU时。例:采用时间片轮转法调度时,当前运行进程用完分给它的时间片后,将由运行态变为就绪态;或采用优先级调度时,若有更高优先级的进程变为就绪态,当前进程被迫放弃CPU,使自己由运行态变为就绪态,之后转进程调度。由于系统、进程自身和外界的原因,可能使一个进程多次反复地经历三个基本状态的转换,才能最终达到完成而撤消。新状态和终止状态新状态(创建态):刚刚建立,还未送入就绪队列的状态。刚创建,并为它分配资源。终止状态:已正常结束或异常结束,但尚未撤消时。暂留在系统中,以便其它进程去收集该进程的有关信息。创建态—就绪态:OS准备好再接纳一个进程时,把一个进程从新建状态转换到就绪状态。大多数系统基于现有的进程数或分配给现有进程的虚存数量设置一些限制,以确保不会因为活跃进程的数量过多而导致系统的性能下降。进程的五种状态创建态运行态阻塞终止态进程调度被抢占就绪态Fork()接纳进程控制块的组织方式PCB是系统对进程进行统一管理的依据。一个系统可有几十个、几百个PCB。为了便于系统查找,目前常用的组织方式如下:1)线性表方式:将所有进程的PCB组成一个数组,系统通过数组下标访问每一个PCB。其组成方式如下:优点:简单,节省存储空间缺点:查找一个指定的PCB较费时间,平均要花费半个PCB的时间,早期的UNIX系统就是采用这种形式的表PCB(0)PCB(1)PCB(2)……..PCB(n-1)PCB(n)2、链接方式:把具有相同状态的PCB,用其中的连接字,链接成一个队列。每一个队列有一个专用队列指针指出该队列中第一个进程PCB所在位置。这样就形成了就绪队列、阻塞队列。处于就绪态的进程可按照某种策略排成多个就绪队列。处于阻塞态的进程又可以根据阻塞的原因不同组织成多个阻塞队列。例如:等待磁盘I/O队列,等待磁带I/O队列等。PCB14PCB23PCB30PCB4PCB5PCB6PCB7PCB8PCB9PCB10879011执行指针就绪队列指针阻塞队列指针空闲队列指针进程控制进程控制进程控制:指系统使用一些具有特定功能的程序段来创建、撤消进程以及完成进程各状态间转换。这些功能由OS的内核来实现的。原语:由若干条指令组成。这些指令,要么全做,要么全不做,不允许中断。是不可分割的操作。具有原子操作的性质。用于进程控制的原语有:创建原语、撤销原语、阻塞原语、唤醒原语、挂起原语、解挂原语等等创建原语(UNIX系统用fork()系统调用实现进程创建)1、引起创建进程的事件用户登录:在分时系统中,用户在终端键入登录命令后,系统将为该终端用户建立一进程,并把它插入就绪队列。作业调度:在批处理系统中,将作业装入内存时,为它分配必要的资源,系统并立即为它创建进程,再插入就绪队列。
本文标题:《操作系统原理》第二章 进程管理
链接地址:https://www.777doc.com/doc-3291126 .html