计算机操作系统第二章ppt_第1页
计算机操作系统第二章ppt_第2页
计算机操作系统第二章ppt_第3页
计算机操作系统第二章ppt_第4页
计算机操作系统第二章ppt_第5页
已阅读5页,还剩190页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章 进 程 管 理 第二章第二章 进程管理进程管理 2.1 2.1 进程的基本概念进程的基本概念 2.2 2.2 进程控制进程控制 2.3 2.3 进程同步进程同步 2.4 2.4 经典进程的同步问题经典进程的同步问题2.5 2.5 管程机制管程机制 2.6 2.6 进程通信进程通信 2.7 2.7 线程线程 第二章 进 程 管 理 n 程序的顺序执行和并发执行程序的顺序执行和并发执行n程序的执行有两种方式:程序的执行有两种方式:顺序执行和并发执行顺序执行和并发执行。 n顺序执行顺序执行是单道批处理系统的执行方式,也用于是单道批处理系统的执行方式,也用于简单的单片机系统;简单的单片机系统;

2、 n现在的操作系统多为并发执行,具有许多新的特现在的操作系统多为并发执行,具有许多新的特征。引入并发执行的目的是为了提高资源利用率。征。引入并发执行的目的是为了提高资源利用率。第二章 进 程 管 理 n在多道程序环境下,程序不能独立运行。作为在多道程序环境下,程序不能独立运行。作为资源分配和独立运行的基本单位是进程。操作资源分配和独立运行的基本单位是进程。操作系统所有的特征都是基于进程而体现的系统所有的特征都是基于进程而体现的n为了描述程序在并发执行时对系统资源的共享,为了描述程序在并发执行时对系统资源的共享,我们需要一个我们需要一个描述程序执行时动态特征的概念,描述程序执行时动态特征的概念,

3、这就是进程。这就是进程。n通常把这个正准备进入内存的程序称为通常把这个正准备进入内存的程序称为作业作业,当这个作业进入内存后我们把它称为当这个作业进入内存后我们把它称为进程进程。n进程通常具有三种状态:运行状态(正在使用进程通常具有三种状态:运行状态(正在使用CPU)、阻塞状态(等待输入)、阻塞状态(等待输入/输出)和就绪输出)和就绪状态(等待分配状态(等待分配CPU)。)。第二章 进 程 管 理 n进程的特征进程的特征n动态性:进程具有动态的地址空间(数量和动态性:进程具有动态的地址空间(数量和内容),地址空间上包括:内容),地址空间上包括: n代码(指令执行和代码(指令执行和CPU状态的改

4、变)状态的改变) n数据(变量的生成和赋值)数据(变量的生成和赋值) n系统控制信息(进程控制块的生成和删除)系统控制信息(进程控制块的生成和删除) n独立性:各进程的地址空间相互独立,除非采独立性:各进程的地址空间相互独立,除非采用进程间通信手段;用进程间通信手段; n并发性、异步性:并发性、异步性:虚拟虚拟 n结构化:代码段、数据段和核心段(在地址空结构化:代码段、数据段和核心段(在地址空间中);程序文件中通常也划分了代码段和数间中);程序文件中通常也划分了代码段和数据段,而核心段通常就是据段,而核心段通常就是OS核心(由各个进核心(由各个进程共享,包括各进程的程共享,包括各进程的PCB)

5、第二章 进 程 管 理 n进程与程序的区别和相互关系进程与程序的区别和相互关系 :n(1)动态性和静态性。)动态性和静态性。 n(2)从结构上看每个进程的实体都是由程序段和相)从结构上看每个进程的实体都是由程序段和相应的数据段两部分构成的,这一特征与程序的含义相应的数据段两部分构成的,这一特征与程序的含义相近。近。n(3)一个进程可以涉及到一个或几个程序的执行;)一个进程可以涉及到一个或几个程序的执行;反之一程序可以对应多个进程,即同一程序段可在不反之一程序可以对应多个进程,即同一程序段可在不同数据集合上运行,可构成不同的进程同数据集合上运行,可构成不同的进程 。n(4)并发性。)并发性。 n

6、(5)进程具有创建其他进程的功能。)进程具有创建其他进程的功能。 n(6)操作系统中的每一个程序都是在一个进程现场)操作系统中的每一个程序都是在一个进程现场中运行的。中运行的。第二章 进 程 管 理 程序顺序执行的特征程序顺序执行的特征 :n顺序性:按照程序结构所指定的次序(可能顺序性:按照程序结构所指定的次序(可能有分支或循环)有分支或循环) n封闭性:独占全部资源,计算机的状态只由封闭性:独占全部资源,计算机的状态只由于该程序的控制逻辑所决定于该程序的控制逻辑所决定n可再现性:初始条件相同则结果相同。如:可再现性:初始条件相同则结果相同。如:可通过空指令控制时间关系。可通过空指令控制时间关

7、系。 第二章 进 程 管 理 2.1 进程的基本概念进程的基本概念 2.1.1 程序的顺序执行及其特征程序的顺序执行及其特征 1. 程序的顺序执行程序的顺序执行 仅当前一操作仅当前一操作(程序段程序段)执行完后,才能执行后执行完后,才能执行后继操作。例如,在进行计算时,总须先输入用户的继操作。例如,在进行计算时,总须先输入用户的程序和数据,然后进行计算,最后才能打印计算结程序和数据,然后进行计算,最后才能打印计算结果。果。 S1: a=x+y; S2: b=a-5; S3: c=b+1;第二章 进 程 管 理 图图 2-1 程序的顺序执行程序的顺序执行 (a) 程序的顺序执行(b) 三条语句的

