例1设有一台计算机,有两条IO通道,分别接一台卡片输入机和一.docx

例1设有一台计算机,有两条IO通道,分别接一台卡片输入机和一.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

例1、设有一台计算机,有两条I/O通道,分别接一台卡片输入机和一台打印机。卡片机把一叠卡片逐一输入到缓冲区B1中,加工处理后再搬到缓冲区B2中,并在打印机上打印结果。问:

①系统要设几个进程来完成这个任务?各自的工作是什么?

②这些进程间有什么样的相互制约关系?

输入处理输出卡片机缓冲区B1

卡片机

缓冲区B1

缓冲区B2

打印机

从图中可以看出,从“卡片机”到“打印机”共需要3个操作,即输入、处理、输出。这3个动作就是完成任务的3个进程。

下面我们看看这些进程之间有什么样的制约关系。可以看出,这3个进程之间是同步关系,合作完成从输入到输出的工作任务。对其中任何一个进程,要处理好与其关联的两端设备的协调工作。以“输入进程”为例,它与卡片机和缓冲区B1关联,将卡片机的卡片输入到缓冲区B1,在不考虑卡片机的情况下,就要考虑缓冲区的情况,即是满还是空,是空缓冲区,输入进程就可以输入信息,如果缓冲区满,则要等待“处理进程”将B1中的信息取走,使之为空,输入进程才能继续工作。依此类推,可以找出另外2个进程的制约关系。

一般来说,处理进程同步需要2个信号量,“输入进程”和“处理进程”同步,需要2个信号量,解决缓冲区B1的协调操作问题;而“处理进程”和“输出进程”同步,还需要2个信号量,解决缓冲区B2的协调操作问题。因此,共需要4个信号量。本题中“处理进程”的算法有一些难度,因为它需要协调两个缓冲区的工作,考虑的因素比较多,算法复杂些。

答案

①系统可设三个进程来完成这个任务:R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。

②R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:B1中信息放满后C进程才可从中取出它们,且B2被取空后,C进程才可将加工结果送入其中;P进程受C进程的约束:B2中信息放满后P进程才可从中取出它们,进行打印。

③信号量含义及初值:

B1full——缓冲区B1满,初值为0;B1empty——缓冲区B1空,初值为0;B2full——缓冲区B2满,初值为0;B2empty——缓冲区B2空,初值为0;

例二:应用题(每小题10分,共20分)

1.设A:B两个进程共用一个缓冲区Q,A向Q写入信息,B从Q读出信息,算法框图如图所示。判断该同步问题的算法是否正确?若有错,请指出错误原因并予以改正。

这个算法不对。(1分)

因为A、B两进程共用一个缓冲区Q,如果A先运行,且信息数量足够多,那么缓冲区Q中的信息就会发生后面的冲掉前面的,造成信息丢失,B就不能从、Q中读出完整的信息。(1分)’进行改正:A、B两进程要同步使用缓冲区Q。为此,设立两个信号量:

empty表示缓冲区Q为空,初值为l;(2分)full表示缓冲区Q为满,初值为0。(2分)算法框图如图所示。(每个图正确各2分,共4分)

例3、下表给出作业l,2,3的提交时间和运行时间。采用先来先服务调度算法和短作业优先调度算法,试问作业调度次序和平均周转时间各为多少?(时间单位:小时,以十进制进

行计算。)

作业号

提交时间

运行时间

1

0.0

8.0

2

0.4

4.0

3

1.0

1.0

分析解此题关键是要清楚系统中各道作业随时间的推进情况。我们用一个作业执行时间图来表示作业的执行情况,帮助我们理解此题。

采用先来先服务调度策略,其作业执行时间图如下:

作业

作业

作业3

作业2

作业1

00.41.0

作业提交时间

8.0

12.013.0

时间

各作业陆续完成时间

采用短作业优先调度策略,其作业执行时间图如下:

作业

作业

作业3

作业2

作业1

00.41.0

作业提交时间

8.0 9.0

13.0

时间

各作业陆续完成时间

另外,作业i的周转时间Ti=作业完成时间-作业提交时间

系统中n个作业的平均周转时间T?(?n

i?1

T)?1,其中Ti为作业i的周转时间。

i n

解:采用先来先服务调度策略,则调度次序为l、2、3。

作业号

提交时间

运行时间

开始时间

完成时间

周转时间

1

0.0

8.0

0.0

8.0

8.0

2

0.4

4.0

8.0

12.0

11.6

3

1.0

1.0

12.0

13.0

12.0

平均周转时间T=(8+11.6+12)/3=10.53

采用短作业优先调度策略,则调度次序为l、3、2。

作业号

提交时间

运行时间

开始时间

完成时间

文档评论(0)

mph + 关注
官方认证
内容提供者

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

认证主体上海谭台科技有限公司
IP属地上海
统一社会信用代码/组织机构代码
91310115MA7CY11Y3K

1亿VIP精品文档

相关文档