It计算机课件 进程管理_第1页
It计算机课件 进程管理_第2页
It计算机课件 进程管理_第3页
It计算机课件 进程管理_第4页
It计算机课件 进程管理_第5页
已阅读5页,还剩181页未读 继续免费阅读

下载本文档

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

文档简介

第二章

进程管理

进程

•2.1进程

・2.1.1进程的引入

-“程序”一词大家都非常熟悉,接触计算机的人、学

计算机的人,多少都需要会写点程序代码。程序的定

义是:指令的有序集合,由它规定计算机完成某一任

务时所需做的各种操作及操作顺序。

-1.程序的顺序执行

程序的顺序执行

程序执行的特点

■程序的顺序执行有如下特点:

•(1)程序执行的顺序性。CPU的操作严格按照程序所规

定的顺序执行,即前一步操作完成后,才能进入下一步操

作。

•(2)程序运行时对资源的独占性。程序运行时,运行程

序独占系统全部资遮,没方其它程序与之争夺,只有程序

本身的动祚才能改变资源的状态。

•(3)程序结果的可再现性。当对某一程序重复执行时,

只要初始条件相同,必然获得相同的结果,程序执行的结

果与执行速度、时间无关。

•(4)程序结果的封闭性。程序运行时间的长短和最终结

果,只由初始条件和程序本身来确定,不会受到来自它以

外的其它因素的影响,也就是说,单道程序的运行自成一

袜,具有封闭性。

程序的并发执行

•2.程序的并发执行

并行执行的特性

•苫然矍盘在甚就I成用了一些和程序顺序执行时不同的特

•7;)程庠执行时的资源共享性

程序并发执行时,整个系统资源已经不能被某一个程序所

独占,"上_____工一算机系级中的蛰秋软、人嫂行资速九

硬资源包括CPU、内存、外设拿软件祢源除指各种系统

软件之外,还包括各种共享的数据等。

•(2)程序失去了封闭性和可再现性

•程序并发执行时,是多个程序共享系统中的各种资源,因

而这些资源的状态将由多个程序来改变,即资源的状态不

能反映出某一个程序执行的情况,致使程序的结果失去封

闭性。这样某程序在执行时,必然会受其它程序的影响。

程序在并发执行时失去了封闭性,也将要导致其失去可再

现性。

程序实例

/**ProgramA**/

intn=0;〃设置一个全局变量n初值为0

main()〃进入并发执行

(

while(1)〃无限循环

(

n++;〃程序A每次对n+1

}

)

/**ProgramB**/

main()〃进入并发执行

(

while(1)〃无限循环

(

printf("%d",n);〃程序B每次打印n的值

n=0;〃并将n置为0

)

)

并发程序的制约性

•(3)并发程序之间的相互制约性

•由于程序并发执行,它们共享系统内的各种资源,因此程

序之间的关系就要复杂得多,产生相互制约关系。例如在

图2-2中P1、C2和I3是并行的程序段。但如果C1程序段未

完成,则不仅P1程序段无法执行,而且C2程序段也不能

进行。因为C1和C2不能共用一个处理器完成计算操作,

使得C2处于暂时等待状态,只有C1完成后,C2才能恢复

执行。所以程序并发执行使本来相互无逻辑关系的用户程

序之间产生了相互关系,使得并发执行的程序具有了“执

行一暂停一执行”的活动规律,产生了程序执行的间断性

特征。如果想要并发程序还能保证封闭性和可再现性,那

么几段程序间就要保证无共享变量。

并发与顺序的比较

顺序程序并发程序

执行过程顺序执行并发执行

程序与执行对应对应一个程序PJ对应多个执

封闭性独占资源,具有封闭共享资源,不具有封闭

性性

确定性具有无

可再现性具有无

程序间关系无有直接或间接制约关系

进程的概念

•4,进程的概念

■进程(Process)这个名词最早是1960年在MIT的

MULTICS和旧M公司的TSS/360系统中提出的,直至U目

前对进程的定义和名称均不统一,不同的系统中采用不同

的术语名称,例如,MIT称进程(Process),旧M公司称

任务(Task)和Univac公司称活动(Active)□可以说进

