操作系统原理第四章(01).pptVIP

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 并发处理 第四章 并发处理 4.1 并发活动--进程的引入 操作系统的特性之一是并发与共享,即在系统中同时存在几个相互独立的程序,这些程序在系统中既交叉地运行,又要共享系统中的资源,这就会引起一系列的问题,包括: 对资源的竞争 运行程序之间的通信 程序之间的合作与协同 要解决这些问题,用程序(静态)的概念已经不能描述程序在内存中运行的状态,必须引入新的概念--进程(动态)。 4.1 并发活动--进程的引入 4.1.1 程序的顺序执行 一、概念 一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种程序执行的方式就称为程序的顺序执行。 例如: I:输入;C:计算;P:打印。 4.1 并发活动--进程的引入 4.1.1 程序的顺序执行 二、程序顺序执行的特点 1.顺序性 处理机严格按照程序所规定的顺序执行,即每个操作必须在下一个操作开始之前结束。 2.封闭性 程序一旦开始执行,其计算结果不受外界的影响:当程序的初始条件给定之后,其后的状态只能由程序本身确定,即只有本程序才能改变它。 3.可再现性 程序执行的结果与初始条件有关,与执行时间无关。 4.1 并发活动--进程的引入 4.1.2 程序的并发执行 例: 在系统中有n个作业,每个作业都有三个处理步骤:输入数据、处理、输出,即Ii,Ci,Pi (i=1,2,3,...,n)。 4.1 并发活动--进程的引入 4.1.2 程序的并发执行 程序并发执行 若干个程序段同时在系统中运行,这些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。 4.1 并发活动--进程的引入 4.1.2 程序的并发执行 程序并发执行的描述 cobegin S1;S2;S3;...;SN coend; Si(i=1,2,3,...,n):表示n个语句(程序段)。 4.1 并发活动--进程的引入 4.1.2 程序的并发执行 例:程序由S0~Sn+1个语句,其中 S1~Sn语句是并发执行的,程序如下: S0; cobegin S1;S2;S3;...;SN coend; Sn+1; 4.1 并发活动--进程的引入 4.1.3 并发执行实例--誊抄 例:用卡片输入机尽快将文本复写(誊抄)到行式打印机上去。 4.1 并发活动--进程的引入 4.1.3 并发执行实例--誊抄 一、循环顺序程序的誊抄方案 f:读卡机上的记录序列; g:经誊抄程序处理后在打印机上的输出序列。 算法1: 输入:f 输出:g { while (f 不为空) { input ; output ; } } 4.1 并发活动--进程的引入 4.1.3 并发执行实例--誊抄 二、两个程序并发执行完成誊抄 缓冲区:容量为一个记录。 输入程序:负责从读卡机中读取一个记录序列,送到缓冲区。 输出程序:从缓冲区中取数据,送打印机输出。 4.1 并发活动--进程的引入 4.1.3 并发执行实例--誊抄 二、两个程序并发执行完成誊抄 算法:2 输入:f 输出:g { cobegin while (f不为空) /* 输入程序段 */ { input; /* 从读卡机读入一个记录 */ send; /* 将读入的数据送到buffer */ } while(buffer不为空) /* 输出程序段 */ { receive; /* 从buffer中取数据 */ output; /* 送打印机输出 */ } coend } 4.1 并发活动--进程的引入 4.1.3 并发执行实例--誊抄 二、两个程序并发执行完成誊抄 问题: 1、打印速度高于输入速度:重复打印; 如输入送入了一个字符“A”,输出取出打印“A”,当输入还未送入新的数据,输出程序又取出“A”打印,这样“A”的输出就重复了,出错。 2、输入速度高于打印速度:丢失数据; 如输入程序送入一个字符“B”,紧接着(当输出程序还未取走字符“B”)又送入字符“N”,这时输出程序取走的是“N”,“B”就丢失了。 4.1 并发活动--进程的引入 4.1.3 并发执行实例--誊抄 三、三个并发执行程序的誊抄 get: 将信息从输入机复制到缓

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档