第二章进程管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二章进程管理主要内容:•进程的基本概念:进程的定义。进程的组成。进程的状态及变迁。•进程控制。•进程的互斥与同步。重点与难点:进程的同步。§1.进程的基本概念一、为什么要引入进程?1.程序的顺序执行程序的顺序执行过程:若将程序执行视为3类操作:输入(I)、计算(C)和打印(P)组成一个作业序列,则顺序执行多个作业的过程如下:I1C1P1I2C2P3InCnPn作业1作业2作业n每个作业的顺序•••••••••特点:•顺序性:严格按提交的顺序执行;前一步工作完成后,后一步工作才开始。•封闭性:程序一旦执行,其运行的结果不受外界的影响。•可再现性(与时间无关性):程序执行的结果与它的执行速度无关。(与时间无关性),只与初始条件有关。即:相同的初始条件,则重复执行程序,得到的结果是相同的。注:顺序执行程序具有与时间无关性的先决条件是:要求程序自身是封闭的。2、程序的并发执行(1)程序并发执行过程:I1I2I3I4C1C2C3P2P1并发执行:I2和C1,I3、C2和P1,I4、C3和P2(2)并发程序段的语句表示cobegins1;s2;…..;sn;(s1;s2;…..;sn执行次序任意)coend(3)特点a、失去了程序的封闭性和可再现性。运行的结果与并发程序的执行速度有关,即与时间有关;一个程序的执行可能会改变另一个程序的相同变量值。例:程序A程序B••••••••••••N=N+1;PRINT(N);N=0;L2:L1:A、B程序有公共变量N,并发执行的可能过程:①N=N+1→PRINT(N)→N=0②PRINT(N)→N=0→N=N+1③PRINT(N)→N=N+1→N=0设N的初值为N0,则:①N的结果:0;打印值:N0+1。②N的结果:1;打印值:N0。③N的结果:0;打印值:N0。B、程序与计算不再一一对应。C、程序并发执行时有相互制约关系。特别程序有相同的公共变量,或共享一个资源时。引入进程的原因:•提高资源的利用率。•正确地描述程序的执行情况。二、进程的定义1.进程的定义一个程序,在给定的活动空间和初始环境下,在一个处理机上的一次执行过程。2.进程与程序的区别与联系(1)程序是指令的有序集合,本身无任何运行的含义,它是一种静态的概念。进程是程序在cpu上的一次执行过程,它是一种动态的概念。这是它们的本质区别。程序可作为软件资料长期保存。进程有一定的生命期,它可动态地产生和消亡,即:进程可由创建而产生,由调度而执行,因得不到资源而暂停,以致最后由撤销而消亡。(2)进程是一个能独立运行的单位,能与其它进程并发执行。(独立性和并发性)(3)进程是一个竞争系统有限资源的基本单位,也是cpu调度的基本单位。(4)多个不同的进程可以包含相同的程序。即:同一个程序同时运行在不同的数据集合上,他会属于不同的进程。如:一个能被多个用户调用的程序,称为可再入程序(又称:纯代码程序):执行中自身不能改变的程序。如:编译程序,操作系统程序等。3.进程的属性•进程具有动态性。•多个不同的进程可以包含相同的程序。•进程可并发执行。•进程有三种基本状态。三、进程的状态及变迁1.进程的三种基本状态用状态描述进程的活动规律:执行-暂停-准备又执行。(1)进程的三种基本状态进程的三种基本状态:运行状态、就绪状态和等待状态(阻塞状态、封锁状态、睡眠状态)。•运行状态:当进程由进程调度程序调度而获得cpu控制权,其程序正在cpu上执行,此时进程所处的状态。•就绪状态:处于等待cpu队列中的进程,它们一切准备就绪(除cpu外,所需的资源都有了),只欠cpu的状态。•等待状态:正在等待某个事件的完成(如:I/O)。注意:进程在活动时至少要区分这三种状态。复杂的系统还可以设置多种状态:挂起状态、死琐状态、高(低)优先就绪状态等。(2)为什么要将进程区分三种状态?在多道程序运行系统中,cpu和其他资源的数目远远少于进程的数目,往往只有少数的进程才能获得cpu并其上运行,处于运行状态。获不到cpu的进程只有处于就绪状态;因等待除cpu以外的资源的进程就处于等待状态。2.进程状态变迁图进程状态变迁图:结点:表示状态;箭头表示状态变化的方向;箭头旁要标注变迁的原因。如:某个分时系统的进程状态变迁图:运行就绪等待请求系统服务(如:需要I/O)服务完成进程调度时间片到变迁的原因:运行状态→等待状态:等待I/O传输,申请内存空间,程序运行出错,等等。等待状态→就绪状态:I/O传输完成,内存空间获得,程序运行错误处理完成,等等。就绪状态→运行状态:由OS中的进程调度程序,按一定的原则调度就绪队列中进程占用cpu。运行状态→就绪状态:时间片到,高优先进程进入就绪队列,等等。四、进程的组成1.进程的组成三部分组成:数据,程序,进程控制块(PCB)。2.进程控制块进程控制块PCB(ProcessControlBlock)是操作系统为描述进程状态过程所采用的一个与进程相联系的数据结构。•作用:系统通过进程控制块对进程实施控制和管理。当系统创建一个进程时,就建立一个PCB,然后,系统根据进程活动状态通过PCB加以控制,进程完成任务后,由系统回收PCB,进程就消亡了。PCB是系统感知进程存在的唯一实体。•进程的类型:(1)按进程性质系统进程:起着资源管理和控制的作用用户进程:执行用户程序的进程(2)按进程活动特征计算量大的进程I/O量大的进程3.进程控制块(PCB)的一般结构一般包括4类信息:标识信息:说明进程名。说明信息:说明进程的基本情况。现场信息:保存cpu现场信息。管理信息:用于进程调度。五、进程队列将状态相同进程的PCB组成队列链表(单向或双向链表),管理进程。六、进程控制对进程的产生、运行、暂停、终止等操作进行的控制。•进程控制包括:进程创建、进程撤消、进程阻塞、进程唤醒、改变进程优先数、调度进程运行。这些操作都要对应地执行一个特殊的程序段(操作系统核心程序),同时系统也通过系统调用给用户提供进程控制的功能。教材上叫原语(一种特殊的系统调用)。•控制机构:原语原语:是一种特殊的系统调用命令,执行时不可中断。•进程的控制原语:创建原语、撤消原语、阻塞原语、唤醒原语。1.进程创建•创建者:由用户向os请求、或者由os中相关的调度程序(如:作业调度程序)创建。•创建的手段:调用进程创建原语。如UNIX系统中:create(name,priority,start-addr)•创建进程的工作:为程序分配一个工作区、建立PCB、置进程为就绪状态入就绪队列。•导致创建进程的事件:①用户登录:在分时系统中用户登录成功,系统为用户建立一个进程。②作业调度:当作业调度程序调入一个作业到内存,立即为该作业建立对应的进程。③提供系统服务:在程序中,使用系统调用命令请求系统服务,系统专门创建一个进程来满足用户的请求。④应用请求:用户在程序中应用创建进程命令建立进程。2.撤销进程•撤销者:用户用撤销原语撤销进程。如:UNIX中:kill()或exit()。在进程家族中,由父进程撤销子进程。•撤销进程的工作:回收进程占用的资源和PCB,并从相应队列和进程总链中摘除。•导致撤销进程的事件:①正常结束:进程运行完毕。②异常结束:由异常事件引起:越界错误:程序访问超出进程访问区。特权指令错:用户程序使用了特权指令。使用非法指令错、运行超时错、I/O故障错等。③外界干预:操作员干预、os干预、父进程请求等。3.进程的阻塞与唤醒创建原语和撤消原语虽然使进程从产生到消亡,但使进程从运行到阻塞、从阻塞到就绪的状态的过度,可使用两种方法:•直接使用阻塞原语与唤醒原语实现:由os控制。•通过进程的同步机构或通信机构来实现:由程序员在程序中控制。•引起进程的阻塞或唤醒的事件:•请求系统服务•启动某个操作:如启动I/O后进程被阻塞,I/O完成后被唤醒。•新数据未达到:合作进程之间,一个进程未收到另一进程的信息,则等待。收到被唤醒。•无新工作可做:系统进程完成任务后,无新工作可做,将自己阻塞,等待新工作的到来。(1)进程的阻塞当进程所期待的某个事件尚未出现时,该进程调用阻塞原语将自己阻塞。阻塞进程的工作:中断cpu;置进程为阻塞状态;保留cpu现场于保护区;将进程的PCB插入到等待队列中,转进程调度程序调度另一进程运行。(2)进程的唤醒进程所期待的某个事件出现时,由“发现者”进程调用唤醒原语唤醒该进程。唤醒进程的工作:将进程移出等待队列;置进程状态为“就绪”;将进程入就绪队列。§2.UNIX系统的进程一、UNIX的进程组成三部分组成:进程控制块、正文段和数据段。1.进程控制块组成:基本控制块和扩充控制块目的:节省PCB占用内存。(1)基本进程控制块proc结构:存放进程的最基本的控制和管理信息,不论该进程是否处于运行状态,系统都要访问的信息,必须常驻内存;如:进程标识信息、状态、优先数、代码长度等。(2)扩充进程控制块user结构:存放进程的管理和控制信息,这些信息只有当进程处于运行状态时,系统才访问,不一定常驻内存。如:进程调度、用户管理、进程图像管理、文件系统、缓冲区等信息。2.正文段(共享正文段)可为多个进程共享的程序称为进程的正文段。作为正文段的程序必须是可重入的。如:编译程序等。利用text表管理正文段,text表目的内容:正文段在内存和磁盘上的位置、大小和调度该段的进程数等。3.数据段包括:用户栈、用户数据区、核心栈和user结构。4.UNIX系统进程数据结构(1)proc结构,在UNIX系统的/sys/proc.h文件中;(2)user结构,在UNIX系统的/sys/user.h文件中;(3)text结构(用来管理正文段的数据结构)text结构在UNIX系统的/sys/text.h文件中进程图像:可在内外存调进调出。二、UNIX进程状态及变迁1.UNIX进程状态(1)两种运行状态:核心态:指进程正在执行UNIX核心程序;用户态:指进程正在执行用户程序;(2)就绪状态:分为内存就绪状态和外存就绪状态。内存就绪状态:处于就绪状态的进程,进程图像在内存。一旦调度,便可运行。外存就绪状态:处于就绪状态的进程,进程图像在外存。必须先由“对换进程”(0号进程),把它调入内存,然后调度才能执行。(3)睡眠状态(阻塞或等待)(4)创建状态:父进程调用fork()创建子进程。(5)僵死状态:子进程等待父进程进行善后处理的状态。用户态运行核心态运行中断自陷及返回中断自陷中断自陷中断自陷及返回内存睡眠外存睡眠换出内存就绪外存就绪换进换出被抢占sleepwakeupwakeupswith创建有内存无内存fork僵死exit2.UNIX系统的进程状态变迁图UNIX进程树•0进程:系统初启时由系统初启程序建立,完成系统初启的相应工作后,创建1进程;然后的工作有两项,其一是进程交换(进程图象的管理);其二是进程切换(进程调度)。•1进程:为系统的每个联机终端创建一个终端进程,然后就做托管工作。•2、3、…、n、n+1进程:终端进程,执行程序是shell,该进程执行是接受和执行用户键入的shell命令,或shell命令程序。•用户创建的进程:用户的shell命令或shell程序所创建的进程;用户在其程序中创建的进程。三、UNIX系统的进程控制1.进程的创建与终止(1)进程的创建在UNIX环境中,除0号进程外,所有进程都是调用fork()创建的。调用fork的进程是父进程,而新创建的进程是子进程。调用fork的三种情况:a.在shell键人一个shell命令,在shell中会调用fork为键入的命令创建一个进程;b.在用户程序中调用fork系统调用创建一个进程;c.执行shell程序(在linux称为脚本)时,在shell中会调用fork创建进程。(2)进程终止与等待进程终止exitUNIX系统中当一个进程完成了它的使命后,将调用系统调用exit来终止运行。每个终止的进程转换成僵死状态,释放它占用的资源,撤消进程图象,但保留进程的proc结构。进程等待wait:父进程利用wait命令,等待子进程终止。2.进程睡眠与

1 / 75
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功