8、顺序执行I1C1P1I2C2P2S1S2S3第二章 进 程 管 理 1程序的顺序执行及其特性程序的顺序执行及其特性 n由于各类软件的出现及日益复杂化,使得由于各类软件的出现及日益复杂化,使得程序设计的概念和方法有了很大的发展,程序设计的概念和方法有了很大的发展,在单道程序工作环境中,我们把一个在单道程序工作环境中,我们把一个“程程序序”理解为理解为“一个在时间上按严格次序前一个在时间上按严格次序前后相继的操作序列后相继的操作序列”。 第二章 进 程 管 理 2. 程序顺序执行时的特征程序顺序执行时的特征 (1)顺序性:顺序性:(2) 封闭性:封闭性:资源独占。资源独占。(3) 可再现性:可再现

9、性: 结果的无关性。结果的无关性。 第二章 进 程 管 理 2.1.2 前趋图前趋图 前趋图是一个有向无循环图,记为前趋图是一个有向无循环图,记为DAG,用于,用于描述进程之间执行的前后关系。图中的每个结点可描述进程之间执行的前后关系。图中的每个结点可用于描述一个程序段或进程,乃至一条语句;结点用于描述一个程序段或进程,乃至一条语句;结点间的有向边则用于表示两个结点之间存在的偏序或间的有向边则用于表示两个结点之间存在的偏序或前趋关系前趋关系 “”。在前趋图中,把没有前趋的结点称为在前趋图中,把没有前趋的结点称为初始结点初始结点,把,把没没有后继的结点称为有后继的结点称为终止结点终止结点。第二章

10、 进 程 管 理 每个结点还具有一个重量每个结点还具有一个重量(Weight),用于表示该结点用于表示该结点所含有的程序量或结点的执行时间。所含有的程序量或结点的执行时间。 IiCiPi和S1S2S3 图图 2-2 前趋图前趋图 P1P3P8P9P4P2P5P6P7S1S2S3(a) 具有九个结点的前趋图(b) 具有循环的前趋图对于图对于图 2-2(a)所示的前趋图,所示的前趋图, 存在下述前趋关系:存在下述前趋关系: P1P2, P1P3, P1P4, P2P5, P3P5, P4P6, P4P7, P5P8, P6P8, P7P9, P8P9或表示为:或表示为: P=P1, P2, P3,

11、 P4, P5, P6, P7, P8, P9= (P1, P2), (P1, P3), (P1, P4), (P2, P5), (P3, P5), (P4, P6), (P4, P7), (P5, P8), (P6, P8), (P7, P9), (P8, P9) 应当注意,前趋图中必须不存在循环,但在图应当注意,前趋图中必须不存在循环,但在图2-2(b)中却有着中却有着下述的前趋关系:下述的前趋关系:S2S3, S3S2 这是无法满足的这是无法满足的.第二章 进 程 管 理 2.1.3程序的并发执行及其特性程序的并发执行及其特性 n无论是操作系统自身的程序还是用户程序,通无论是操作系统自身

12、的程序还是用户程序,通常总是存在一些相对独立、但又能并发执行的常总是存在一些相对独立、但又能并发执行的程序段。由于这些程序段可以被多个用户作业程序段。由于这些程序段可以被多个用户作业调用,因此可在同一时间间隔内发生。这样一调用,因此可在同一时间间隔内发生。这样一来,某个程序段可能对应多个来,某个程序段可能对应多个“计算计算”,于是,于是程序与程序与“计算计算”已不具有一一对应关系了。这已不具有一一对应关系了。这些些“并发程序并发程序”就构成了一个就构成了一个“并发环境并发环境”。第二章 进 程 管 理 n并发执行的特征并发执行的特征 n间断间断(异步异步)性:性:走走停停走走停停,一个程序可能

13、,一个程序可能走到中途停下来,失去原有的时序关系;走到中途停下来,失去原有的时序关系; n失去封闭性:共享资源,受其他程序的控制失去封闭性:共享资源,受其他程序的控制逻辑的影响。如:一个程序写到存储器中的逻辑的影响。如:一个程序写到存储器中的数据可能被另一个程序修改,失去原有的不数据可能被另一个程序修改,失去原有的不变特征。变特征。 n失去可再现性:失去封闭性失去可再现性:失去封闭性 失去可再现失去可再现性;外界环境在程序的两次执行期间发生变性;外界环境在程序的两次执行期间发生变化,失去原有的可重复特征。化,失去原有的可重复特征。2.1.3 程序的并发执行及其特征程序的并发执行及其特征 第二章

14、 进 程 管 理 2.1.3 程序的并发执行及其特征程序的并发执行及其特征 1. 程序的并发执行程序的并发执行 图图 2-3 并发执行时的前趋图并发执行时的前趋图 P1P2P3P4I1I2I3I4C1C2C3C4第二章 进 程 管 理 在该例中存在下述前趋关系:在该例中存在下述前趋关系: IiCi,IiIi+1, CiPi, CiCi+1,PiPi+1而而Ii+1和和Ci及及Pi-1是重迭的,亦即在是重迭的,亦即在Pi-1和和Ci以及以及Ii+1之间,可之间,可以并发执行。以并发执行。 对于具有下述四条语句的程序段:对于具有下述四条语句的程序段: S1: a=x+2 S2: b=y+4 S3:

15、 c=a+b S4: d=c+b 第二章 进 程 管 理 图图 2-4 四条语句的前趋关系四条语句的前趋关系S1S2S3S4第二章 进 程 管 理 2. 程序并发执行时的特征程序并发执行时的特征 1) 间断性间断性2) 失去封闭性失去封闭性 3) 不可再现性不可再现性 例如,两个循环程序例如,两个循环程序A和和B,它们共享一个变量,它们共享一个变量N。程序程序A N=N+1 ;程序程序B Print(N) ;N=0;程序程序A和和B以不同的速度运行。以不同的速度运行。 (1) N=N+1在在Print(N)和和N=0之前,此时得到的之前,此时得到的N值值分别为分别为n+1, n+1, 0。 (

16、2) N=N+1在在Print(N)和和N=0之后,此时得到的之后,此时得到的N值值分别为分别为n, 0, 1。 (3) N=N+1在在Print(N)和和N=0之间,此时得到的之间,此时得到的N值值分别为分别为n, n+1, 0。 第二章 进 程 管 理 2.1.4 进程的特征与状态进程的特征与状态 1. 进程的特征和定义进程的特征和定义 1) 结构特征结构特征 程序段、相关数据段、程序段、相关数据段、PCB构成进程实体构成进程实体2) 动态性动态性 3) 并发性并发性 4) 独立性独立性 5) 异步性异步性 第二章 进 程 管 理 n行为的一个规则叫做程序,程序在处理机上执行为的一个规则叫

17、做程序,程序在处理机上执行时所发生的活动称为进程(行时所发生的活动称为进程(Dijkstra)Dijkstra)。n进程是这样的计算部分,它是可以和其它计算进程是这样的计算部分,它是可以和其它计算并行的一个计算并行的一个计算。(Donovan)(Donovan)n进程(有时称为任务)是一个程序与其数据一进程(有时称为任务)是一个程序与其数据一道通过处理机的执行所发生的活动道通过处理机的执行所发生的活动。(。(Alan.C. Alan.C. Shaw)Shaw)n进程是执行中的程序进程是执行中的程序。(。(Ken Thompson and Ken Thompson and Dennis Ritc

18、hie )Dennis Ritchie )n教材上给出的进程的定义教材上给出的进程的定义:n 进程,即是一个具有一定独立功能的程序关进程,即是一个具有一定独立功能的程序关于某个数据集合的一次活动。于某个数据集合的一次活动。较典型的进程定义有:较典型的进程定义有: (1) 进程是程序的一次执行。进程是程序的一次执行。 (2) 进程是一个程序及其数据在处理机上顺序执行进程是一个程序及其数据在处理机上顺序执行时所发生的活动。时所发生的活动。 (3) 进程是程序在一个数据集合上运行的过程,它进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。是系统进行资源分配和调度的一个独

19、立单位。 传统传统OS中的进程定义为:中的进程定义为:“进程是进程实体的运进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单行过程,是系统进行资源分配和调度的一个独立单位位”。 第二章 进 程 管 理 程序与进程程序与进程联系:联系: 程序是构成进程的组成部分之一。一程序是构成进程的组成部分之一。一个进程的运行目标就是执行它所对应的程个进程的运行目标就是执行它所对应的程序,如果没有程序,进程就失去了其实际序,如果没有程序,进程就失去了其实际存在的意义。存在的意义。 从静态的角度看,进程是由程序、数从静态的角度看,进程是由程序、数据和进程控制块(据和进程控制块(PCBPCB)三部分组

20、成。)三部分组成。 第二章 进 程 管 理 区别:区别: 程序是静态的,而进程是动态的;程序是静态的,而进程是动态的; 程序的存在是永久的,进程的存在程序的存在是永久的,进程的存在是暂时的,动态的产生和消亡;是暂时的,动态的产生和消亡; 一个进程可以执行一个或几个程序,一个进程可以执行一个或几个程序,一个程序亦可以构成多个进程;一个程序亦可以构成多个进程; 进程具有创建其它进程的功能。进程具有创建其它进程的功能。 第二章 进 程 管 理 2. 进程的三种基本状态进程的三种基本状态 1) 就绪就绪(Ready)状态状态 2) 执行状态执行状态 3) 阻塞状态阻塞状态 图图 2-5 进程的三种基本

21、状态及其转换进程的三种基本状态及其转换 第二章 进 程 管 理 n(1)运行状态:进程正在处理机上运行的状)运行状态:进程正在处理机上运行的状态,该进程已获得必要的资源,也获得了处理态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机上运行。机,用户程序正在处理机上运行。n(2)阻塞状态:进程等待某种事件完成(例)阻塞状态:进程等待某种事件完成(例如,等待输入如,等待输入/输出操作的完成)而暂时不能输出操作的完成)而暂时不能运行的状态,处于该状态的进程不能参加竞争运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不处理机,此时,即使分配给它处理机,它也不能

22、运行。能运行。n(3)就绪状态:该进程运行所需的一切条件)就绪状态:该进程运行所需的一切条件都得到满足,但因处理机资源个数少于进程个都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处数,所以该进程不能运行,而必须等待分配处理机资源,一旦获得处理机就立即投入运行。理机资源,一旦获得处理机就立即投入运行。第二章 进 程 管 理 3. 挂起状态挂起状态1) 引入挂起状态的原因引入挂起状态的原因 (1)终端用户的请求。终端用户的请求。 (2) 父进程请求。父进程请求。 (3) 负荷调节的需要。负荷调节的需要。 (4) 操作系统的需要。操作系统的需要。 q 挂起进程在操作系