程的定义多种多样,国内学术界较为一致的看法是:进程

是一个可并发执行的具有独立功能的程序关于某个数据集

合的一次执行过程,也是操作系统进行资源分配和保护的

基本单位(1978年全国操作系统学术会议)。

进程的属性

-进程具有如下属性:

(1)结构性:进程包含了数据集合和运行于其上的程序,

为了描述和记录进程的动态变化过程使其能正确运行,还

需配置一个进程控制块,所以,每个进程至少有三要素组

成:程序、数搪和进程控制块。

(2)共享性:同一程序同时运行于不同数据集合上时,

…一__._o或者说(多个不同的进程可以共享相同

的程序,所以,进程和程序不是一一对应的。

(3)动态性:进程是程序在数据集合上的一次执行过程,

是动态概念,同时,它还有生命周期,由创建而产生,由

调度而执行,由一撤皿销而逍亡;而程序是一组有序指令序列,

是黯态,所以.,程岸作为一种系统资源是永久存在的。

进程的并发性

(4)独立性:进程既是系统中资源分配和保护的基本单

位,也是系统调度的独立单位(单线程进程)。凡是未建

立进程的程序,都不能作为独立单位参与运行。通常,每

个进程都可以以各自独立的速度在CPU上推进(有的教

材称之为异步性)。

(5)制约性:并发进程之间存在着制约关系,进程在进

行的关键点上需要相互等待或互通消息,以保证程序执行

的可再现性和计算结果的唯一性。

(6)并发性:进程可以并发地执行,进程的并发性能改

进资源利用率和提高系统效率。

进程与程序的联系与区别

•5.进程和程序的联系及区别

•从进程的定义可以看出,进程和程序是既有密切联系又有

区别的两个完全不同的拶撬羲龄理解进程的含义,

下面进一步分析进程和住

•(1)进程是动态的,程序是静态的

•(2)进程是暂时的,程序是永久的

•(3)进程与程序的组成不同

•(4)进程与程序的对应关系

•进程和程序之间不存在一一对应关系。一个程序可以对应

多个进程;反之,一个进程至少要对应一个程序,或对应

多不程序,多个进程也可对应相同的程序。

•(5)进程具有并发特征(独立性和异步性)

进程的状态

2.1.2进程的状态

•1.进程的三状态模型

•运行(running)态:进程占有CPU正在运行。进程已获

得必要的资源并占有CPU,正在执行的状态。在单CPU系

统中,只能有一个进程处于运行状态。在多CPU系统中则

可能有多个进程处于运行状态。

•就绪(ready)态:进程具备运行条件,等待系统分配

CPU以便运行。进程已得到除CPU以外的全部资源,是一

旦获得CPU就可以执行的状态,此时的进程是在就绪队列

中。

•阻塞(blocked)态:又称为等待(wait)态或睡眠

(sleep)态,指进程不具备运行条件,正在等待某个事

件的完成。

进程的状态图

1.进程调度

2.等待某个事件发生

3.某个事件已经发生

4.时间片用完或有史

岛优先级的进程到来

进程状态转换

•引起进程状态转换的具体原因如下:

•就绪态一一>运行态:CPU空闲时,调度程序选中一个就绪

进程来执行,也就是说处于就绪态的某进程被进程调度程

序的执行选中;

•运行态一一>阻塞态:等待使用资源或某事件发生,如等待

外设数据、等待人工干预。它是由运行进程自己主动改变

的,一个正在运行的进程启动了某一外围设备后,等待该

外围设备传输完成时,使自己由运行态变为阻塞态。

进程状态转换

•阻塞态一一>就绪态:资源得到满足或某事件己经发生,如

外设传输结束、人工干预完成。它是由外界事件引起的,

外围设备传输已经完成时,请求中断,由I/O中断处理程

序把因等待这一I/O完成而阻塞的进程变为就绪态。

•运行态一一>就绪态:运行时间片到、或出现有更高优先级

的进程到来。此时,处于运行态的进程被剥夺CPU。采用

时间片轮转法调度时,当前运行进程用完分给它的时间片

后,将由运行态变为就绪态;或采用优先级调度时,若有

更高优先级的进程变为就绪态,当前进程被迫放弃CPU,

使自己由运行态变为就绪态,之后转进程调度。

进程的五状态模型

•2.进程的五状态模型

■NULL-->创建态:执行一个程序,创建一个子进程。

•创建态一一>就绪态:操作系统完成了进程创建的必要操作,

并且当前系统的性能和内存的容量均允许时,提交执行。

•运行态一一>终止态:当一个进程到达了自然结束点、或是

出现了无法克服的错误、或是被操作系统所终结、或是被

苴他讲稗级《士

•①止态一■^NULL:完成善后操作,回收资源,退出内存。

•就绪态一一>终止态:未在状态转换图中显示,但某些操作

系统允许父进程终结子进程。

•阻塞态一一>终止态:未在状态转换图中显示,但某些操作

系统允许父进程终结子进程。

进程的五种状态模型

进程七种状态模型

•3.进程的七状态模型

•引起进程挂起的原因是多样的,主要有:

•(1)系统中的进程均处于等待状态,CPU空闲,此时需

要把一些等待进程对换出去,以腾出足够的内存装入就绪

进程运行。

•(2)进程竞争资源,导致系统资源不足,负荷过重,此

时需要挂起部分进程以调整系统负荷,保证系统的实时性

或让系统正常运行。

进程的七种状态模型

(3)把一些定期执行的进程(如审计程序、监控程序、

记账程序)对换出去,以减轻系统负荷。

(4)用户要求挂起自己的进程,以便根据中间执行情况

和中间结果进行某些调试、检查和改正。

(5)父进程要求挂起自己的后代进程,以进行某些检查

和改正。

(6)操作系统需要挂起某些进程,检查运行中资源使用

情况,以改善系统性能;或当系统出现故障或某些功能受

到破坏时,需要挂起某些进程以排除故障。

七种状态

进程完成

扶起

七种状态的转换

•引起进程状态转换的具体原因如下:

•阻塞态一一>挂起阻塞态:如果当前不存在就绪进程,也就

是CPU目前处于空闲状态,那么,就必须将一个阻塞态进

郎加翳出去成为挂起阻塞态,以便腾出内存,装入新的就

­挂起阻星态一一>挂起就绪态:引起进程等待的事件发生之

后,相应的挂起阻塞态进程将转换为挂起就绪态。

•挂起就绪态一一>就绪态:当内存中没有就绪态进程,或者

挂起就绪态进程具有比就缰态进程更高的优先级,系统将

加挂翘就普态进程调回内存并转换成就绪态。

•就绪态一一>挂起就绪态:内存中的进程都处于就绪状态,

此时外存中有一个更高优先级的任务需要运行,但内存的

空间不些,则必须把内存中的就绪态进程对换出去成为挂

起就绪

七种状态转换

•挂起阻塞态一一>阻塞态:当一个进程等待一个事件时,原

则上不需要把它调入内存。但是在下面一种情况下,这一

状态变化是可能的。当一个进程退出后,内存已经有了足

够的自由空间,而某个挂起阻塞态进程具有较高的优先级

并且操作系统已经得知导致它阻塞的事件即将结束,便可

能发生这一状态变化。

•运行态一一>挂起就绪态:当一个具有较高优先级的挂起阻

塞态进程的等待事件结束后,它需要抢占CPU,而此时内

存空间不够,从而,可能导致正在运行的进程转化为挂起

就绪态。另外,处于运行态的进程也可以自己挂起自己。

■创建态一一>挂起就绪态:考虑到系统当前资源状况和性能

要求,可以决定新建的进程将被对换出去成为挂起就绪态。

挂起的进程的特征

•不难看出,可以把一个挂起进程等同于不在内存的进程,

因此,挂起的进程将不参与低级调度直到它们被对换进内

存。一个挂起进程具有如下特征:

•该进程不能立即被执行。

•挂起进程可能会等待一个事件,但所等待的事件是独立于

挂起条件的,事件结束并不能导致进程具备执行条件。

•进程进入挂起状态是由于操作系统、父进程或进程本身阻

止它的运行。

•结束进程挂起状态的命令只能通过操作系统或父进程发出。

PCB

2.1.3进程控制块

•1.进程控制块PCB(ProcessControlBlock)

>进程控制块(PCB)是操作系统为了管理进程设置的一个专

门的数据结构,用它来记录进程的外部特征,描述进程的

运动变化过程。系统利用PCB来控制和管理进程,一个进

程只有一个PCB,PCB是进程存在与否的唯一标记,因为

操作系统只有依据PCB才能感知进程、管理进程与控制进

程,所以PCB是系统感知进程存在的唯一标志。进程与

PCB是——对应的。

PCB中的信息

•在不同的操作系统中对进程的控制和管理机制不同,PCB

中的信息多少也不一样,通常PCB应包含如下一些信息:

(1)描述信息

(2)管理信息

(3)资源清单

包括本谭程已装得的外设类别、壑量、共赛段的始址与长

度等各和资源秸息以及本进程正在申请的底源名称等。

(4)现场保存区

用于保留进程暂停时的断点信息以便重新运行时恢复,比

如CPU各个寄存器的值。

(5)其他

例如指向下一个PCB链接指针。

PID

Tindovs任务昔理器

文件但)选项地)查看9帮助⑥

