没有合适的资源?快使用搜索试试~ 我知道了~
例1设有一台计算机,有两条IO通道,分别接一台卡片输入机和一.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 54 浏览量
2023-03-12
19:40:11
上传
评论
收藏 509KB PDF 举报
温馨提示
试读
10页
..
资源推荐
资源详情
资源评论
例 1、设有一台计算机,有两条 I/O 通道,分别接一台卡片输入机和一台打印机。卡片机把
一叠卡片逐一输入到缓冲区 B1 中,加工处理后再搬到缓冲区 B2 中,并在打印机上打印结
果。问:
① 系统要设几个进程来完成这个任务?各自的工作是什么?
② 这些进程间有什么样的相互制约关系?
③ 用 P、V 操作写出这些进程的同步算法。
分析 我们画一个草图来帮助我们理解这道题:
输
处 输
入
理 出
缓冲区 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;
资源评论
不吃鸳鸯锅
- 粉丝: 8325
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功