23、统中可以定义为暂时被淘挂起进程在操作系统中可以定义为暂时被淘汰出内存的进程,机器的资源是有限的,在汰出内存的进程,机器的资源是有限的,在资源不足的情况下,操作系统对在内存中的资源不足的情况下,操作系统对在内存中的程序进行合理的安排,其中有的进程被暂时程序进行合理的安排,其中有的进程被暂时调离出内存,当条件允许的时候,会被操作调离出内存,当条件允许的时候,会被操作系统再次调回内存,重新进入等待被执行的系统再次调回内存,重新进入等待被执行的状态即就绪态。状态即就绪态。第二章 进 程 管 理 2) 进程状态的转换进程状态的转换 (1)活动就绪活动就绪静止就绪。静止就绪。 (2) 活动阻塞活动阻塞静止

24、阻塞。静止阻塞。 (3) 静止就绪静止就绪活动就绪。活动就绪。 (4) 静止阻塞静止阻塞活动阻塞活动阻塞。 活动就绪静止就绪执行挂起激活释放挂起活动阻塞静止阻塞挂起激活释放请求I/O图图 2-6 具有挂起状态的进程状态图具有挂起状态的进程状态图 第二章 进 程 管 理 2.1.5 进程控制块进程控制块 1. 进程控制块的作用进程控制块的作用 进程控制块的作用是使一个在多道程序环境进程控制块的作用是使一个在多道程序环境下不能独立运行的程序下不能独立运行的程序(含数据含数据),成为一个能独,成为一个能独立运行的基本单位,一个能与其它进程并发执行立运行的基本单位,一个能与其它进程并发执行的进程。或者

25、说,的进程。或者说,OS是根据是根据PCB来对并发执行的来对并发执行的进程进行控制和管理的。进程进行控制和管理的。 PCB是进程存在的唯一标志。是进程存在的唯一标志。第二章 进 程 管 理 进程控制块进程控制块 n为了刻画进程的动态变化,通常把进程表示为为了刻画进程的动态变化,通常把进程表示为由程序段、私有数据块和进程控制块组成,如由程序段、私有数据块和进程控制块组成,如图图3.4(a)所示。程序部分描述进程本身所要)所示。程序部分描述进程本身所要完成的功能,而完成的功能,而“私有数据块私有数据块”是接受程序规是接受程序规定操作的一组存储单元的内容,是操作的对象。定操作的一组存储单元的内容,是

26、操作的对象。进程控制块是在进程创建时产生的,当进程存进程控制块是在进程创建时产生的,当进程存在于系统时(运行),进程控制块就标识了这在于系统时(运行),进程控制块就标识了这个进程。如图个进程。如图3.4(b)所示。)所示。 下一页下一页第二章 进 程 管 理 nLoik,第二章 进 程 管 理 n进程控制块是进程存在的标志,当系统或父进进程控制块是进程存在的标志,当系统或父进程创建一个进程时,实际上就是为其建立一个程创建一个进程时,实际上就是为其建立一个进程控制块。进程控制块。 n进程控制块既能标识进程的存在,又能刻画出进程控制块既能标识进程的存在,又能刻画出进程的动态特征,它是一个进程仅有的

27、被系统进程的动态特征,它是一个进程仅有的被系统真正感知的部分。对操作系统而言,所有进程真正感知的部分。对操作系统而言,所有进程控制块将构成并发执行控制和维护系统工作的控制块将构成并发执行控制和维护系统工作的依据。依据。进程控制块的作用:进程控制块的作用:第二章 进 程 管 理 2. 进程控制块中的信息进程控制块中的信息 1) 进程标识符进程标识符 (1) 内部标识符。主要是为了方便系统使用。内部标识符。主要是为了方便系统使用。在所有的操作系统中,都为每一个进程赋予一个在所有的操作系统中,都为每一个进程赋予一个惟一的数字标识符,它通常是一个进程的序号。惟一的数字标识符,它通常是一个进程的序号。

28、(2) 外部标识符。它由创建者提供,通常是由外部标识符。它由创建者提供,通常是由字母、数字组成,往往是由用户字母、数字组成,往往是由用户(进程进程)在访问该在访问该进程时使用。进程时使用。 2) 处理机状态处理机状态 通用寄存器通用寄存器 :用户程序可以访问的,存放信息。:用户程序可以访问的,存放信息。 指令计数器,存放要访问的下一条指令的地址;指令计数器,存放要访问的下一条指令的地址; 程序状态字程序状态字PSW,其中含有状态信息,如条件码、,其中含有状态信息,如条件码、执行方式、执行方式、 中断屏蔽标志等;中断屏蔽标志等; 用户栈指针,指每个用户进程都有一个或若干个与用户栈指针,指每个用户

29、进程都有一个或若干个与之相关的系之相关的系统栈,用于存放过程和系统调用参数及调统栈,用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。用地址。栈指针指向该栈的栈顶。 第二章 进 程 管 理 3) 进程调度信息进程调度信息 进程状态,指明进程的当前状态,作为进程调进程状态,指明进程的当前状态,作为进程调度和对换时的依据;度和对换时的依据; 进程优先级,用于描述进程使用处理机的优先进程优先级,用于描述进程使用处理机的优先级别的一个整数,级别的一个整数, 优先级高的进程应优先获得处优先级高的进程应优先获得处理机;理机; 进程调度所需的其它信息;进程调度所需的其它信息; 事件,是指进程由执行

30、状态转变为阻塞状态所事件,是指进程由执行状态转变为阻塞状态所等待发生的事件,即等待发生的事件,即阻塞原因。阻塞原因。 第二章 进 程 管 理 4) 进程控制信息进程控制信息 程序和数据的地址程序和数据的地址 进程同步和通信机制;进程同步和通信机制; 资源清单,是一张列出了除资源清单,是一张列出了除CPU以外的、进程以外的、进程所需的全部资源及已经分配到该进程的资源的清单;所需的全部资源及已经分配到该进程的资源的清单; 链接指针,链接指针, 它给出了本进程它给出了本进程(PCB)所在队列中所在队列中的的下一个进程的下一个进程的PCB的首地址。的首地址。 第二章 进 程 管 理 n家族联系家族联系