应用程序进程1性能1联网1用户1

映像名称IFID|用户名|CPU|

QQ.exe4504Admin..23E

QQ.exe5364Admin..00

RavfflonD.exe1032SYSTEM00

RavTask.exe1844SYSTEM00

RavTask.exe2008SYSTEM00

RfwSrv.exe1000SYSTEM001

rsnetsvr.exe1088SYSTEM001

RSTray.exe3224Admin...001

RsTray.exe3300Admin..002

RsTray.exe3352Admin...001

ScaKFrm.exe2060SYSTEM00

services,exe464SYSTEM00

SMAgent.exe2068SYSTEM00

SMax4PNP.exe3108Admin...00

smss.exe336SYSTEM00

spoolsv.exe1484SYSTEM00

ssMgr_ccbexe3212Admin...00▼]

....7ioCVCTVIInn

打_________[2J

I7显示所有用户的进程(S)结束进程更)

进程数:「57-而礴;28%「内存使用:910M/2659H

PCB

•2.PCB的组织方式

•(1)线性方式

•••

PCB।PCB:PCB、PCBnlPCB”

PCB

(2)链接方式

PCB

(3)索引方式

优用*川<B衣

I'tJH

氏1

PCIW

PCR7

F*,Kyl«Mi

附BI0

IIHII

