版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章设备管理目录1.设备管理概述2.I/O控制方式3.缓冲管理4.I/O软件5.设备分配I/O系统结构
CPU存储器控制器设备控制器设备总线(数据、地址、控制)5.1设备管理概述1.微机I/O系统结构:总线型I/O系统结构:总线:是一组线和一组严格定义的可以描述在线上传输信息的协议,这一组线用来连接多个设备,这种连接称为总线。一个典型的PC总线结构:5.1设备管理概述I/O系统结构
2、主机I/O系统结构:加入通道结构:CPU存储器控制器设备控制器设备通道1通道2控制器设备设备I/O通道是一种特殊的处理机,它控制设备与内存直接进行数据交换。
I/O通道与一般的处理机的区别:
通道的指令类型单一,主要局限于与I/O操作有关的指令;通道没有自己的内存,是与CPU共享内存。二.I/O设备的类型
按信息交换的单位分类:5.1设备管理概述1、块设备:以数据块为单位来传送数据的设备,如磁盘.特点:1)信息交换的单位为等长数据块;
2)可寻址;
3)I/O控制采用DMA方式。
4)信息存储设备二.I/O设备的类型
5.1设备管理概述2、字符设备:以单个字符为单位来传送信息的设备,如终端、打印机
特点:1)信息交换的单位为字符或字节;
2)不可寻址;
3)I/O控制采用中断驱动方式。
4)信息输入输出设备3、网络设备:
负责计算机之间的信息传输,兼具字符设备和块设备的特点,如调制解调器、网卡等。三.设备管理功能:跟踪设备状态:动态地记录各种设备的状态设备分配:独占设备;共享设备;虚拟设备①
静态分配——应用程序级或作业级程序进入系统时进行分配,退出系统时收回全部资源②动态分配——进程级进程提出设备申请时进行分配,使用完毕后立即收回3.缓冲管理:缓和CPU与设备间速度不匹配的矛盾4.设备控制:设备驱动+中断处理
5.1设备管理概述3四.设备管理的目标
1、提高设备利用率①合理分配设备②
提高设备与CPU、各外部设备之间的并行性
2、方便用户的使用提供使用方便且独立于设备的界面①
统一:对各种不同的设备提供一致的界面②
独立于设备:用户使用的设备与物理设备无关5.1设备管理概述5.2I/O控制方式程序I/O方式
(或称循环测试I/O方式)设备选中,CPU向设备控制器发I/O指令,启动设备将控制器中的状态寄存器的值busy置为1CPU循环测试busy的值,直到busy=0;设备控制器控制设备执行I/O操作设备控制器置busy=0同时进行CPU传送到内存I/O完成5.2I/O控制方式二、中断驱动I/O控制方式:设备选中,CPU向设备控制器发I/O指令,启动设备,并置状态寄存器的允许中断位=1将控制器中的状态寄存器的busy置为1当前进程阻塞,CPU调度其他进程执行设备控制器控制设备执行I/O操作设备控制器向CPU发中断同时进行CPU响应中断,传送数据到内存I/O完成常用于字符设备的I/O控制三.直接存储器访问(DMA)I/O控制方式
1.DMA控制方式的特征:
①数据传输的基本单位是数据块;②数据传送是在设备与内存之间直接进行的;③整块数据的传送是在DMA控制器的控制下完成的,仅在传送一个或多个数据块的开始和结束时,才需CPU干预。5.2I/O控制方式常用于块设备的I/O控制三.直接存储器访问(DMA)I/O控制方式
2、DMA控制器的组成及作用:
3、DMA传送过程:(1)DMA传送前预处理:(CPU完成)测试设备状态CPU初始化DMA控制器:主存缓冲区首址→MAR;传送数据字节数→DC;设置传输方式启动设备。三.直接存储器访问(DMA)I/O控制方式2.DMA传送过程:
DR1B或一个字数据总线MAR所指主存单元(2)DMA控制器控制完成设备与主存间的数据传送①磁盘控制器将整块数据从磁盘读入磁盘控制器的DR中;②磁盘控制器校验读入的数据;③磁盘控制器向DMA控制器发DMA请求④DMA控制器向CPU请求总线周期,获得总线控制器权后:⑤
DC--;DC==0?是向CPU发中断否
转④MAR++;(3)CPU响应中断进行后处理:(CPU完成)思考:
DMA控制方式与中断驱动控制方式的区别:(1)对CPU的中断频率不同;(2)数据传输控制不同。
四.I/O通道控制方式1.通道的运算控制部件:
①通道地址字(CAW):记录下一条通道指令的地址,其功能类似于中央处理机的指令计数器。
②通道命令字(CCW):记录正在执行的通道指令,其作用相当于中央处理机的指令寄存器。
③通道状态字(CSW):记录通道、控制器、设备的状态,包括I/O传输完成信息、出错信息、重复执行次数等。
通道控制方式是一种以内存为中心,实现设备和内存间直接交换数据的控制方式。四.I/O通道控制方式2.通道程序:保存在主存中
①操作码:规定指令所执行的操作。
②内存地址:内存缓冲区首址。
③计数:本条指令要读写的字节数。
④通道程序结束位P:P=1表示本条指令是通道程序最后一条指令。
⑤记录结束标志R:R=0表示本条指令与下一条指令所处理的数据属同一条记录。
由一系列通道指令构成。
通道指令内容如下:四.I/O通道控制方式2.通道程序:CPU根据用户的I/O请求生成通道程序;将其放到内存中,并将其首地址放入CAW中CPU执行“启动I/O”指令,启动通道工作
通道向CPU发应答信号,通知“启动I/O”指令完成,CPU可继续执行其他进程通道取出通道程序的下一条指令,放入CCW中,并执行之通道向CPU发中断CPU响应中断否四.I/O通道控制方式3.I/O控制过程:
是最后一条指令吗?是5.3缓冲管理
二.缓冲的引入(1)缓和CPU与I/O设备间速度不匹配的矛盾。(2)提高CPU和I/O设备之间的并行性。(3)解决数据处理单位与传输单位不匹配的问题。(4)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。什么是缓冲缓冲是两种不同速度的设备之间传输信息时平滑传输过程的常用手段1位缓冲9.6Kb/s8位缓冲寄存器送内存9.6Kb/s(b)(a)例:在一个远程通信系统中,在本地接收从远程终端发来的数据,速率为9.6kb/s。送内存CPU中断频率:9.6K;CPU响应时间:0.1ms;CPU中断频率:1.2K;CPU响应时间:0.1ms;两个8位缓冲寄存器9.6Kb/s送内存(c)CPU中断频率:1.2K;CPU响应时间:0.8ms;送内存12三.利用缓冲技术如何进行I/O操作
(1)进程活动期间,请求从某设备读入数据
①
进程请求从输入设备进行读操作的图示输入设备BUF进程①②③
图中的操作②与操作③需要同步
5.3缓冲管理
13三.利用缓冲技术如何进行I/O操作(1)进程活动期间,请求从某设备读入数据②
进程请求从输入设备进行读操作的步骤ⅰ当用户要求在某个设备上进行读操作时,首先从系统中获得一个空的缓冲区(图中标注的操作①);ⅱ将一个物理记录送到缓冲区中(图中标注的存在②)
;ⅲ当用户请求这些数据时,系统将依据逻辑记录特性从缓冲区中提取并发送到用户进程存储区中(图中标注的操作③)
;ⅳ当缓冲区空而进程又要从中取用数据时该进程被迫等待。此时,操作系统需要重新送数据填满缓冲区,进程才能从中取数据继续运行。14(2)进程活动期间,请求从输出设备输出数据①
进程请求从输出设备进行写操作的图示
图中的操作②与操作③需要同步
①②③输出设备BUF进程5.3缓冲管理
三.利用缓冲技术如何进行I/O操作15②进程请求从输出设备进行写操作的步骤
ⅰ当用户要求进行写操作时,首先从系统中获得一个空的缓冲区(图中标注的操作①)
;ⅱ将一个逻辑记录从进程存储区传送到缓冲区中(图中标注操作②)
;ⅲ当缓冲区写满时,系统将缓冲区的内容作为物理记录文件写到设备上,使缓冲区再次为空(图中标注的操作
③)
;ⅳ只有在系统还来不及腾空缓冲区之前,进程又企图输出信息时,它才需要等待。三.利用缓冲技术如何进行I/O操作(2)进程活动期间,请求从输出设备输出数据四.单缓冲和双缓冲1.单缓冲(SingleBuffer)系统对一块数据的处理时间:Max(C,T)+M
5.3缓冲管理
2.双缓冲(DoubleBuffer)
系统对一块数据的处理时间:Max(C+M,T)
T
M
C四.单缓冲和双缓冲5.3缓冲管理
五.缓冲池(BufferPool)1、缓冲队列管理
由内存中一组缓冲区组成,由系统统一管理。
输入队列inq;输出队列outq。
①空缓冲区:空缓冲队列emq;②装满输入数据的缓冲区:③装满输出数据的缓冲区:5.3缓冲管理
五.缓冲池(BufferPool)2、缓冲池的使用:
①Getbuf(type):
申请一个缓冲区;
②
Putbuf(type,number):
释放一个缓冲区;信号量设置:资源信号量:表示某类缓冲队列中缓冲区的数量:
RS(emq)=n;RS(inq)=0;RS(outq)=0;互斥信号量:实现相应缓冲队列的互斥使用:
MS(emq)=MS(inq)=MS(outq)=1;(2)Getbuf过程
ProcedureGetbuf(type)beginWait(RS(type));Wait(MS(type));B(number)=Takebuf(type);Signal(MS(type));end
五.缓冲池(BufferPool)2.缓冲池的使用:
ProcedurePutbuf(type,number)beginWait(MS(type));Addbuf(type,number);Signal(MS(type));Signal(RS(type));end(3)Putbuf过程五.缓冲池(BufferPool)2.缓冲池的使用:
3、
缓冲池的工作方式
输入队列
空缓冲队列
输出队列Getbuf(emq)收容输入Putbuf(inq)Putbuf(outq)Getbuf(emq)Getbuf(inq)Putbuf(emq)Getbuf(outq)Putbuf(emq)提取输入收容输出提取输出五.缓冲池(BufferPool)5.3缓冲管理
20UNIX系统的缓冲区管理1.概述
(1)UNIX系统缓冲管理的目的加快系统响应、增加系统吞吐量减少对磁盘的I/O操作次数5.3缓冲管理
20UNIX系统的缓冲区管理
1、概述
(2)UNIX系统缓冲管理的思路预先缓存:当进程要从磁盘读数据时,首先考虑从高速缓冲中读延迟发送当进程要写数据到磁盘时,先写入高速缓冲中
缓冲读高速缓冲
用户数据区用户进程磁盘缓冲写高速缓冲
用户数据区用户进程磁盘212、
缓冲管理数据结构①
缓冲区的组成
ⅰ缓存数组
——含有磁盘上的数据的存储器数组
ⅱ缓存首部
——描述缓冲区特性的数据结构5.3缓冲管理
UNIX系统的缓冲区管理22
②缓存首部结构设备号dev块号blkno状态flag指向数据区域的指针传送字节数返回的I/O出错信息b_forw
设备缓冲区队列前向指针b_back
设备缓冲区队列后向指针av_forw
空闲缓冲区队列前向指针av_back
空闲缓冲区队列后向指针
ⅰ设备号dev缓冲区所包含的信息所属设备的设备号
ⅱ块号blkno由设备号指出的设备上相对于第0块的块号
ⅲ状态flag——描述了缓冲区当前的状态忙标志BUSY:缓冲区当前正“忙”有效位AVE:缓冲包含的数据有效延迟写DELWR:核心在某缓冲区重新分配出去之前必须把缓冲区内容写到磁盘上写标志WRITE:核心当前正把缓冲区的内容写到磁盘读标志READ:核心当前正从磁盘往缓冲区写信息等待位
WAIT:一个进程当前正在等候缓冲区变为空闲2、
缓冲管理数据结构23③缓冲区队列结构
ⅰ设备缓冲区队列与某类设备有关的所有缓冲区组成的队列称为设备缓冲区队列,简称b链。UNIX系统的缓冲区管理2.缓冲管理数据结构b_forwb_backb_forwb_backb_forwb_backb_forwb_back设备缓冲区队列24UNIX系统的缓冲区管理③缓冲区队列结构
ⅱ空闲缓冲区队列可供重新分配使用的缓冲区组成的队列称为空闲缓冲区队列,简称av链。
2.缓冲管理数据结构av_forwav_backav_forwav_backav_forwav_backav_forwav_back空闲缓冲区队列26(1)分配一个buf读/写某设备上的块:①首先寻找该设备的b链,若找到:1)B_BUSY=0:移出av链,B_BUSY=1;使用完后,B_BUSY=0,链入av链队尾。2)B_BUSY=1:缓冲区不在av链上,该进程睡眠②若b链中找不到:取av链(空闲buf队列)的首元素:1)若无延迟写标记,直接分配,插入b链,B_BUSY=1;用完后,链入av链队尾,B_BUSY=02)若有延迟写标记:分配下一个空闲缓冲区,然后同1)UNIX系统的缓冲区管理UNIX缓冲管理算法:LRU算法27(2)
对延迟写的处理当一个具有延迟写标记的buf移到av链头,要用于分配时,立即进行写操作:从av链上摘除,使用完后又送入av头部,同时仍保留在原b链中。(3)释放一个缓冲区:
缓冲区读写操作结束后,保留在b链,并插入av链尾UNIX系统的缓冲区管理UNIX缓冲管理算法27UNIX系统的缓冲区管理缓冲区的检索算法(1)分配一个缓冲区:27UNIX系统的缓冲区管理缓冲区的检索算法(2)释放一个缓冲区:27UNIX系统的缓冲区管理5.读磁盘块与写次盘块(1)读磁盘块:27UNIX系统的缓冲区管理5.读磁盘块与写次盘块(2)写磁盘块:I/O应答进行I/O调用;格式化I/O命名、保护、缓冲、分配设备驱动+中断处理当I/O结束时,进行中断处理执行I/O操作I/O请求用户层软件设备独立性软件设备驱动程序中断处理程序硬件5.4I/O软件I/O软件的组成:I/O控制模块逻辑I/O层设备I/O层内核空间40二.I/O控制模块的实现方式:即驱动程序的调用方式
1、以设备处理进程的方式:2、
将设备与文件一样对待:UNIX、linux将设备与文件一样对待,使用文件系统的系统调用命令进行设备的读、写,由文件系统统一管理。
5.4I/O软件I/O控制模块I/O进程:接口程序,面向用户
设备处理进程:设备驱动程序,面向设备
设备文件名
目录检索i节点
设备驱动程序Linux块设备处理:用户层软件:read()虚拟文件系统VFS:通过块设备文件操作表调用相关VFS的sys_read()磁盘高速缓存文件系统映射层:字节偏移量→逻辑块号→物理块号,对块设备发读请求通用块层:以物理块号、操作类型为参数,向I/O调度程序发启动磁盘读操作命令块设备驱动程序块设备驱动程序磁盘磁盘413.设备处理进程方式的I/O控制过程:
(1)用户进程请求I/O的系统功能调用
系统功能调用的形式:doio(ldev,mode,amount,addr); ldev:逻辑设备名
mode:操作模式
amount:传输数据的数目
addr:传送地址
例如:fd1=open(“/dev/lp”,O_WRONLY);n=write(fd1,buf1,count1);
5.4I/O软件二.I/O控制模块的实现方式423.设备处理进程方式的I/O控制过程:(2)I/O进程处理过程:I/O接口程序①
将逻辑设备转换为物理设备
ⅰ获得I/O系统调用中给出的逻辑设备名(ldev);
ⅱ根据逻辑设备描述器,将逻辑设备名转换为物理设备名。②
合法性检查
ⅰ获得I/O系统调用中给出的操作模式mode;
ⅱ根据DCB中命令转换表中允许的操作,检查操作的合法性。③
形成I/O请求块,发消息给对应的设备处理进程
ⅰ根据请求的参数形成I/O请求块(IORB);
ⅱ将I/O请求块(IORB)挂到对应的设备请求队列。二.I/O控制模块的实现方式44{while(该进程的逻辑设备描述器队列不空){if(与ldev相联结的物理设备找到)break;/*找到*/}if(该进程的逻辑设备描述器队列为空)return(错误码);/*设备逻辑名错*/
检查参数与该设备特性是否一致;if(不一致)return(错误码);/*传送参数错*/
构造iorb;把iorb插入到该设备的请求队列中;唤醒因等待I/O请求块而睡眠的设备处理进程;
}④I/O进程的处理算法描述:45(3)设备处理进程:
processio{l:while(设备请求队列不空){取一个iorb;提取请求的详细信息;启动I/O操作;
sleep(事件:I/O完成)/*I/O操作*//*等I/O完成后,进入中断处理程序,并在那里唤醒设备处理进程*/if(出错)将错误信息写在该设备的dcb中;传送数据到目的地;唤醒请求此I/O操作的进程;删除iorb;
}sleep(事件:因无I/O请求);
gotol;
}3.设备处理进程方式的I/O控制过程:46中断处理程序
doio(ldev,mode,amount,addr);/*等I/O完成*/
标识设备;执行出错检查;构成iocb;将iocb送入设备请求队列;唤醒因等待I/O请求块而睡眠的I/O处理进程;取iocb;如无iocb则等待;启动I/O操作;/*等I/O完成*/执行出错检查;
唤醒等待I/O完成的进程;I/O设备
中断服务;唤醒I/O处理进程;
用户进程I/O进程I/O处理进程启动设备中断信号控制关系同步关系用户进程调用外部设备的过程3.设备处理进程方式的I/O控制过程:(4)请求I/O的进程、I/O进程、设备处理进程、中断处理程序之间的同步关系
5.4I/O软件三.中断处理程序:唤醒被阻塞的驱动程序进程对被中断进程的CPU环境进行保护中断请求信号PSW程序状态字PC程序计数器R0Rn…寄存器中断栈PSWPCR0……Rn硬件完成软件完成分析中断原因,转入相应的中断处理程序终端中断处理程序打印机中断处理程序磁盘中断处理程序…恢复被中断进程的CPU现场…5.4I/O软件四.设备驱动程序:1.设备驱动程序的功能:(1)接收由上层软件发来的抽象命令,将其转换为具体要求,并插入请求队列。
(2)完成I/O操作的初始化工作:检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。
(3)发出I/O命令,启动I/O设备。
(4)及时响应由控制器或通道发来的中断请求。
(5)根据用户的I/O请求,自动地构成通道程序。
(1)驱动程序是请求I/O的进程与设备控制器之间的一个通信和转换程序。
(2)驱动程序与设备控制器和I/O设备的硬件特性紧密相关,因而对不同类型的设备应配置不同的驱动程序。
(3)驱动程序与I/O设备所采用的I/O控制方式紧密相关。
(4)由于驱动程序与硬件紧密相关,因而其中的一部分代码必须用汇编语言书写。
(5)驱动程序不允许系统调用2.设备驱动程序的特点
五.设备独立性软件
设备独立性的概念(1)什么是设备独立性是指用户在程序中使用的设备与实际使用的设备无关,即在用户程序中仅使用逻辑设备名。也称为设备无关性。物理设备名物理设备名用户给出的可变的不变的系统给出的——设备地址物理设备名逻辑设备名逻辑名与物理设备名分开5.4I/O软件五.设备独立性软件
设备独立性的概念(2)物理设备名是系统提供的设备的标准名称,它是永久的、不可更改的。(3)逻辑设备名是用户自己指定的设备名(或设备号),它是暂时的、可更改的。fd=open(“/dev/lp”,mode);fd=open(“./file1.txt”,mode);5.4I/O软件五.设备独立性软件
2.两种类型的设备独立性(1)一个程序独立于分配给它的某种类型的具体设备
系统可以根据设备的使用情况,动态地分配给程序某类设备中的任一台物理设备,程序都能正确地执行。(2)程序应尽可能与它所使用的I/O设备类型无关
在输入(或输出)信息时,信息可以从不同类型的输入(或输出)设备上输入(或输出),若要改变输入(或输出)设备的类型,程序只需进行最少的修改。5.4I/O软件73、设备独立性的实现(1)在高级语言中用软通道实现使用高级语言提供的指派语句,通过指派一个逻辑设备名
(通道号)来定义一个设备或文件。如:fd=open(“/dev/lp”,mode);n=write(fd,buf1,count);(2)在交互系统中,用指派命令来定义
如:PDP系列机上的RT11系统
ASSIGN设备物理名设备逻辑名
如:assignlp:7
则程序中所有对逻辑设备号7的引用都在行式打印机上输出。五.设备独立性软件
5.4I/O软件73、设备独立性的实现(3)逻辑设备描述器ldd(又称逻辑设备表ldt)描述了进程中逻辑设备名与物理设备名的对应关系。
每个进程建立一个ldd链表。五.设备独立性软件
5.4I/O软件73、引入设备独立性的优点方便用户改善设备利用率提高系统的可扩展性和可适应性五.设备独立性软件
5.4I/O软件判断题1.设备独立性是指设备由用户独占使用答案:错5.5设备分配
1.设备控制块系统为每一台设备都配置了一个用来记录设备的硬件特性、连接和使用情况的一组数据,称为设备控制块。设备名设备属性指向设备开关表的指针在I/O总线上的设备地址设备状态当前用户进程指针I/O请求队列指针①
设备名
设备的系统名,即设备的物理名。②设备属性描述设备现行状态的一组属性。③设备开关表转换表包含设备特定的I/O例程入口地址,不具备相应功能的设备在其例程地址上可以填“-1”。一.设备分配概述:2.设备分配算法先来先服务。(2)优先级高者优先。
3.设备分配中的安全性
(1)安全分配方式(2)不安全分配方式
5.5设备分配
一.设备分配概述:4.设备分配方式:
独占分配:静态分配,在作业调度一级:独占设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度总承包方与分包方之间的EPC工程合同
- 2024年度工程分包合同之担保合同
- 2024年度版权许可使用合同标的及详细权利义务规定2篇
- 2024年度船舶港口变形缝防撞设施合同
- 2024年度网络安全产品购销与技术服务合同
- 前厅课件教学课件
- 四期G区施工组织设计(技术标)
- 2024年度电梯设备安装工程协议
- 门店促销策划与执行课件
- 2024年度电商企业公共关系服务合同2篇
- 系统气密、置换及动设备空试记录
- 2023年中考英语写作高级替换词
- 工业铂-铜热电阻检定规程-课件
- 保护身体小秘密课件
- 湘美2011版四年级美术上册《色彩对印》评课稿
- 如何做好研究生导师
- 安全教育水果蔬菜要洗净
- 矿泉水厂建设项目实施方案
- 石油化工班组安全生产标准化建设活动实施方案
- 【知识解析】人民英雄纪念碑主题图集
- 关于高速公路交通安全设施的设置
评论
0/150
提交评论