- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Page * Page * 独占设备的分配程序 分配设备1 分配控制器1 分配通道1 申请设备1 按设备物理名查SDT 设备忙? 根据安全策略进行分配 由DCT查COCT分配控制器 由COCT查CHCT分配通道 否 是 由SDT查设备 DCT Page * 独占设备的分配程序 设备分配程序的改进 基本分配程序的问题 进程以物理设备名提出I/O请求 采用单通路I/O系统结构,容易产生瓶颈 改进方案 增加设备独立性 考虑多通路情况 Page * 为进程P分配所需的I/O设备 从SDT表查该类设备的控制表DCT 不忙 不安全 分配此设备给进程P 不忙 不忙 分配此控制器给进程P 分配此通道给进程P 启动I/O,进行具体的I/O操作 忙 进程P的PCB放入 此设备的等待队列 Y N 忙 进程 P 的 PCB 放入 此控制器的等待队列 Y N Y 忙 Y 进程P的PCB放入此通道的等待队列 N Y N N 多通路设备分配流程示意图 由DCT检查该设备忙否? 检查分配此设备的安全性? 最后一个DCT? 最后一个COCT? 最后一个DCT? 此设备连接的COCT忙否? 此控制器连接的CHCT忙否? 最后一个COCT? 最后一个CHCT? Page * 设备分配 设备分配中的数据结构 设备分配时应考虑的因素 设备独立性 独占设备的分配程序 SPOOLing技术 Page * 脱机输入/输出(Off-Line I/O)方式 硬件不断发展,CPU速度的提高、系统规模扩大,人机矛盾严重,如何解决? 磁带 磁带 磁带 磁带 Page * SPOOLing技术 什么是SPOOLing技术 为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、 脱机输出技术 在多道程序环境下,其中的一道程序模拟脱机输入时的外围控制机功能 在主机的直接控制下,实现脱机输入、 输出功能,此时的外围操作与CPU对数据的处理同时进行 把这种在联机情况下实现的同时外围操作称为SPOOLing(Simultaneaus Periphernal Operating On-Line),或称为假脱机操作 Page * SPOOLing技术 SPOOLing系统的组成 输入井和输出井 在磁盘上的两个存储空间 输入井模拟脱机输入,暂存输入数据 输出井模拟脱机输出,暂存输出数据 输入缓冲区和输出缓冲区 用来缓和CPU与磁盘之间的速度的矛盾 输入进程SPi和输出进程SPo 模拟脱机I/O时的外围控制机 Page * 脱机输入/输出(Off-Line I/O)方式 磁带 磁带 磁带 磁带 Page * 缓冲池(Buffer Pool) 缓冲池的组成 专用缓冲的利用率不高,与环形缓冲不同的是缓冲池中的缓冲区是系统的公用资源,可供多个进程共享,既能用于输入,也能用于输出 缓冲区类型 空(闲)缓冲区 装满输入数据的缓冲区 装满输出数据的缓冲区 缓冲队列:按其使用情况 空缓冲队列emq 输入队列inq 输出队列outq Page * 缓冲池(Buffer Pool) 缓冲池的组成 四种工作缓冲区 用于收容输入数据的工作缓冲区(hin) 用于提取输入数据的工作缓冲区(sin) 用于收容输出数据的工作缓冲区(hout) 用于提取输出数据的工作缓冲区(sout) Page * 缓冲池(Buffer Pool) 两个对缓冲区操作的过程 Getbuf(type),type--队列类型 Putbuf(type,number),number--指某缓冲区 队列是临界资源需设置 互斥信号量MS,每个队列一个MS(type) 资源信号量RS ,每个队列一个RS(type) 队列操作过程 Takebuf(type) :取type所指队列队首缓冲区 Addbuf(type,number):将number所指缓冲区加到type所指队列尾 Page * 缓冲池(Buffer Pool) Procedure Getbuf(type) begin Wait(RS(type)); Wait(MS(type)); B(number):=Takebuf(type); //从队首摘下一个缓冲区 Signal(MS(type)); end Procedure Putbuf(type, number) begin Wait(MS(type)); Addbuf(type, number); //将指定缓冲区挂在type指定队列上 Signal(MS(type)); Signal(RS(type)); end 互斥信号量MS(type) 资源信号量RS(type) Page
文档评论(0)