- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章__设备管理
第五章 设备管理;1、按所属关系分类:
系统设备(OS厂家提供驱动程序和管理程序)
用户设备(设备厂家用户自己准备驱动程序和管理程序)
2、按工作特性分类:
存储设备----块设备
输入设备----字符设备
输出设备----字符设备
3、从资源分配角度分类:
独享设备:只能让一个作业或进程独占使用的设备
共享设备:允许多个用户或进程共同使用的设备
一般来说,块设备可以共享,字符设备(例如打印机)只能独享
虚拟设备:利用某种技术(例如SPOOLing 技术)把一台独享的物理设备变换成若干台逻辑上的对应物,称这些对应物为虚拟设备。
虚拟设备通常是在共享设备上模拟出来的。;5.1.2 设备管理的功能;5.1.3 设备管理的设计目标;5.2 I/O控制方式;5.2 I/O控制方式;5.2 I/O控制方式;5.2 I/O控制方式;;5.2 I/O控制方式;5.2 I/O控制方式;5.3 缓冲技术
5.3.1 引入缓冲技术的目的(参考何炎祥“IO设备管理”)
1) 缓和CPU与I/O设备间速度不匹配的矛盾
2) 减少对CPU的中断频率
3) 提高CPU和I/O设备之间的并行性
例如,一个程序可能长时间计算而无输入、输出,只是时而阵发性输出在一台打印机上。若无缓冲,则在输出时打印机的速度与CPU的速度相差特别悬殊,使CPU只好停下来等待;当CPU在做计算时,打印机又空闲,如果在系统中加入缓冲,则程序输出时存于缓冲器,然后打印机取出慢慢打印,此时CPU 仍然可以做计算,即这时CPU与I/O设备之间是并行的。;5.3 缓冲技术
5.3.2、缓冲的种类
根据I/O控制方式,缓冲的实现方法有两种,一种是采用专用硬件缓冲器,例如I/O控制器中的数据缓冲寄存器。另一种方法是在内存划出一个具有n个单元的专用缓冲区,以便存放输入输出的数据。内存缓冲区又称软件缓冲。
根据系统设置的缓冲区的个数,可以把缓冲技术分为单缓冲、双缓冲和循环缓冲以及缓冲池几种。;5.3 缓冲技术
5.3.3、缓冲池的管理
缓冲池由多个缓冲区组成。而一个缓冲区由两部分组成: 一部分是用来标识和管理该缓冲器缓冲首部(又可称为缓冲控制块),另一部分是用于存放数据的缓冲体。这两部分有一一对应的映射关系。对缓冲池的管理是通过对每一个缓冲器的缓冲首部进行操作实现的。
缓冲首部如下图所示,它包括设备号、设备上的数据块号(块设备时)、互斥标识位以及缓冲队列连接指针和缓冲器号等。
;5.3 缓冲技术
5.3.3、缓冲池的管理
系统把各缓冲区按其使用状况连成三种队列:
(1) 空白缓冲队列em,其队首指针为F(em),队尾指针为L(em);
(2) 装满输入数据的输入缓冲队列in,其队首指针为F(in),队尾指针为L(in);
(3) 装满输出数据的输出缓冲队列out,其队首指针为F(out),队尾指针为L(out)。;5.3 缓冲技术 5.3.3、缓冲池的管理
对缓冲池的操作使用通过调用get_buf(type,n)和put_buf(type,n)两个过程来完成(type分别为“em”、“in”、“out”,n为缓冲区编号):
1)输入进程调用get_buf(“em”, hin) 从em队列中取出一个编号为hin的空白缓冲区作为收容输入缓冲区,当bin中装满了输入数据后,调用put_buf(in,hin) 将hin插入in队列中。
2)计算进程取用输入数据时调用get_buf(“in”, sin)从in队列中取出一个编号为sin的输入缓冲区,用完后调用put_buf(“em”,sin) 将sin插入“em”队列中。
3)计算进程输出数据时调用get_buf(“em”, sout)从em队列中取出一个编号为sout的输出缓冲区,输出满后调用put_buf(“out”,sout) 将sout插入“out”队列中。
4)输出进程调用get_buf(“out”, hout)从out队列中取出一个编号为hout的缓冲区作为收容输出缓冲区,完成从hout输出数据后,调用put_buf(“em”,hout)将hout插入em队列中。
;5.4 设备分配5.4.1 设备映射表DMT(又称逻辑设备表LUT);5.4.2 系统设备表SDT、设备控制表等;5.4.3 设备分配(对独享设备);逻辑设备名/号 ;5.5 I/O操作的处理5.5.1 I/O请求的处理流程;5.5.2 I/O请求包(IORP);5.5.3 I/O处理工作(考虑read(fd,ca,n));5.5.3 I/O处理工作(考虑read(fd,ca,n));设备策略程序devstrategy(IORP)的主要工作步骤:;设备启动程序devsta
文档评论(0)