31、 process familyn 有的系统允许一个进程可创建自已的子有的系统允许一个进程可创建自已的子进程,子进程还可以创建,一个进程往进程,子进程还可以创建,一个进程往往处在一个家族之中,就需要记录进程往处在一个家族之中,就需要记录进程在家族中位置的信息。在家族中位置的信息。第二章 进 程 管 理 3. 进程控制块的组织方式进程控制块的组织方式 1) 链接方式链接方式 图图 2-7 PCB链接队列示意图链接队列示意图 PCB14PCB2PCB3PCB4PCB5PCB6PCB7PCB8PCB93087901执行指针就绪队列指针阻塞队列指针空闲队列指针第二章 进 程 管 理 2) 索引方式索引方

32、式 图图 2-8 按索引方式组织按索引方式组织PCB 执行指针就绪索引表PCB1PCB2PCB3PCB4PCB5PCB6PCB7阻塞索引表就绪表指针阻塞表指针第二章 进 程 管 理 进程的类型进程的类型n在系统中同时有多个进程存在,但归纳起来在系统中同时有多个进程存在,但归纳起来有两大类:有两大类:n1 1、系统进程、系统进程n 系统进程起着资源管理和控制的作用。系统进程起着资源管理和控制的作用。n 或者:执行操作系统核心代码的进程或者:执行操作系统核心代码的进程。n2 2、用户进程、用户进程n 执行用户程序的进程。执行用户程序的进程。第二章 进 程 管 理 进程的类型进程的类型n系统进程与用

33、户进程的区别:系统进程与用户进程的区别:n1 1、系统进程被分配一个初始的资源集合,这些、系统进程被分配一个初始的资源集合,这些资源可以为它独占,也能以最高优先权的资格使资源可以为它独占,也能以最高优先权的资格使用。用户进程通过系统服务请求的手段竞争使用用。用户进程通过系统服务请求的手段竞争使用系统资源;系统资源;n2 2、用户进程不能直接做、用户进程不能直接做I/OI/O操作,而系统进程可操作,而系统进程可以做显示的、直接的以做显示的、直接的I/OI/O操作。操作。n3 3、系统进程在管态下活动,而用户进程则在用、系统进程在管态下活动,而用户进程则在用户态(目态)下活动。户态(目态)下活动。

34、n另一种分类:计算进程,另一种分类:计算进程,I/OI/O进程等进程等第二章 进 程 管 理 n 进程是有生命周期的,产生、运行、暂停、进程是有生命周期的,产生、运行、暂停、终止,对进程的这些操作叫进程控制。终止,对进程的这些操作叫进程控制。n 进程控制的职责是对系统中全部进程实施有进程控制的职责是对系统中全部进程实施有效的管理,它是处理机管理的部分(效的管理,它是处理机管理的部分(另一部分另一部分是进程调度是进程调度),当系统允许多进程并发执行时,),当系统允许多进程并发执行时,为了实现共享、协调并发进程的关系,处理机为了实现共享、协调并发进程的关系,处理机管理必须提供对进程实行有效的管理管

35、理必须提供对进程实行有效的管理。2.2 进进 程程 控控 制制 第二章 进 程 管 理 进程控制进程控制 进程控制的概念进程控制的概念n 进程控制包括进程控制包括:n 进程创建进程创建、n 进程撤消进程撤消、n 进程阻塞进程阻塞、n 进程唤醒进程唤醒。n 这些操作都要对应地执行一个特殊的程序这些操作都要对应地执行一个特殊的程序段(操作系统核心程序),同时系统也通过段(操作系统核心程序),同时系统也通过系统调用给用户提供进程控制的功能。教材系统调用给用户提供进程控制的功能。教材上叫原语(一种特殊的系统调用)。上叫原语(一种特殊的系统调用)。第二章 进 程 管 理 n运行状态运行状态 等待状态等待

