第2章进程-概念

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第2章进程

进程(process)的概念是操作系统中最基本,最重要的概念。它是在多道程序设计出现后,为了刻划系统内部出现的情况,描述系统内部各作业的活动规律而引进的一个新概念。

2.1 进程介绍

2.1.1 程序的顺序执行与特征

传统程序概念是顺序执行的。计算机原理中提到程序计数器PC(程序的地址寄存器,汇编语言中叫IP)概念。CPU从PC中取出程序首地址,PC自动加1,指向下一条应执行指令的地址,这就决定了程序是顺序执行的,即使转移或调子程序后,仍是顺序执行(见右图)。

如果在进行计算时,按存储程序式计算机体系结构的方式,应经过这样几个步骤:

2.1.2 程序的并发执行和资源共享

引入多道程序设计之后,系统内的情况就不同了。

1.多道程序的特点首先是并行(parallel,硬件实现)

并发(concurrence,软件实现)。

硬件上:利用通道(I/O处理机),主机与外设并行多通道,外设与外设并行。

软件上:同时把几个作业放入内存,这些程序段的执行在时间上是重叠的。

如果还用结点图表示

如采用一定的技术(spooling),I2可以与C1同时进行。C1申请I/O时(或时间片到),C2可以开始执行。I3又同时可以开始。

从例中可以看出

I1先于C1和I2;C1先于P1和C2;P1先于P2。

同时I2和C1,I3、C2和P1,I4、C3和P2是重叠的。

2.资源共享、程序并行带来了新问题

①失去了程序的封闭性:

假设一个飞机定票系统有两个终端,分别运行进程T1和T2。

进程执行:cobegin

repeat T1(x);

repeat T2(x);

coend

进程定义:

procedure T1(x1); | procedure T2(x2);

var x1:integer; | var x2:integer;

begin | begin

按用户要求找到aj; | 按用户要求找到aj;

x1:=aj; | x2:=aj;

if x1>=1 then | if x2>=1 then

begin | begin

x1:=x1-1; aj:=x1; | x2:=x2-1; aj:=x2;

输出一张票| 输出一张票

end; | end;

else 输出‚票售完‛| else 输出‚票售完‛

end; | end;

aj:=1 ,T1查询到x>=1,时间片到,轮到T2。发生错误,一个座位售给两个乘客。

可见当程序并发执行时,系统处于一个复杂的动态组合状态,各程序执行的相对速度不定,程序员极不容易看到两个同样的结果,且在众个结果中应该只有一个是正确答案,其它的皆错误。这种现象是程序执行时产生的新问题,这种错误与并发程序执行速度有关,是与时间有关的错误。

因此共享,共行有了公用变量后,计算结果与共行程序执行速度有关,失去了顺序程序的封闭性和可再现性。

②依赖与制约关系:各种程序由于同时存在于主存中,它们之间必定会存在着相互依赖,相互制约的关系,例如几个独立运行的用户程序,可能竞争同一资源(CPU,打印机)而相互制约,获得资源就能继续运行,而未获得者只好等待,直到可以获得资源。这是间接制约。还有直接制约关系,例如,用户程序要求I/O时,它就直接受到I/O何时完成的制约。在工厂的流水线上,下一道工序,直接受上一道工序的制约。

③程序与计算不再一一对应了:一个可重入码的程序可以对应多个用户程序(计算)。

3.动态性:在多道程序设计中,由于分时,共享,不论是系统程序还是用户程序,由于它们并发地在系统中运行,并且有各种相互制约关系,那麽他们在系统内部所处的的状态不断的改变,一个作业在CPU上运行,遇到请求I/O,就要等待,I/O完成后又去等CPU,得到CPU又去运行,因此多道程序的第三个特征是动态性。许多作业齐头并进,它们在系统中所处的状态是不断变化的。

程序有了并发、资源共享、制约关系和动态等特征,原来的程序的概念已难以刻划和反映系统中的情况,更难以用简单的顺序来实现多道程序设计,人们就引入了进程的概念。

2.1.3 进程模型

一、进程的定义和特征

1.进程的定义:

1978年全国操作系统会议将进程定义为:

进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。

简单说:进程是程序在处理机上的一次执行(Dijkstra)。

复杂的说:

①进程(或任务)是可以和别的计算共同执行的计算。(Donoven)

②进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单

位。

③进程是进程映象的执行(UNIX)。

这还是不好理解,换个方式说:

‚进程‛英文用‛process‛来代替,细心的同学查一下字典,会发现它的基本含义是处理。也就是说英文本身就说明它是动态的。

它是程序的一次执行,它是处理机执行一组程序的运动轨迹。进程是由程序,数据和PCB(Process Control Block)组成。

我们介绍操作系统的层次结构时,介绍处理机管理就是以进程调度管理方式来实现的。它是操作系统的内核,常驻内存中。

2.进程的特征:

为了让大家更好地理解进程的概念,我们还应该介绍进程所具有的基本特征:

(1) 动态性:动态性是进程最基本的特征,进程不是固有的,而是由操作系统创建的(生),固而执行完毕也可以撤消(死)。

例如:UNIX的进程家庭树

可见进程是具有一定生命期的,是动态地产生(user log-on)和消亡的(user log-off)。进程在系统存在过程中状态也是变化的(执行,等待)。

(login: 用户通名,通知系统创建进程,logout通知系统进程撤消,仅关终端,是给一个中断;重新login:,建一个新进程)。

(2) 共行性:许多进程根据申请资源不同,状态不同,可以在系统中排不同的队,有等CPU的,有等I/O通道的,有等内存分配的,PCB实际上是一个表,是进程唯一可见的实体,存在内存中。表的内容实际是用户上机时操作系统为用户建立的任务(task)表,用户将程序存入内存,要求运行,实际是向操作系统提出任务,操作系统为用户建立进程,也就是将你的任务填入一张表(PCB),把你申请的资源,优先级都填入表中,这叫创建进程,然后将你插入一个队列。

处理机空闲时,操作系统处理机调度程序就可以查等处理机的队列的链头,找到第一个表,查表,调度进程运行。不同的队,就有不同的进程在执行,实现并发。

(3) 独立性:进程是一个能独立运行的单位,也是系统进行资源分配和调度的一个独立单位。例如进程可以向系统提出资源请求,系统可以把资源分配给进程(操作系统查PCB表的队首,分配进程通过PCB表申请(排队申请))

(4) 结构特征:进程是由程序,数据和PCB三部分组成。

引入进程机制,机器内的作业就活了,它不是一个个的死程序,而是一个个可以独立运行,共享资源,竞争资源的单位,可以申请,排队,调度,就可以完成多道程序设计中的并行工作了。

进程和程序的区别:

①程序是静态概念,存入磁盘就存在了,进程是动态的,有生有死,为任务创建,任务完了就撤消。

②程序是永存的,进程是暂存的。

③程序和进程不是一一对应的,一个进程可以调几个程序,一个程序可能对应几个进程。

二、进程的状态及转换

由于单处理机实行多道程序设计,进程并非一直处理于运行状态。分时分时,时间片一到,就轮到下一个进程使用处理机。况且A进程申请I/O,系统马上就把CPU分给B进程,所以进程至少

相关文档
最新文档