操作系统第四章并发.ppt
《操作系统第四章并发.ppt》由会员分享,可在线阅读,更多相关《操作系统第四章并发.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 李波李波华中科技大学文华学院华中科技大学文华学院操作系统原理操作系统原理1 1 第四章 并发处理2 2第四章第四章 并发处理并发处理4.1 并发活动进程的引人 操操作作系系统统的的特特性性之之一一是是并并发发与与共共享享,即即在在系系统统中中(内内存存)同同时时存存在在几几个个相相互互独独立立的的程程序序,这这些些程程序序在在系系统统中中既既交交叉叉地地运运行行,又又要要共共享享系系统统中中的的资资源源,这这就就会会引引起起一一系系列列的的问问题题,包包括括:对对资资源源的的竞竞争争、运运行行程程序之间的通信、程序之间的合作与协同等符。序之间的通信、程序之间的合作与协同等符。要要解解决决这这
2、些些问问题题,用用程程序序的的概概念念已已经经不不能能描描述述程程序序在内存中运行的状态,必须引人新的概念进程。在内存中运行的状态,必须引人新的概念进程。3 34.1 4.1 并发活动进程的引人并发活动进程的引人4.1.1 4.1.1 程序的顺序执行程序的顺序执行l l 一、概念一、概念l l 一一个个程程序序由由若若干干个个程程序序段段组组成成,而而这这些些程程序序段段的的执执行行必必须须是是顺顺序序的的,这这种种程程序序执执行行的的方方式式就就称称为为程程序序的的顺序执行。顺序执行。l l 例如:例如:4 44.1 4.1 并发活动进程的引人并发活动进程的引人4.1.1 4.1.1 程序的
3、顺序执行程序的顺序执行 二、程序顺序执行的特点二、程序顺序执行的特点1.1.顺序性顺序性 处处理理机机严严格格按按照照程程序序所所规规定定的的顺顺序序执执行行,即即每每个个操操作作必必须须在在下下一个操作开始之前结束一个操作开始之前结束。2.2.封闭性封闭性 程程序序一一旦旦开开始始执执行行,其其计计算算结结果果不不受受外外界界的的影影响响,当当程程序序的的初初始始条条件件给给定定之之后后,其其后后的的状状态态只只能能由由程程序序本本身身确确定定,即即只只有有本本程程序才能改变它。序才能改变它。3.3.可再现性可再现性 程程序序执执行行的的结结果果与与初初始始条条件件有有关关,而而与与执执行行
4、时时间间无无关关。即即只只要要程程序序的的初初始始条条件件相相同同,它它的的执执行行结结果果是是相相同同的的,不不论论它它在在什什么么时时间执行,也不管计算机的运行速度。间执行,也不管计算机的运行速度。5 54.1 4.1 并发活动进程的引人并发活动进程的引人4.1.2 4.1.2 程序的并发执行程序的并发执行例:例:在在系系统统中中有有n n个个作作业业,每每个个作作业业都都有有三三个个处处理理步步骤骤,输入数据、处理、输出,即输入数据、处理、输出,即I Ii i,C,Ci i,P,Pi i(i=1,2,3,.,n)(i=1,2,3,.,n)。这这些些作作业业系系统统中中执执行行时时是是对对
5、时时间间的的偏偏序序,有有些些操操作作必必须须在在其其它它操操作作之之前前执执行行,这这是是有有序序的的,但但有有些些操操作是可以同时执行的。作是可以同时执行的。例如例如:I1I1、C1C1、P1P1的的执执行行必必须须严严格格按按照照I1I1,C1C1,P1P1的的顺顺序,而序,而P1P1与与I2I2,C1C1与与I2I2,I3I3与与P1P1是可以同时执行的。是可以同时执行的。6 64.1 4.1 并发活动进程的引人并发活动进程的引人4.1.2 4.1.2 程序的并发执行程序的并发执行l l例如例如:l l I1 I1、C1C1、P1P1的执行必的执行必须严格按照须严格按照I1I1,C1C
6、1,P1P1的顺序,而的顺序,而P1P1与与I2I2,C1C1与与I2,I3I2,I3与与P1P1是可以同时是可以同时执行的。执行的。7 74.1 4.1 并发活动进程的引入并发活动进程的引入4.1.2 4.1.2 程序的并发执行程序的并发执行l程序并发执行(定义)l 若若干干个个程程序序段段同同时时在在系系统统中中运运行行,这这些些程程序序的的执执行行在在时时间间上上是是重重迭迭的的,一一个个程程序序段段的的执执行行尚尚未未结结束束,另另一一个个程程序序段段的的执执行行已已经经开开始始,即即使使这这种种重重迭迭是是很很小小的的,也也称称这这几几个个程程序序段段是是并并发执行的。发执行的。8
7、84.1 4.1 并发活动进程的引人并发活动进程的引人4.1.2 4.1.2 程序的并发执行程序的并发执行程序并发执行的描述程序并发执行的描述 cobegin cobegin S S1 1;S;S2 2;S;S3 3;.;S;.;SN N coend;coend;S Si i(i=1,2,3,.,n)(i=1,2,3,.,n)表表示示n n个个语语句句(程程序序段段),这这n n个个语语句句用用cobegincobegin和和coendcoend括括起起来来表表示示这这n n个个语语句句是是可可以以并并发执行的。发执行的。coco是是concurrentconcurrent的头两个字符。的头两
8、个字符。这是这是DijkstraDijkstra提出的。提出的。9 94.1 4.1 并发活动进程的引人并发活动进程的引人4.1.2 4.1.2 程序的并发执行程序的并发执行l l假设有一个程序由假设有一个程序由l lS S0 0S Sn+1n+1个语句,个语句,l l其其中中 S S1 1S Sn n语语句句是是并并发发执行的,程序如下:执行的,程序如下:l l S S0 0;l l cobegin cobeginl l S S1 1;S;S2 2;S;S3 3;.;S;.;SN Nl l coend;coend;l l S Sn+1n+1;10104.1 4.1 并发活动进程的引入并发活动
9、进程的引入4.1.3 4.1.3 并发执行实行誊抄并发执行实行誊抄一、一个循环程序顺序执行的誊抄一、一个循环程序顺序执行的誊抄算法算法1 1:输入:输入:f f 输出:输出:g g while(f while(f 不为空)不为空)input;input;output;output;由这个程序完成誊抄工作是不会出错的。由这个程序完成誊抄工作是不会出错的。11114.1 4.1 并发活动进程的引人并发活动进程的引人4.1.3 4.1.3 并发执行实行誊抄并发执行实行誊抄二、两个程序并发执行完成誊抄二、两个程序并发执行完成誊抄l l 设有一台标准输入设备(键盘),和一台标准输出设有一台标准输入设备(
10、键盘),和一台标准输出设备(显示器或打印机),输入程序负责从标准设备设备(显示器或打印机),输入程序负责从标准设备中读取一个字符,送缓冲区中。输出程序从缓冲区中中读取一个字符,送缓冲区中。输出程序从缓冲区中取数据,送标准设备输出。取数据,送标准设备输出。12124.1 4.1 并发活动进程的引人并发活动进程的引人4.1.3 4.1.3 并发执行实行誊抄并发执行实行誊抄二、两个程序并发执行完成誊抄二、两个程序并发执行完成誊抄算法:算法:2 2 cobegin cobegin while(while(不为结束符)不为结束符)/*/*输入程序段输入程序段 */*/input;/*input;/*从标
11、准输入设备读入一个数据从标准输入设备读入一个数据*/*/send;/*send;/*将读入的数据送到将读入的数据送到bufferf*/bufferf*/while(buffer while(buffer不为空)不为空)/*/*输出程序段输出程序段*/*/receive;/*receive;/*从从bufferfbufferf中取数据中取数据*/*/output;/*output;/*送打印机输出送打印机输出*/*/coend coend 13134.1 4.1 并发活动进程的引人并发活动进程的引人4.1.3 4.1.3 并发执行实行誊抄并发执行实行誊抄二、两个程序并发执行完成誊抄二、两个程序并
12、发执行完成誊抄这两个程序段并发执行时可能出现如下情况:这两个程序段并发执行时可能出现如下情况:1 1、输输出出程程序序运运行行的的速速度度比比输输入入程程序序快快时时,有有些些输输出出会会重复;重复;如如输输入入送送入入了了一一个个字字符符“A”“A”,输输出出取取出出打打印印“A”“A”,当当输输入入还还未未送送入入新新的的数数据据,输输出出程程序序已已执执行行,又又取取出出“A”“A”打打印印,这这样样“A”“A”的输出就重复了,出错。的输出就重复了,出错。2 2、输输入入程程序序执执行行的的速速度度比比输输出出程程序序快快时时,有有些些数数据据会会丢失;丢失;如如输输入入程程序序送送入入
13、一一个个字字符符“B”“B”,紧紧接接着着(当当输输出出程程序序还还未未取取走走字字符符“B”“B”)又又送送入入字字符符“N”“N”,这这时时输输出出程程序序取取走走的的是是“N”“N”,“B”“B”就丢失了。就丢失了。14144.1 4.1 并发活动进程的引入并发活动进程的引入4.1.3 4.1.3 并发执行实行誊抄并发执行实行誊抄 三、三个并发执行程序的誊抄三、三个并发执行程序的誊抄l lgetget程序负责从输入序列程序负责从输入序列f f中读取字符中读取字符l l并送到缓冲区并送到缓冲区s s中中;l lcopycopy程序把缓冲区程序把缓冲区s s中的数据复制到缓冲区中的数据复制到
14、缓冲区t t中去中去;l lputput程序从缓冲区程序从缓冲区t t中取出数据打印。中取出数据打印。15154.1 4.1 并发活动进程的引人并发活动进程的引人4.1.3 4.1.3 并发执行实行誊抄并发执行实行誊抄 三、三个并发执行程序的誊抄三、三个并发执行程序的誊抄l 假假设设有有两两个个缓缓冲冲区区,每每个个缓缓冲冲区区只只存存放放一一个个字字符符,getget程程序序负负责责从从输输入入序序列列f f中中读读一一个个字字符符,然然后后,送送到到缓缓冲冲区区s s中中,copycopy程程序序负负责责将将s s中中的的字字符符复复制制到到t t中中,putput负负责责从从t t中中提
15、提取取字字符符打打印。这个算法是正确的。印。这个算法是正确的。16164.1 4.1 并发活动进程的引人并发活动进程的引人4.1.4 4.1.4 与时间有关的错误与时间有关的错误假定假定f f系列中有记录系列中有记录 f=(R1,R2,.,Rn)f=(R1,R2,.,Rn)g=()g=()在誊抄完成后:在誊抄完成后:f=()f=()g=(R1,R2,.,Rn)g=(R1,R2,.,Rn)算法中的:算法中的:copyt=s copyt=s put put put(t,g)put(t,g)get get get(s,f)get(s,f)17174.1 4.1 并发活动进程的引人并发活动进程的引人4
16、.1.4 4.1.4 与时间有关的错误与时间有关的错误l l若程序错写成:若程序错写成:l lwhile(while(誊抄未完成)誊抄未完成)l l cobegin cobeginl l copy;copy;l l put;put;l l get;get;l l coend coendl l l l初始状态:初始状态:l l f=(R1,R2,.,Rn)f=(R1,R2,.,Rn)l l s=()t=()g=()s=()t=()g=()l l首先执行了首先执行了get(s,f)get(s,f)l l f=(R2,.,Rn)f=(R2,.,Rn)l l s=R1,t=(),g=()s=R1,t=
17、(),g=()l l按按 照照 copy,put,getcopy,put,get执执 行行第一次重复语句第一次重复语句f=(R3,R4,Rn),s=R2,f=(R3,R4,Rn),s=R2,t=R1,g=R1t=R1,g=R118184.1 4.1 并发活动进程的引人并发活动进程的引人4.1.4 4.1.4 与时间有关的错误与时间有关的错误然然后后,copy,put,getcopy,put,get三三个个程程序序段段并并发发执执行行,就就有有六六种种组合:组合:1 1、copy;put;get copy;put;get 导致结果:导致结果:g=(R1,R2)g=(R1,R2)2 2、copy;
18、get;put copy;get;put 导致结果:导致结果:g=(R1,R2)g=(R1,R2)3 3、put;copy;get put;copy;get 导致结果:导致结果:g=(R1,R1)g=(R1,R1)4 4、put;get;copy put;get;copy 导致结果:导致结果:g=(R1,R1)g=(R1,R1)5 5、get;copy;put get;copy;put 导致结果:导致结果:g=(R1,R3)g=(R1,R3)6 6、get;put;copy get;put;copy 导致结果:导致结果:g=(R1,R1)g=(R1,R1)这就是与时间有关的错误。这就是与时间有
19、关的错误。19194.1 4.1 并发活动进程的引人并发活动进程的引人4 4.1.5 1.5 程序并发执行的特点程序并发执行的特点一、失去了程序的封闭性一、失去了程序的封闭性 如如果果程程序序执执行行的的结结果果是是一一个个与与时时间间无无关关的的函函数数,即即具有封闭性。具有封闭性。若若一一个个程程序序的的执执行行可可改改变变另另一一个个程程序序的的变变量量,象象二二个个并并发发程程序序完完成成誊誊抄抄的的例例子子,程程序序执执行行的的结结果果不不仅仅依依赖赖于于程程序序的的初初始始条条件件,还还依依赖赖于于程程序序执执行行时时的的相相对对速速度,在这种情况下就失去了程序的封闭性。度,在这种
20、情况下就失去了程序的封闭性。教材教材P71P71介绍了两个并发程序共享变量的例子介绍了两个并发程序共享变量的例子20204.1 4.1 并发活动进程的引人并发活动进程的引人4 4.1.5 1.5 程序并发执行的特点程序并发执行的特点二、程序与计算不再一一对应二、程序与计算不再一一对应 在在程程序序顺顺序序执执行行时时,一一个个程程序序总总是是对对应应一一个个具具体体的的计计算算,但但在在程程序序的的并并发发执执行行时时,可可能能有有多多用用户户共共享享使使用用同同一一个个程程序序,但但处处理理(计计算算)的的对对象象却却是是不不同同的的,例例如如,在在多多用用户户环环境境下下,可可能能同同时时
21、有有多多个个用用户户调调用用C C语语言言的的编编译译程程序序,这这就就是是典典型型的的一一个个程程序序对对应应多多个个用用户户源程序的情况。源程序的情况。21214.1 4.1 并发活动进程的引入并发活动进程的引入4 4.1.5 1.5 程序并发执行的特点程序并发执行的特点三、程序并发执行的相互制约三、程序并发执行的相互制约 在在多多道道程程序序设设计计的的环环境境下下,程程序序是是并并发发执执行行的的。即即系系统统中中有有多多道道程程序序在在“同同时时”执执行行,这这些些程程序序之之间间要要共共享享系系统统的的资资源源,程程序序之之间间有有合合作作(通通信信)的的关关系系。合合作作与与竞竞
22、争争产产生生一一系系列列的的矛矛盾盾,这这些些矛矛盾盾实实际际上上是是一一种相互制约,有直接的,也有间接。种相互制约,有直接的,也有间接。回头来,我们再看看操作系统的第三个特性:回头来,我们再看看操作系统的第三个特性:不确定性不确定性22224.2 4.2 进程概念进程概念(process)(process)4.2.1 4.2.1 进程的定义进程的定义 在在多多道道程程序序设设计计的的环环境境下下,为为了了描描述述程程序序在在计计算算机机系系统统内内的的执执行行情情况况,必必须须引引入入新新的的概概念念进程。进程。进进程程的的概概念念来来自自于于麻麻省省理理工工的的MULTICSMULTICS
23、、IBMIBM的的 C CTSS/360TSS/360,在在IBMIBM的的OS/360/370OS/360/370系系统统中中也也曾曾叫过任务(叫过任务(task)task)。23234.2 4.2 进程概念进程概念(process)(process)4.2.1 4.2.1 进程的定义进程的定义进程的定义(枚举法)进程的定义(枚举法)行行为为的的一一个个规规则则叫叫做做程程序序,程程序序在在处处理理机机上上执执行行时时所所发生的活动称为进程(发生的活动称为进程(Dijkstra)Dijkstra)。进进程程是是这这样样的的计计算算部部分分,它它是是可可以以和和其其它它计计算算并并行行的的一个
24、计算。一个计算。(Donovan)(Donovan)进进程程(有有时时称称为为任任务务)是是一一个个程程序序与与其其数数据据一一道道通通过过处理机的执行所发生的活动。(处理机的执行所发生的活动。(Alan.C.Shaw)Alan.C.Shaw)进进程程是是执执行行中中的的程程序序。(Ken Ken Thompson Thompson and and Dennis Dennis Ritchie)Ritchie)教材上给出的进程的定义:教材上给出的进程的定义:进进程程,即即是是一一个个具具有有一一定定独独立立功功能能的的程程序序关关于于某某个个数据集合的一次活动。数据集合的一次活动。24244.2
25、 4.2 进程概念进程概念(process)(process)4.2.1 4.2.1 进程的定义进程的定义 进程与程序的区别与联系:进程与程序的区别与联系:1 1、程程序序是是指指令令的的集集合合,是是静静态态的的概概念念。进进程程是是程程序序在在处处理理机机上上的的一一次次执执行行的的过过程程,是是动动态态的的概概念念。程程序序可以作为软件资料长期保存。进程是有生命周期的。可以作为软件资料长期保存。进程是有生命周期的。2 2、进进程程是是一一个个独独立立的的运运行行单单位位,能能与与其其它它进进程程并并行行(并发)活动。而程序则不是。(并发)活动。而程序则不是。3 3、进进程程是是竞竞争争计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 第四 并发
限制150内