36、状态 n 进程阻塞进程阻塞n等待状态等待状态 就绪状态就绪状态 n 进程唤醒进程唤醒n新建进程置为就绪状态新建进程置为就绪状态 n 进程创建进程创建n进程终止(消亡进程终止(消亡) n 进程撤消进程撤消n就绪状态就绪状态 运行状态运行状态 n 进程调度进程调度第二章 进 程 管 理 原语原语 n在操作系统中,某些被进程调用的操作,在操作系统中,某些被进程调用的操作,例如队列操作、对信号灯的操作、检查例如队列操作、对信号灯的操作、检查启动外设操作等,一旦开始执行就不能启动外设操作等,一旦开始执行就不能被中断,否则就会出现操作错误,造成被中断,否则就会出现操作错误,造成系统混乱。原语就是为实现这些

37、操作而系统混乱。原语就是为实现这些操作而设置的。设置的。第二章 进 程 管 理 原语原语(primitive):由若干条指令构成的由若干条指令构成的“原原子操作子操作(atomic operation)”过程,作为一个过程,作为一个整体而不可分割整体而不可分割要么全都完成,要么要么全都完成,要么全都不做。许多系统调用就是原语。全都不做。许多系统调用就是原语。注意:注意:系统调用并不都是原语。系统调用并不都是原语。进程进程A调用调用read(),因无数据而阻塞,在,因无数据而阻塞,在read()里未返回。里未返回。然后进程然后进程B调用调用read(),此时,此时read()被重入。被重入。系统

38、调用不一定一次执行完并返回该进程,系统调用不一定一次执行完并返回该进程,有可能在特定的点暂停,而转入到其他进程。有可能在特定的点暂停,而转入到其他进程。第二章 进 程 管 理 图图3.5 进程家族示例进程家族示例第二章 进 程 管 理 2.2.1 进程的创建进程的创建 1. 进程图进程图(Process Graph)2. 继承继承(inherit):子进程:子进程可以从父进程中继承环可以从父进程中继承环境变量、打开文件、文境变量、打开文件、文件系统的当前目录、控件系统的当前目录、控制终端、已经连接的共制终端、已经连接的共享存储区、信号处理例享存储区、信号处理例程入口表等程入口表等 .3. 不被

39、继承:进程标识符,不被继承:进程标识符,父进程标识符。父进程标识符。 图 2-9 进程树 DEFGHBCIJKLMA第二章 进 程 管 理 2. 引起创建进程的事件引起创建进程的事件 (1)用户登录。用户登录。 (2) 作业调度。作业调度。 (3) 提供服务。提供服务。 (4) 应用请求。应用请求。 第二章 进 程 管 理 n(1 1)创建进程。系统在创建进程时,必须为)创建进程。系统在创建进程时,必须为之分配其所必需的、除处理机以外的所有资源。之分配其所必需的、除处理机以外的所有资源。如内存空间、如内存空间、I/OI/O设备以及建立相应的设备以及建立相应的PCBPCB结构。结构。n(2 2)

40、撤消进程。系统在撤消进程时,又必须)撤消进程。系统在撤消进程时,又必须先对这些资源进行回收操作,然后再撤消先对这些资源进行回收操作,然后再撤消PCBPCB结构。结构。n(3 3)进程切换。在对进程进行切换时,由于)进程切换。在对进程进行切换时,由于要保留当前进程的要保留当前进程的CPUCPU环境和设置新选中进程环境和设置新选中进程的的CPUCPU环境,为此需花费不少处理机时间。环境,为此需花费不少处理机时间。第二章 进 程 管 理 3. 进程的创建进程的创建(Creation of Progress) (1)申请空白申请空白PCB。申请唯一的数字表示符;。申请唯一的数字表示符; (2)为新进程

41、分配资源。为新进程分配资源。 (3) 初始化进程控制块。初始化进程控制块。 初始化标识符,处理机状态信息和控制信息。初始化标识符,处理机状态信息和控制信息。(4) 将新进程插入就绪队列,如果进程就绪队列能够接将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,纳新进程, 便将新进程插入就绪队便将新进程插入就绪队列。列。 第二章 进 程 管 理 2.2.2 进程的终止进程的终止 1. 引起进程终止引起进程终止(Termination of Process)的事件的事件1) 正常结束正常结束2) 异常结束异常结束 越界错误越界错误 保护错误保护错误 非法指令。非法指令。 特权指令错误。特权指令错

42、误。 运行超时。运行超时。 等待超时。等待超时。 算术运算错误。算术运算错误。 I/O故障。故障。 第二章 进 程 管 理 3) 外界干预外界干预 外界干预并非指在本进程运行中出现了异常外界干预并非指在本进程运行中出现了异常事件,而是指进程应外界的请求而终止运行。事件,而是指进程应外界的请求而终止运行。 操作员或操作系统干预。操作员或操作系统干预。 父进程请求。父进程请求。 父进程终止。父进程终止。 第二章 进 程 管 理 2. 进程的终止过程进程的终止过程 (1) 根据被终止进程的标识符,从根据被终止进程的标识符,从PCB集合中检索集合中检索出该进程的出该进程的PCB,从中读出该进程的状态。

43、,从中读出该进程的状态。 (2) 终止执行进程重新进行调度。终止执行进程重新进行调度。 (3)终止其所有子孙进程终止其所有子孙进程 。 (4) 将被终止进程所拥有的全部资源,归还给其父将被终止进程所拥有的全部资源,归还给其父进程,进程, 或者系统。或者系统。 (5) 将被终止进程将被终止进程(它的它的PCB)从所在队列从所在队列(或链表或链表)中中移出,移出, 等待其他程序来搜集信息。等待其他程序来搜集信息。 第二章 进 程 管 理 2.2.3 进程的阻塞与唤醒进程的阻塞与唤醒1. 引起进程阻塞和唤醒的事件引起进程阻塞和唤醒的事件 1) 请求系统服务请求系统服务 2) 启动某种操作启动某种操作

44、 3) 新数据尚未到达新数据尚未到达 4) 无新工作可做无新工作可做 第二章 进 程 管 理 正在执行的进程,当发现上述某事件时,由于无正在执行的进程,当发现上述某事件时,由于无法继续执行,于是进程便通过调用阻塞原语法继续执行,于是进程便通过调用阻塞原语block把自把自己阻塞。可见,己阻塞。可见,进程的阻塞是进程自身的一种主动行进程的阻塞是进程自身的一种主动行为。为。 进入进入block过程后,立即停止执行,把进程控制块过程后,立即停止执行,把进程控制块中的现行状态由中的现行状态由“执行执行”改为阻塞,并将改为阻塞,并将PCB插入阻插入阻塞队列。最后,转调度程序进行重新调度,将处理机塞队列。

