- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 并发处理 第四章 并发处理 4.1 并发活动--进程的引人 操作系统的特性之一是并发与共享,即在系统中(内存)同时存在几个相互独立的程序,这些程序在系统中既交叉地运行,又要共享系统中的资源,这就会引起一系列的问题,包括:对资源的竞争、运行程序之间的通信、程序之间的合作与协同等符。 要解决这些问题,用程序的概念已经不能描述程序在内存中运行的状态,必须引人新的概念--进程。 4.1 并发活动--进程的引人4.1.1 程序的顺序执行 一、概念 一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种程序执行的方式就称为程序的顺序执行。 例如: 4.1 并发活动--进程的引人4.1.1 程序的顺序执行 二、程序顺序执行的特点 1.顺序性 处理机严格按照程序所规定的顺序执行,即每个操作必须在下一个操作开始之前结束。 2.封闭性 程序一旦开始执行,其计算结果不受外界的影响,当程序的初始条件给定之后,其后的状态只能由程序本身确定,即只有本程序才能改变它。 3.可再现性 程序执行的结果与初始条件有关,而与执行时间无关。即只要程序的初始条件相同,它的执行结果是相同的,不论它在什么时间执行,也不管计算机的运行速度。 4.1 并发活动--进程的引人4.1.2 程序的并发执行 例: 在系统中有n个作业,每个作业都有三个处理步骤,输入数据、处理、输出,即Ii,Ci,Pi (i=1,2,3,...,n)。 这些作业系统中执行时是对时间的偏序,有些操作必须在其它操作之前执行,这是有序的,但有些操作是可以同时执行的。 例如: I1、C1、P1的执行必须严格按照I1,C1,P1的顺序,而P1与I2,C1与I2,I3与P1是可以同时执行的。 4.1 并发活动--进程的引人4.1.2 程序的并发执行 例如: I1、C1、P1的执行必须严格按照I1,C1,P1的顺序,而P1与I2,C1与I2,I3与P1是可以同时执行的。 4.1 并发活动--进程的引人4.1.2 程序的并发执行 程序并发执行 (定义) 若干个程序段同时在系统中运行,这些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。 4.1 并发活动--进程的引人4.1.2 程序的并发执行 程序并发执行的描述 cobegin S1;S2;S3;...;SN coend; Si(i=1,2,3,...,n)表示n个语句(程序段),这n个语句用cobegin和coend括起来表示这n个语句是可以并发执行的。co是concurrent的头两个字符。 这是Dijkstra提出的。 4.1 并发活动--进程的引人4.1.2 程序的并发执行 假设有一个程序由 S0~Sn+1个语句, 其中 S1~Sn语句是并发执行的,程序如下: S0; cobegin S1;S2;S3;...;SN coend; Sn+1; 4.1 并发活动--进程的引人4.1.3 并发执行实行--誊抄一、一个循环程序顺序执行的誊抄 算法1: 输入:f 输出:g { while (f 不为空) { input ; output ; } } 由这个程序完成誊抄工作是不会出错的。 4.1 并发活动--进程的引人4.1.3 并发执行实行--誊抄二、两个程序并发执行完成誊抄 设有一台标准输入设备(键盘),和一台标准输出设备(显示器或打印机),输入程序负责从标准设备中读取一个字符,送缓冲区中。输出程序从缓冲区中取数据,送标准设备输出。 4.1 并发活动--进程的引人4.1.3 并发执行实行--誊抄二、两个程序并发执行完成誊抄 算法:2 { cobegin while (不为结束符)/* 输入程序段 */ { input; /* 从标准输入设备读入一个数据 */ send; /* 将读入的数据送到bufferf */ } while(buffer不为空) /* 输出程序段 */ { receive; /* 从bufferf中取数据 */ output; /* 送打印机输出 */ } coend } 4.1 并发活动--进程的引人4.1.3 并发执行实行--誊抄二、两个程序并发执行完成誊抄 这两个程序段并发执行时可
文档评论(0)