进程描述

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构特征:进程由程序、数据和进程控制块三部分组成。 31
进程的概念
思考:进程与程序有什么区别和联系?
程序 输入 运行 输出
阅读菜谱 准备原料 烹制菜肴
饭菜
做饭进程
主妇
分时切换
阅读洗衣机手册 准备衣服、洗衣粉 设定参数,洗衣服
干净衣服
洗衣进程
程序 输入 运行 输出
32
进程的概念
进程与程序的关系
① 程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概
23
例1 (结果不唯一)购买飞机票问题。
24
例1 (结果不唯一)购买飞机票问题。
由一于个T计1算和机T2系是统两中个运可行同,时共执享行A的j,并因发此进,程可,能它出们现在如同 下所示的运行情况。 作为并发多道程序,其有三个特点:
①多道 ②宏观上并行 ③微观上串行
微观上串行的含义是多道程序轮流和分时的占有处理 机,交替执行。 当这个交替执行交替的不巧的时候,就会产生与时间 有关的错误。
8
单道情况下,在一道程序执行过
程中系统的所有资源都是由这一 道程序独自占有的
顺序程序设计的特“点简单说就是在这道程序执行

程中不存在资源的动态增加或减
少”
ຫໍສະໝຸດ Baidu
2.环境的封闭性。
程序一旦开始执行,其计算结果不受外界的影 响,当程序的初始条件给定之后,其后的状态 只能由程序本身确定,即只有本程序才能改变 它。
为了深刻描述程序动态执行过程的性质,人们引入“进程
(Process)”概念。 29
进程的概念
进程的概念是60年代初首先由麻省理工学院的MULTICS系统和IBM公司的 CTSS/360系统引入的。 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动,是 系统进行资源分配和调度的一个独立单位。生活例子:一人按菜谱做菜 。 进程是对正在运行的程序的抽象,是OS最核心的概念。计算机上所有 可 运行的软件,包括OS,被组织成若干进程。
20
与时间有关的错误
两个交互的并发进程,其中一个进程对另一个 进程的影响常常是不可预期的,甚至无法再现。 这是因为两个并发进程执行的相对速度不可 预 测,交互进程的速率不仅受到处理器调度 的影 响,而且还受到与其交互的并发进程的 影响, 甚至受到与其无关的其他进程的影响 ,所以, 一个进程的速率通常无法为另一个 进程所知。
17
程序并发执行的描述
假设有一个程序由S0-Sn+1个语句,
其中 S1-Sn语句是并发执行的,程序如下:
S0; cobegin
S1;S2;S3;...;SN coend; Sn+1; 示意图如右所示:
18
程序并发执行的描述
由上面的程序运行先 后示意图,我们所期 望的效果是: 先执行S0,再执行S1, S2,…,Sn; 当S1,S2,…,Sn全部 执行完毕后,再执行 随后的语句Sn+1
21
与时间有关的错误
因此,对资源的共享充满了危险,各种与时 间有关的错误就可能出现,与时间有关的错 误有两种表现形式:
① 是结果不唯一; ② 是永远等待。
为了说明与时间有关的错误,现观察下面的 例子:
22
例1 (结果不唯一)购买飞机票问题。
假设一个飞机订票系统有两个终端,分别运 行 进程Tl 和T2。 该系统的公共数据区中的一些单元Aj(j=l, 2 ,…)分别存放某月某日某次航班的余票数, Tl 和T2共享Aj。飞机票售票程序如下:
进程的概念
程序整体失去了顺序性,
间程特待断征序性的:程并序发在并执谁发得到执到资行资行时源源的,谁就资的由执等源 执于行行变共,过成享得程了资不中共源,享,资,或源在者的程需种序要相互合作,致
使相互间产生了制约关系,呈类“和走数走量停都停在”动的态间变断化执行特征
失。去封闭性:程序并发执行时的系统环境(主要指各程序所共享的
进程描述
前趋图
前趋图是一个有向无循环图,记为DAG (Directed Acyclic Graph),用于描述进程之 间执行的前后关系。 图中的每个结点可用于描述一个程序段或进程 , 乃至一个语句;结点间的有向边‘→’则用 于 表示两个结点之间存在的偏序或前趋关系。
2
前趋图
→={(Pi,Pj)|Pi must complete before Pj may start},如果( Pi,Pj )∈ →,可写成 Pi → Pj,称为Pi是Pj的直接前趋,而称Pj是Pi 的直接后继。 。
创建态
运行态
终止态




出现等待事件
就绪态 等待事件结束
阻塞态
38
进程的概念
创建态对应进程刚被创建的状态。为一个新进程创建必要的管 理 信息,它并没有被提交执行,而是在等待操作系统完成创建进 程 的必要操作。
阻塞状态(Blocked)也叫等待状态,是指进程因等待某种事件发生(例
如等待I/O操作完成,等待其他进程发来的信号)而暂时不能运行的状态, 也就是说,处于阻塞状态的进程尚不具备运行条件,即使CPU空闲它也无 法使用。
34
进程的概念
35
进程的概念
引起进程状态转换的具体原因 就绪 --> 运行:调度程序选择一个新的进程运行 运行 --> 就绪: 1 运行进程用完了时间片; 2 运行进程被中断,因为一高优先级进程处于就绪状态 运行 --> 阻塞(等待):等待某种事件,如OS尚未完成服务;对 一资源的访问尚不能进行;初始化I/O 且必须等待结果;等待某 一 进程提供输入 (IPC) 阻塞(等待) --> 就绪:当所等待的事件发生时
19
采用并发程序设计的目的
采用并发程序设计的目的是: 充分发挥硬件的并行性,消除处理器和I/O 设 备的互等现象,提高系统效率。 机器部件能并行工作仅仅有了提高效率的可 能 性,而机器部件并行工作的实现还需要软 件技 术去利用和发挥,这种软件技术就是并 发程序 设计。 并发程序设计是多道程序设计的基础,多道 程 序的实质就是把并发程序设计引入到单处 理器 的系统中。
系 统资源的状态)是由多个程序来改变的,因而失去了封闭性。
不可再现性:程序在并发执行时的结果与其执行速度等有关,从而不
可再现。
28
进程的概念
进程的概念
多道程序在执行时,需要共享系统资源,从而导致各程序在
执行过程中出现相互制约的关系,程序的执行表现出间断性 的特征。这些特征都是在程序的执行过程中发生的,是动态 的过程,而传统的程序本身是一组指令的集合,是一个静态 的概念,无法描述程序在内存中的执行情况,即我们无法从 程序的字面上看出它何时执行,何时停顿,也无法看出它与 其它执行程序的关系,因此,程序这个静态概念已不能如实 反映程序并发执行过程的特征。
④ 同一程序同时运行于若干个不同的数据集合上,它将属于若干个不同
的 进程,也就是说同一程序可以对应多个进程。
33
进程的概念
进程的状态
运行态(Running)是指当前进程已经分配到CPU,它的程序正在处理
机 上执行的状态。
就绪状态(Ready)是指已具备运行条件,但因为其他进程正在占用CPU,
使它暂时不能运行而处于等待分配CPU的状态。
念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。 程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序 是永久的,进程是暂时的。
② 引入进程后,进程是系统进行资源分配的独立单位,而程序不再是。 ③ 进程具有创建其他进程的功能,而程序没有。同时引入进程后,进程变
成了系统进行处理机调度的独立单位,它可以和其他的进程并发执行。
15
程序并发执行(定义)
程序并发执行:若干个程序段同时在系统中运 行,这些程序的执行在时间上是重迭的,一个 程序段的执行尚未结束,另一个程序段的执行 已经开始,即使这种重迭是很小的,也称这几 个程序段是并发执行的。
16
程序并发执行的描述
程序并发执行的描述 cobegin
S1;S2;S3;...;SN coend; 其中Si(i=1,2,3,...,n)表示n个语句(程序段),这n 个语句用cobegin和coend括起来表示这n个语句是可以 并发执行的。 说明:co是concurrent的头两个字符。 这是著名的荷兰计算机科学家Dijkstra提出的。
25
一道考研题
兄弟俩共用一个账户,每次限存或取10元,存 钱与取钱的进程如下所示,由于兄弟俩可能同 时存钱和取钱,因此两个进程是并发的。若哥 哥先存了两次钱,但在哥哥第三次存钱时,弟 弟在取钱,请问最后的帐号上amount可能有多 少钱?(南京大学2000年考题 5分) :
26
答案:amount=20,30,10 27
也就是说,I1、C1、P1的执行必须严格按照I1, C1,P1的顺序, I2、C2、P2的执行也必须严格 按照I2,C2,P2的顺序,而C1与I2, P1与C2 、 I3是可以同时执行的。
14
讨论
(1) 哪些程序段的执行必须是顺序的?为什么? (2) 哪些程序段的执行可以是并行的?为什么?
并发性:程序之间 顺序性:程序之内
30
进程的概念
进程的特征
动态性:进程的实质是程序的一次执行过程,进程是动 态 产生,动态消亡的。
并发性:任何进程都可以同其他进程一起并发执行 独立性:进程是一个能独立运行的基本单位,同时也是
系 统分配资源和调度的独立单位; 异步性:由于进程间的相互制约,使进程具有执行的间断
性,即进程按各自独立的、不可预知的速度向前推进
3
前趋图
例题:假设某个程序段包含如 下 语句:
int a,b,c,d,e,f;
int t1,t2,t3,t4,t5;
s1
s2
s3
s1: t1=a+b; s2: t2=c+d; s3: t3=e/f; s4: t4=t1*t2;
s5: t5=t4-t3;
s4 s5
4
程序的顺序执行 单个程序有一系列有序的代码和数据构成,必 须按照严格的先后次序顺序地执行,即只有当 一个操作结束后,才能开始后继操作。 这种程序执行的方式就称为程序的顺序执行。
顺序程序设计的顺序性、封闭性和再现性给程 序的编制、调试带来很大方便,其缺点是计算 机系统效率不高。
11
程序的并发执行及其特征
例:讨论在多道批处理系统中,对大量作业的 处理在系统中有n个作业,每个作业都有三个 处理步骤,输入数据、处理、输出,即 Ii,Ci,Pi (i=1,2,3,...,n) 。 对 作 业 1 、 作 业 2、…,作业n的处理:
特别注意:进行输入输出操作时进程处于“阻塞”状态
36
进程的概念
☺ 考考你:
1.如果某单处理系统中有N个进程,运行的进程最多几个, 最少几个;就绪进程最多几个最少几个;等待进程最多几个, 最少几个? 2. 有没有这样的状态转换,为什么? 1 等待—运行; 2 就绪—等待
37
进程的概念
进程五态模型及其转换
9
顺序程序设计的特点 由环境的封闭性决定
3.计算过程的可再现性。 程序执行的结果与初始条件有关,而与执行时 间(执行速度)无关。即只要程序的初始条件 相同,它的执行结果是相同的,不论它在什么 时间执行,也不管计算机的运行速度。 这样当程序中出现了错误时,往往可以重现错 误,以便进行分析。
10
顺序程序设计的特点
7
顺序程序设计的特点
传统的程序设计方法是顺序程序设计 (Sequential Program这m里in的g顺),序性即主把要指一个程序 设 计成一个顺序执行的程程序序整模体块的顺。序顺性 序 程序设计 具有如下的特点: 1.执行的顺序性。 一个程序在顺序处理器上的执行是严格按序的 , 即每个操作必须在下一个操作开始之前结束 。
5
例:讨论单道系统的工作情况
用户作业的处理,通常分为如下三段 :
① 首先输入用户的程序和数据 ② 然后进行计算 ③ 最后打印计算结果
6
图中有两点需要注意:
例:讨1论.顺序单性:道作系业整统体有的顺序工,作作业情 执行也是有次序的。
况 内部 的 2.任何一个结点有且最多只有一个直接前
这三个趋结顺点序,任执何行一的个结操点作有且分最别多设 I:只输有入为一个操—直作接后C继:结计点。算操作 P:输出操作
作业1: I1 C1 P1 作业2: I2 C2 P2 ┇┇ 作业n: In Cn Pn
12
1.作业整体不再具有顺序性;
批量作业执行的先后2.于对次一任个何序一的个直结接点前,趋可结以点有多
,可
以有多余一个的直接后继结
点。
13
程序的并发执行及其特征 这些作业系统中执行时是对时间的偏序,有些 操作必须在其它操作之前执行,这是有序的, 但有些操作是可以同时执行的。
相关文档
最新文档