45、最后,转调度程序进行重新调度,将处理机分配给另一就绪进程,并进行切换。分配给另一就绪进程,并进行切换。 2. 进程阻塞过程进程阻塞过程第二章 进 程 管 理 当被阻塞进程所期待的事件出现时,则由有关进程当被阻塞进程所期待的事件出现时,则由有关进程(比如,用完并释放了该比如,用完并释放了该I/O设备的进程设备的进程)调用唤醒原语调用唤醒原语wakeup( ),将等待该事件的进程唤醒。,将等待该事件的进程唤醒。 唤醒原语执行的过程是:首先把被阻塞的进程从等唤醒原语执行的过程是:首先把被阻塞的进程从等待该事件的阻塞队列中移出,待该事件的阻塞队列中移出,将其将其PCB中的现行状态由中的现行状态由阻塞改

46、为就绪,然后再将该阻塞改为就绪,然后再将该PCB插入到就绪队列中。插入到就绪队列中。 3. 进程唤醒过程进程唤醒过程第二章 进 程 管 理 2.2.4 进程的挂起与激活进程的挂起与激活 1. 进程的挂起进程的挂起 原语原语suspend( )将指定进程或处于阻塞状态的将指定进程或处于阻塞状态的进程挂起。进程挂起。 挂起原语的执行过程是:首先检查被挂起进挂起原语的执行过程是:首先检查被挂起进程的状态。为了方便用户或父进程考查该进程的程的状态。为了方便用户或父进程考查该进程的运行情况而把该进程的运行情况而把该进程的PCB复制到某指定的内存复制到某指定的内存区域。最后,若被挂区域。最后,若被挂起的进

47、程正在执行,则转向起的进程正在执行,则转向调度程序重新调度。调度程序重新调度。 第二章 进 程 管 理 2. 进程的激活过程进程的激活过程 激活原语先将进程从外存调入内存,检查该进激活原语先将进程从外存调入内存,检查该进程的现行状态。程的现行状态。 假如采用的是抢占调度策略,则每当有新进程假如采用的是抢占调度策略,则每当有新进程进入就绪队列时,应检查是否要进行重新调度,即进入就绪队列时,应检查是否要进行重新调度,即由调度程序将被激活进程与当前进程进行优先级的由调度程序将被激活进程与当前进程进行优先级的比较,如果被激活进程的优先级更低,就不必重新比较,如果被激活进程的优先级更低,就不必重新调度;

48、否则,立即剥夺当前进程的运行,把调度;否则,立即剥夺当前进程的运行,把处理机处理机分配给刚被激活的进程。分配给刚被激活的进程。 第二章 进 程 管 理 2.3 进进 程程 同同 步步 2.3.1 进程同步的基本概念进程同步的基本概念 1. 两种形式的制约关系两种形式的制约关系 (1)间接相互制约关系间接相互制约关系-资源共享关系资源共享关系(2) 直接相互制约关系直接相互制约关系-相互合作关系相互合作关系第二章 进 程 管 理 进程互斥进程互斥互斥的概念互斥的概念n 引例:引例:n 宿舍电话的使用宿舍电话的使用n 打印机的使用打印机的使用n 1. 临界资源:一次仅允许一个进程使用的临界资源:一

49、次仅允许一个进程使用的资源称为临界资源资源称为临界资源。n 引例中的电话和打印机都属于临界资源。引例中的电话和打印机都属于临界资源。除此之外,还有内存变量、指针、数组等等除此之外,还有内存变量、指针、数组等等也是临界资源。也是临界资源。第二章 进 程 管 理 n2 2、临界区:、临界区:n每个进程中访问临每个进程中访问临界资源的那段程序界资源的那段程序段称为临界段)。段称为临界段)。进程互斥进程互斥互斥的概念互斥的概念第二章 进 程 管 理 n互斥互斥n定义定义: :n在操作系统中,当某一进程正在访问某临界在操作系统中,当某一进程正在访问某临界区时,就不允许其它进程进入,否则就会发区时,就不允

50、许其它进程进入,否则就会发生生( (后果后果) )无法估计的错误。我们把进程之间无法估计的错误。我们把进程之间的这种相互制约的关系称为互斥的这种相互制约的关系称为互斥。n例如:飞机定票系统中的机票库例如:飞机定票系统中的机票库进程互斥进程互斥互斥的概念互斥的概念第二章 进 程 管 理 n进入临界区的准则:进入临界区的准则:n(1)(1)每次至多有一个进程处于临界区;每次至多有一个进程处于临界区;n(2)(2)当有若干个进程欲进入临界区时,应在当有若干个进程欲进入临界区时,应在有限的时间内使其进入;有限的时间内使其进入;n(3)(3)进程在临界区内仅逗留有限的时间进程在临界区内仅逗留有限的时间。

51、进程互斥进程互斥互斥的概念互斥的概念第二章 进 程 管 理 n 解决进程互斥的最简单的办法解决进程互斥的最简单的办法是加锁。是加锁。n 在系统中为在系统中为每个临界资源设置每个临界资源设置一个锁位一个锁位,n 0 0 表示资源可用表示资源可用,n 1 1 表示资源已被占用(不可表示资源已被占用(不可用)。用)。第二章 进 程 管 理 锁和上锁、开锁操作锁和上锁、开锁操作n这样当一个进程使用某个临界资源之前必须这样当一个进程使用某个临界资源之前必须完成下列操作:完成下列操作:n1 1、考察锁位的值;、考察锁位的值;n2 2、若原来的值是为、若原来的值是为“0”0”,将锁位置为,将锁位置为“1”1