RBI2

PTBI5

PCBI4

PCBI5

进程上下文

2.1.4进程的映像

操作窣/T也仕仪上王六少似乂3寸也4土心IJ口VI、"口wyy

进程工卞又(ProcessContext3。当系统调度新程占

有CPU时,新老进程随之发生上下文切换。在操作系统中,

进程上下文包括三个组成部分:

用户级上下文(UserLevelContext):由用户进程的程

序块、用户数据块(含共享数据块)和用户堆栈组成的进

程地址空间。

系统级上下文(SystemLevelContext):包括进程的

无朋宸盘X班场值息控制信息,进程环境块,以及系统

隹栈等组成的进住空间。

寄存器上下文(RegisterContext):由程序状态字寄存

器、餐类控制寄存器、地址寄存器、通用寄存器、用户栈

指针琴组成。

进程映像

­进程的内存映像可以很好地说明进程的组成。简单的说,

一个进程映像(ProcessImage)(也称为进程的实体)

包括:

•程序块,即被执行的程序,是纯代码,作为一种系统资源

可被多个进程共享。

•数据块,即程序运行时加工处理对象,包括全局变量、局

部变量和常量的存放区。

■系统/用户堆栈,用来解决过程调用或系统调用时的信息

存储和参数传递。

•进程控制块,用来存储进程的标志信息、现场信息和控制

信息。

用户进程在虚拟内存中的映像

扶享地址空间

多个进程在虚拟内存中的映像

进程1进程2道程n

进理进程进程

标识符标识符标识符

进程进程进程进程

控制块,

伏态信息状态信息状态信息

进程进程进程

•控制信息控制佶息控制信息

用户比根用户堆檎用户址栈

私有的用私有的用私力的用

户地址空户地址空户地址空

间(程问(程间(程

序、数序、数序、数

据)据)据)

共享的地址空间

操作系统的控制结构

215OS的控制结构

•操作系统的控制表分为四类:进程控制表,存储控制表,

I/O控制表和文彳牛控制表。

•进程控制表用来管理进程及其相关信息。

辘备解配信息、存储保护和

区共享褶息、虚拟存心

•I/O控制表用来管理计算机系统的I/O设备和通道,主要内

容包括:I/O设备和通道是否可用,I/O设备和通道的分配

信息,I/O操作的状态和进展,I/O操作传输数据所在的内

存区。

•文件控制表用来管理文件,主要内容包括:被打开文件的

值息,文件在内存和外存中的位置信息,被打开文件的状

态和其他信佳彳百息。

进程与资源

操作系统控制表的通用结构

进程的控制

•2.1.6进程的控制

•内核应该具有3个最基本的功能:

•(1)中断处理

•中断处理是内核最基本的功能。操作系统的重要活动最终

都将依赖于中断(系统调用、键盘命令的输入、进程调

度)。通常内核只对中断进行“有限的处理”,然后便转

交给有关进程继续处理。

•(2)时钟管理

•操作系统中的许多活动都需要时钟管理,例如:在时间片

轮转调度中,每当时间片用完时,由时钟管理产生一个中

断信号,促使调度程序重新调度。

•(3)原语操作

原语

•(3)原语操作

■在系统状态下执行的某些具有特定功能的程序段称为原语。

原语也是由若干条指令构成的,用于完成一定的功能,原

语有几个特点:

・原语是机器指令级的,执行其间不允许中断;

•原语是功能级的,作为原语的程序段不允许并发执行;

•原语是原子级的,一个操作中的动作要么全做,要么全不

做。

进程创建原语

•1.创建原语

•一个进程可借助于创建原语来创建一个新的进程,在Unix

系统中,forkO函数是用来创建进程的,在Win32位API

中,创建进程是由CreateProcess()完成的。这实际上是

个宏定义,根据不同的情况定义成CreateProcessA()或

CreateProcessW()之一,这两个函数都在kernel32.dll中。

两个函数的区别仅在于字符串的表达,前者采用ASCII字

符,而后者采用“宽字符",即Unicode。实际上

Windows的内部都采用宽字符,所以前者只是把字符串转

换成宽字符格式,然后调用后者。那么哪些事件会触发进

程的创建呢?

进程创建的时机

•(1)进程创建的时机

系统初始化时操作系统启动时,不断创建一些新的进程,

成系统的初始化操隹,最后用户在终骑舞入登录命令…后,

刃、统将为该装端用户建立一进程,并把管痛入就绪队列。

系统调用时当运行中的用户程序提出某种请求后,必须

通过系统调用来使用系统提供的服务,系统将专门创建一

个进程来提供用户所需要的服务。

•用户进程创建基于应用的需要,用户进程(父进程)自

己创建一个新的进程(子进程),父进程和子进程可并发

执行。

•批处理系统初始化在批处理系统中,将作业装入内存时,

为它分配必要的资源,系统并立即为它创建进程,再插入

就绪队列。

进程的创建

•(2)进程的创建

■一旦OS发现了要求创建新进程的事件后,便调用进程创

建原语创建进程,步骤如下:

•申请空白PCB。分配唯一的数字标识符(PID)。

•为新进程分配资源。为其程序和数据,以及用户栈分配必

要的内存空间。

•初始化进程控制块。把调用者提供的参数:进程名、进程

优先级、实体所在内存的起始地址、所需的资源清单、记

帐信息及进程家族关系等填入PCB结构中。

■将新进程插入就绪队列和家族队列。将新进程的PCB指针

连到就绪队列和家族队列中。

进程创建流程

撤销进程

2语L

11现

)

退

个中

正<>

:-

,,

球2

<主>

退

.出

温馨提示

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

评论

0/150

提交评论