《计算机操作系统》由会员分享,可在线阅读,更多相关《计算机操作系统(72页珍藏版)》请在金锄头文库上搜索。
1、第四章 进程及进程管理,4.1 进程的引入 4.2 进程的基本概念 4.3 进程控制 4.4 进程之间的约束关系 4.5 进程同步机制 4.6 进程互斥与同步的实现 4.7 进程通信 4.8 线程概念及特点,4.1 进程的引入,所谓进程,就是一个程序在给定活动空间和初始环境下,在一个处理机上的执行过程。 为了进一步说明进程的概念,为什么要引入进程,首先来讨论程序的执行。,程序的执行 程序的执行有两种方式:顺序执行和并发执行。 顺序执行是一个计算由若干个操作组成,若这些操作必须按照某种先后顺序来执行,以保证操作的结果是正确的的过程。 并发执行是一组逻辑上相互独立的程序或程序段在执行过程中,其执行
2、时间在客观上相互重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。,程序顺序执行时的前驱图,对于一个程序段中的多条语句来说,也有一个执行顺序的问题。如果对于下述三条语句的程序段: S1: axy S2: ba5 S3: Cb1 (其中S2必须在a被赋值以后才能执行;同样S3也只能在b被赋值 以后才能执行),顺序程序的特点,顺序执行是单道批处理系统的执行方式,也用于简单的单片机系统, 顺序程序具有顺序性,封闭性,可再现性三个特点。顺序性处理机的操作,严格按照程序所规定的顺序执行,即只有前一操作结束后,才能执行后继操作。,封闭性:独占全部资源,计算机的状态只由于该程序的控
3、制逻辑所决定 可再现性:初始条件相同则结果相同。如:可通过空指令控制时间关系,顺序程序的特点,并发程序的执行图,程序并发执行时的前驱图,多道程序的并发执行,计算机能够同时处理多个具有独立功能的程序(批处理系统,分时系统、实时系统、网络与分布式系统)。这样的执行环境具有三个特点: 独立性 随机性 资源共享,程序并发执行时的特征,间断性 程序在并发执行时,由于它们共享资源或为完成某一项任务而合作,致使在并发程序之间存在相互制约的关系。 失去封闭性程序在并发执行时,是多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去了封闭性。不可再现性 程序在并发执行时,由于失去
4、了封闭性,也导致 失去了可再现性。,程序顺序执行、并发执行特征比较,程序的顺序执行 1 顺序性 2 封闭性 3 可再现性,程序的并发执行1 间断性 2 失去封闭性 3 不可再现性,4 .2 进程的基本概念,进程有许多各式各样的定义 (1)进程是可以并发执行的计算部分 (2)进程是一个独立的可以调度的活动 (3)进程是一个抽象的实体,当它执行某个 任务时,将要分配和释放各种资源 (4)行为的规则叫程序,程序在处理机上执行的活动称为进程。 (5)一个进程是一系列逐一执行的操作,而操作的确切含义则有赖于以何种详尽程度来描述进程。,我国对进程的定义,进程:一个具有独立功能的程序关于某个数据集合的一次运
5、行过程。- 在处理机上的执行过程和分配资源的基本单位。-在这里,程序指一组操作序列,而数据集则是接受程序规定操作的一组存储单元的内容。,进程的三种状态,运行状态:进程正在处理机上运行的状态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机上运行。 阻塞状态:进程等待某种事件完成(例如,等待输入/输出操作的完成)而暂时不能运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不能运行。 就绪状态:该进程运行所需的一切条件都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处理机资源,一旦获得处理机就立即投入运行。,进程的三种状态转换,就
6、绪-执行 执行-就绪 执行-阻塞 阻塞-就绪,进程的特征,动态性:进程具有动态的地址空间(数量和内容),地址空间上包括: 代码(指令执行和CPU状态的改变) 数据(变量的生成和赋值) 系统控制信息(进程控制块的生成和删除) 独立性:各进程的地址空间相互独立,除非采用进程间通信手段; 并发性、异步性:“虚拟“,结构化:代码段、数据段和核心段(在地址空间中);程序文件中通常也划分了代码段和数据段,而核心段通常就是OS核心(由各个进程共享,包括各进程的PCB),进程与程序的区别和相互关系,联系: 程序是构成进程的组成部分之一。一个进程的运行目标就是执行它所对应的程序,如果没有程序,进程就失去了其实际
7、存在的意义。 从静态的角度看,进程是由程序、数据和进程控制块(PCB)三部分组成。,程序是静态的,而进程是动态的; 程序的存在是永久的,进程的存在是暂时的,动态的产生和消亡;,一个进程可以执行一个或几个程序,一个程序亦可以构成多个进程;进程具有创建其它进程的功能,区别:,进程控制块,为了描述一个进程和其他进程,以及系统 资源的关系,为了刻画一个进程在各个不同时期所处的状态,人们采用了一个与进程相联系的数据块,称为进程控制块(简称PCB),PCB是进程存在的唯一标志。,进程控制块的作用,进程控制块是进程存在的标志,当系统或父进程创建一个进程时,实际上就是为其建立一个进程控制块。 进程控制块既能标
8、识进程的存在,又能刻画出进程的动态特征,它是一个进程仅有的被系统真正感知的部分。对操作系统而言,所有进程控制块将构成并发执行控制和维护系统工作的依据。,进程控制块中的信息,a.进程标识符 内部标识符。主要是为了方便系统使用。在所有的操作系统中,都为每一个进程赋予一个惟一的数字标识符,它通常是一个进程的序 外部标识符。它由创建者提供,通常是由字母、数字组成,往往是由用户(进程)在访问该进程时使用。,b.处理机状态 通用寄存器 :用户程序可以访问的,存放信息。 指令计数器,存放要访问的下一条指令的地址; 程序状态字PSW,其中含有状态信息,如条件码、执行方式、 中断屏蔽标志等; 用户栈指针,指每个
9、用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。 ,c.进程调度信息 进程状态,指明进程的当前状态,作为进程调度和对换时的依据;进程优先级,用于描述进程使用处理机的优先级别的一个整数, 优先级高的进程应优先获得处理机;进程调度所需的其它信息;事件,是指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。 ,d.进程控制信息 程序和数据的地址 进程同步和通信机制; 资源清单,是一张列出了除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单; 链接指针, 它给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址。,进程控
10、制块的组织形式:链接方式,进程控制块的组织形式:索引方式,4.3 进程控制,进程是有生命周期的,产生、运行、暂停、终止,对进程的这些操作叫进程控制。进程控制的职责是对系统中全部进程实施有效的管理,它是处理机管理的部分(另一部分是进程调度),当系统允许多进程并发执行时,为了实现共享、协调并发进程的关系,处理机管理必须提供对进程实行有效的管理。,进程控制包括: 进程创建、进程撤消、进程阻塞、进程唤醒 这些操作都要对应地执行一个特殊的程序段(操作系统核心程序),同时系统也通过系统调用给用户提供进程控制的功能。教材上叫原语(一种特殊的系统调用)。,原语,在操作系统中,某些被进程调用的操作,例如队列操作
11、、对信号灯的操作、检查启动外设操作等,一旦开始执行就不能被中断,否则就会出现操作错误,造成系统混乱。原语就是为实现这些操作而设置的。原语(primitive):由若干条指令构成的“原子操作(atomic operation)”过程,作为一个整体而不可分割要么全都完成,要么全都不做。许多系统调用就是原语,进程的终止,引起进程终止的事件,正常结束 异常结束 外界干预, 越界错误 保护错误 非法指令。 特权指令错误。 运行超时。 等待超时。 算术运算错误。 I/O故障。,外界干预并非指在本进程运行中出现了异常事件,而是指进程应外界的请求而终止运行。 操作员或操作系统干预。 父进程请求。 父进程终止。
12、,进程的终止过程,(1) 根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。 (2) 终止执行进程重新进行调度。 (3)终止其所有子孙进程 。 (4) 将被终止进程所拥有的全部资源,归还给其父进程, 或者系统。 (5) 将被终止进程(它的PCB)从所在队列(或链表)中移出, 等待其他程序来搜集信息,进程的阻塞与唤醒,引起进程阻塞和唤醒的事件 请求系统服务 启动某种操作 新数据尚未到达 无新工作可做,进程阻塞过程 正在执行的进程,当发现上述某事件时,由于无法继续执行,于是进程便通过调用阻塞原语block把自己阻塞。可见,进程的阻塞是进程自身的一种主动行为。,进程唤
13、醒过程 当被阻塞进程所期待的事件出现时,则由有关进程(比如,用完并释放了该I/O设备的进程)调用唤醒原语wakeup( ),将等待该事件的进程唤醒 唤醒原语执行的过程是:首先把被阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该PCB插入到就绪队列中。,4.4 进程之间的约束关系,1. 两种形式的制约关系,a.间接相互制约关系-资源共享关系b.直接相互制约关系-相互合作关系,进程互斥的概念,进程互斥的概念是进程间发生的一种间接相互作用引例:宿舍电话的使用打印机的使用,1. 临界资源:一次仅允许一个进程使用的资源称为临界资源。引例中的电话和打印机都属于临界资
14、源。除此之外,还有内存变量、指针、数组等等也是临界资源。,2、临界区: 每个进程中访问临界资源的那段程序段称为临界段。,进入临界区的准则,(1)每次至多有一个进程处于临界区; (2)当有若干个进程欲进入临界区时,应在有限的时间内使其进入; (3)进程在临界区内仅逗留有限的时间,进程同步,所谓同步,就是并发进程在一些关键点上可能 需要互相等待与互通消息,这种相互制约的等待与互通信息称为进程同步,4.5 进程同步机制,在进程并发过程中要实现进程间正确的协作,比须具备两个条件。 1, 应用程序的编制者必须十分清楚并发进程之间的同步关系,知道何处需要等待,何处需要给对方发信息。2, 操作系统必须提供实
15、现施进程协作的措和方法,称为同步机构。,操作系统提供的同步机构有如下两种 a.锁和上锁.开锁操作 b.信号灯(或信号量)和P.V操作。,锁和上锁、开锁操作,这样当一个进程使用某个临界资源之前必须完成下列操作: 1、考察锁位的值; 2,若原来的值是为“0”,将锁位置为“1”(占用该资源) 3、若原来值是为“1”,(该资源已被别人占用),则转到1。 当进程使用完资源后,将锁位置为“0 ” ,称为开锁操作。,锁和上锁、开锁操作,用上锁原语和开锁原语实现互斥,同步机制应遵循的规则,空闲让进:其他进程均不处于临界区; 忙则等待:有进程处于其临界区; 有限等待:等待进入临界区的进程不能“死等“ 让权等待:不能进入临界区的进程,应释CPU(如转换到阻塞状态),信号灯和P、V操作,信号灯的概念是由Dijkstra提出的(1968)。 他把互斥的关键概念抽象到信号量这个概念中,信号量是一个被保护的变量,只有P操作、V操作和一种称为信号量初始化操作才能访问和改变它的值,信号灯的定义: 信号灯是一个确定的二元组(s,q),S 是一个具有非负初值的整型变量,q 是一个初始状态为空的排队站。S代表资源的实体。在实际应用中应准确地说明S的意义和初值,每个信号灯都有一个队列,其初始状态为空。,