52、”n (占用该资源);(占用该资源);n3 3、若原来值是为、若原来值是为“1”1”,(该资源已被别人,(该资源已被别人占用),则转到占用),则转到1 1。n当进程使用完资源后,将锁位置为当进程使用完资源后,将锁位置为“0 ” 0 ” ,称为开锁操作。称为开锁操作。第二章 进 程 管 理 用上锁原语和开锁原语实现互斥用上锁原语和开锁原语实现互斥n假设有两个进程共享打假设有两个进程共享打n印机,两个进程中使用印机,两个进程中使用n打印机的程序段为临界打印机的程序段为临界n区。区。n为保证打印的正确,设为保证打印的正确,设n置打印机的锁位置打印机的锁位print,n其初值为其初值为“0”,表示,表

53、示n打印机可。打印机可。第二章 进 程 管 理 2. 临界资源临界资源(Critical Resouce) 在一段时间内只允许一个进程访问的资源称在一段时间内只允许一个进程访问的资源称为为临界资源。临界资源。 生产者生产者-消费者消费者(producer-consumer)问题是一个著问题是一个著名的进程同步问题。每个生产者可不断地每次往缓名的进程同步问题。每个生产者可不断地每次往缓冲池中送一个生产产品,而每个消费者则可不断地冲池中送一个生产产品,而每个消费者则可不断地每次从缓冲池中取出一个产品每次从缓冲池中取出一个产品 同步关系:即不允许消费者进程到一个空缓冲同步关系:即不允许消费者进程到一

54、个空缓冲区去取产品;也不允许生产者进程向一个已装满产区去取产品;也不允许生产者进程向一个已装满产品且品且尚未被取走的缓冲区中投放产品。尚未被取走的缓冲区中投放产品。 第二章 进 程 管 理 生产者与消费者问题生产者与消费者问题 nDijkstra把广义同步问题抽象成一种把广义同步问题抽象成一种“生产者生产者与消费者问题与消费者问题”(Producer-consumer-relationship)的抽象模型。事实上,计算机)的抽象模型。事实上,计算机系统中的许多问题都可归结为生产者与消费者系统中的许多问题都可归结为生产者与消费者问题,生产者与消费者可以通过一个环形缓冲问题,生产者与消费者可以通过

55、一个环形缓冲池(见图池(见图3.8)联系起来,环形缓冲池由几个)联系起来,环形缓冲池由几个大小相等的缓冲块组成,每个缓冲块容纳一个大小相等的缓冲块组成,每个缓冲块容纳一个产品。产品。 第二章 进 程 管 理 图图3.8 环形缓冲池环形缓冲池第二章 进 程 管 理 rearrear5 54 04 03 13 12 2frontfrontJ6J6J7J7J8J8J9J9J4J4J5J5队满队满frontfrontrearrear5 54 04 03 13 12 2队空队空对于循环队列,当队空和队满时,都有:对于循环队列,当队空和队满时,都有:front = rear怎么判断循环队列的怎么判断循环队

56、列的队空队空和和队满队满呢?呢?第二章 进 程 管 理 n有两种处理方法:1) 另设一个标志位以区别队列是“空”或“满”。2) 少用一个存储单元,队满条件是: (rear1)% MaxSize = front 其中,MaxSize 是队列的最大长度。 队空条件:frontrearfront54 03 12J5J6J7J3J4rear54 03 12rearfront J3,J4,J5,J6,J7依次出队列后第二章 进 程 管 理 生产者消费者共享下列变量:生产者消费者共享下列变量:int in=0, out=0, count=0;item=buffern; /枚举类型说明;枚举类型说明; vo

57、id consumer( ) while(1) while (counter=0 ) ; nextc=bufferout; out=(out+1) % n; counter-; consumer the item in nextc; ;void producer( ) while(1) produce an item in nextp; while (counter=n) ; bufferin =nextp; in =(in+1 )% n; counter+; ; 第二章 进 程 管 理 若并发执行时,就会出现差错,问题就在于这两若并发执行时,就会出现差错,问题就在于这两个进程共享变量个进程共

58、享变量counter。生产者对它做加。生产者对它做加1操作,消费操作,消费者对它做减者对它做减1操作,这两个操作在用机器语言实现时,操作,这两个操作在用机器语言实现时, 常可用下面的形式描述:常可用下面的形式描述: register 1=counter; register 2=counter; register1=register 1+1; register 2=register 2-1; counter=register 1; counter =register 2; 第二章 进 程 管 理 假设:假设:counter的当前值是的当前值是5。如果生产者进程先。如果生产者进程先执行左列的三条机

59、器语言语句,然后消费者进程再执执行左列的三条机器语言语句,然后消费者进程再执行右列的三条语句,行右列的三条语句, 则最后共享变量则最后共享变量counter的值仍的值仍为为5;反之,如果让消费者进程先执行右列的三条语;反之,如果让消费者进程先执行右列的三条语句,然后再让生产者进程执行左列的三条语句,句,然后再让生产者进程执行左列的三条语句,counter值也还是值也还是5,但是,如果按下述顺序执行:,但是,如果按下述顺序执行: register 1 =counter; (register 1=5) register 1 =register 1+1; (register 1=6) registe

60、r 2 =counter; (register 2=5) register 2 =register 2-1; (register 2=4) counter =register 1; (counter=6) counter =register 2; (counter=4)第二章 进 程 管 理 互斥互斥,指多个进程不能同时使用同一个资源;,指多个进程不能同时使用同一个资源; 死锁,死锁,指多个进程互不相让,都得不到足够指多个进程互不相让,都得不到足够的资源;的资源; 饥饿饥饿,指一个进程一直得不到资源,指一个进程一直得不到资源(其他进程可能轮流占用资源)(其他进程可能轮流占用资源)第二章 进 程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论