第五章2016设备管理_第1页
第五章2016设备管理_第2页
第五章2016设备管理_第3页
第五章2016设备管理_第4页
第五章2016设备管理_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章第五章 设备管理设备管理 目录目录1. 设备管理概述设备管理概述2. I/O控制方式控制方式 3.缓冲管理缓冲管理 4.I/O软件软件 5.设备分配设备分配 I/O系统结构系统结构 CPU存储器存储器控制器控制器设备设备控制器控制器设备设备总线(数据、地址、控制)总线(数据、地址、控制)5.1 设备管理概述设备管理概述1. 微机微机I/O系统结构:总线型系统结构:总线型I/O系统结构:系统结构:总线:总线:是一组线和一组严格定义的可以描述在线上传输信息的协是一组线和一组严格定义的可以描述在线上传输信息的协议,这一组线用来连接多个设备,这种连接称为总线。议,这一组线用来连接多个设备,这种连

2、接称为总线。一个典型的一个典型的PC总线结构:总线结构:5.1 5.1 设备管理概述设备管理概述 I/O系统结构系统结构 2、主机、主机I/O系统结构:加入通道结构:系统结构:加入通道结构:CPU存储器存储器控制器控制器设备设备控制器控制器设备设备通道通道1通道通道2控制器控制器设备设备设备设备 I/O通道是一种通道是一种特殊的处理机特殊的处理机,它控制设备与内存直接进行数据交换它控制设备与内存直接进行数据交换 。 I/O通道与一般的处理机的区别:通道与一般的处理机的区别: 通道的指令类型单一,主要局限于与通道的指令类型单一,主要局限于与I/O操作有关的指令;操作有关的指令;通道没有自己的内存

3、,是与通道没有自己的内存,是与CPU共享内存。共享内存。二二 .I/O.I/O设备的类型设备的类型 按信息交换的单位分类:按信息交换的单位分类:5.1 5.1 设备管理概述设备管理概述 1、块设备:、块设备:以以数据块数据块为单位来传送数据的设备,如磁盘为单位来传送数据的设备,如磁盘.特点:特点:1)信息交换的单位为等长数据块;)信息交换的单位为等长数据块; 2)可寻址;)可寻址; 3)I/O控制采用控制采用DMA方式。方式。 4)信息存储设备)信息存储设备二二 .I/O.I/O设备的类型设备的类型 5.1 5.1 设备管理概述设备管理概述 2、字符设备:、字符设备: 以以单个字符单个字符为单

4、位来传送信息的设备,如终端、打印机为单位来传送信息的设备,如终端、打印机 特点:特点:1)信息交换的单位为字符或字节;)信息交换的单位为字符或字节; 2)不可寻址;)不可寻址; 3)I/O控制采用中断驱动方式。控制采用中断驱动方式。 4)信息输入输出设备)信息输入输出设备3、网络设备:、网络设备: 负责计算机之间的信息传输,兼具字符设备和块设备的特点负责计算机之间的信息传输,兼具字符设备和块设备的特点,如调制解调器、网卡等。,如调制解调器、网卡等。三三. 设备管理功能:设备管理功能:跟踪设备状态:跟踪设备状态:动态地记录各种设备的状态动态地记录各种设备的状态设备分配:设备分配:独占设备;共享设

5、备;虚拟设备独占设备;共享设备;虚拟设备 静态分配静态分配 应用程序级或作业级应用程序级或作业级 程序进入系统时进行分配,退出系统时收回全部资源 动态分配动态分配 进程级进程级 进程提出设备申请时进行分配,使用完毕后立即收回3. 缓冲管理:缓冲管理:缓和缓和CPU与设备间速度不匹配的矛盾与设备间速度不匹配的矛盾4. 设备控制:设备控制:设备驱动设备驱动+中断处理中断处理 5.1 设备管理概述设备管理概述3 合理分配设备合理分配设备 提高设备与提高设备与CPU、各外部设备之间的并行性、各外部设备之间的并行性 提供使用方便且独立于设备的界面提供使用方便且独立于设备的界面 统一:统一:对各种不同的设

6、备提供一致的界面对各种不同的设备提供一致的界面 独立于设备:独立于设备:用户使用的设备与物理设备无关用户使用的设备与物理设备无关5.1 设备管理概述设备管理概述5.2 I/O5.2 I/O控制方式控制方式 程序程序I/OI/O方式方式 (或称循环测试或称循环测试I/O方式)方式)设备选中,设备选中,CPU向设备控制器发向设备控制器发I/O指令,启动设备指令,启动设备将控制器中的状态寄存器的值将控制器中的状态寄存器的值busy置为置为1CPU循环测试循环测试busy的值,直到的值,直到busy=0;设备控制器控制设备执行设备控制器控制设备执行I/O操作操作设备控制器置设备控制器置busy=0同时

7、进同时进行行CPU传传送到内存送到内存I/O完成完成5.2 I/O5.2 I/O控制方式控制方式 二、中断驱动二、中断驱动I/OI/O控制方式控制方式 :设备选中,设备选中,CPU向设备控制器发向设备控制器发I/O指令,启指令,启动设备,并置状态寄存器的允许中断位动设备,并置状态寄存器的允许中断位=1将控制器中的状态寄存器的将控制器中的状态寄存器的busy置为置为1当前进程阻塞,当前进程阻塞,CPU调度其他进程执行调度其他进程执行设备控制器控制设备执行设备控制器控制设备执行I/O操作操作设备控制器向设备控制器向CPU发中断发中断同时进行同时进行CPU响应中响应中断,传送断,传送数据到内存数据到

8、内存I/O完成完成常用于字符设备常用于字符设备的的I/O控制控制三三. 直接存储器访问(直接存储器访问(DMA )I/O控制方式控制方式 1. DMA控制方式的特征:控制方式的特征: 数据传输的基本单位是数据块;数据传输的基本单位是数据块; 数据传送是在设备与内存之间直接进行的;数据传送是在设备与内存之间直接进行的; 整块数据的传送是在整块数据的传送是在DMA控制器的控制下完成控制器的控制下完成的,仅在传送一个或多个数据块的开始和结束时,才的,仅在传送一个或多个数据块的开始和结束时,才需需CPU干预。干预。5.2 I/O5.2 I/O控制方式控制方式 常用于块设备常用于块设备的的I/O控制控制

9、三三. 直接存储器访问(直接存储器访问(DMA )I/O控制方式控制方式 2、 DMA控制器的组成及作用:控制器的组成及作用: 3、 DMA传送过程:传送过程: (1 1)DMADMA传送前预处理传送前预处理: (CPUCPU完成)完成)u测试设备状态测试设备状态uCPUCPU初始化初始化DMADMA控制器:控制器: 主存缓冲区首址主存缓冲区首址 MAR; 传送数据字节数传送数据字节数 DC; 设置传输方式设置传输方式u 启动设备。启动设备。三三. 直接存储器访问(直接存储器访问(DMA )I/O控制方式控制方式 2. DMA传送过程:传送过程: DR1B或一个字或一个字数据总线数据总线 MA

10、R所指主存单元所指主存单元(2 2)DMADMA控制器控制完成设备与主存间的数据传送控制器控制完成设备与主存间的数据传送 磁盘控制器磁盘控制器将整块数据从磁盘读入磁盘控制器的将整块数据从磁盘读入磁盘控制器的DRDR中;中; 磁盘控制器校验读入的数据;磁盘控制器校验读入的数据; 磁盘控制器向磁盘控制器向DMA控制器发控制器发DMA请求请求DMA控制器向控制器向CPU请求总线周期,获得总线控制器权后:请求总线周期,获得总线控制器权后: DC-;DC=0?是是向向CPU发中断发中断否否 转转 MAR+;(3 3)CPUCPU响应中断进行后处理响应中断进行后处理:(CPUCPU完成)完成)思考:思考:

11、 DMA控制方式与中断驱动控制方式的区别:控制方式与中断驱动控制方式的区别: (1 1)对)对CPUCPU的中断频率不同;的中断频率不同; (2 2)数据传输控制不同。)数据传输控制不同。 四四. I/O. I/O通道控制方式通道控制方式 1. 通道的运算控制部件:通道的运算控制部件: 通道地址字(通道地址字(CAWCAW):):记录下一条通道指令的地址,其功记录下一条通道指令的地址,其功能类似于中央处理机的指令计数器。能类似于中央处理机的指令计数器。 通道命令字(通道命令字(CCWCCW):):记录正在执行的通道指令,其作用记录正在执行的通道指令,其作用相当于中央处理机的指令寄存器。相当于中

12、央处理机的指令寄存器。 通道状态字(通道状态字(CSWCSW):):记录通道、控制器、设备的状态,记录通道、控制器、设备的状态,包括包括I/OI/O传输完成信息、出错信息、重复执行次数等。传输完成信息、出错信息、重复执行次数等。 通道控制方式是一种以内存为中心,实现设备和内存间通道控制方式是一种以内存为中心,实现设备和内存间直接交换数据的控制方式。直接交换数据的控制方式。 四四. I/O. I/O通道控制方式通道控制方式 2. 通道程序:通道程序:保存在主存中保存在主存中 操作码:操作码:规定指令所执行的操作。规定指令所执行的操作。 内存地址:内存地址:内存缓冲区首址。内存缓冲区首址。 计数:

13、计数:本条指令要读写的字节数。本条指令要读写的字节数。 通道程序结束位通道程序结束位P:P=1P=1表示本条指令是通道程序最后表示本条指令是通道程序最后 一条指令。一条指令。 记录结束标志记录结束标志R:R=0R=0表示本条指令与下一条指令所处表示本条指令与下一条指令所处 理的数据属同一条记录。理的数据属同一条记录。 由一系列通道指令构成。由一系列通道指令构成。 通道指令内容如下:通道指令内容如下:四四. I/O. I/O通道控制方式通道控制方式 2. 通道程序:通道程序:CPU根据用户的根据用户的I/O请求生成通道程序请求生成通道程序 ;将其;将其放到内存中,并将其首地址放入放到内存中,并将

14、其首地址放入CAW中中 CPU执行执行“启动启动I/O”指令,启动通道工作指令,启动通道工作 通道向通道向CPU发应答信号,通知发应答信号,通知“启动启动I/O”指令完成,指令完成,CPU可继续执行其他进程可继续执行其他进程通道取出通道程序的下一条指令,通道取出通道程序的下一条指令,放入放入CCW中,并执行之中,并执行之通道向通道向CPU发中断发中断CPU响应中断响应中断否否四四. I/O. I/O通道控制方式通道控制方式 3. I/O控制过程:控制过程: 是最后一条指令吗?是最后一条指令吗?是是5.3 5.3 缓冲管理缓冲管理 二二. . 缓冲的引入缓冲的引入 (1 1)缓和)缓和CPUCP

15、U与与I/OI/O设备间速度不匹配的矛盾。设备间速度不匹配的矛盾。 (2 2)提高)提高CPUCPU和和I/OI/O设备之间的并行性。设备之间的并行性。(3 3)解决数据处理单位与传输单位不匹配的问题。)解决数据处理单位与传输单位不匹配的问题。(4 4)减少对)减少对CPUCPU的中断频率,的中断频率, 放宽对放宽对CPUCPU中断响应时间的限中断响应时间的限制。制。 什么是缓冲什么是缓冲 缓冲是两种不同速度的设备之间传输信息时平滑传输过程缓冲是两种不同速度的设备之间传输信息时平滑传输过程的常用手段的常用手段1 1位缓冲位缓冲9.6 Kb/s8 位缓冲寄存器位缓冲寄存器送内存送内存9.6 Kb

16、/s(b)(a)例:在一个远程通信系统中,在本地接收从远程例:在一个远程通信系统中,在本地接收从远程终端发来的数据,速率为终端发来的数据,速率为9.6kb/s。送内存送内存CPUCPU中断频率:中断频率:9.6K9.6K;CPUCPU响应时间:响应时间:0.1ms0.1ms;CPUCPU中断频率:中断频率:1.2K1.2K;CPUCPU响应时间:响应时间:0.1ms0.1ms;两个两个8 8位缓冲寄存器位缓冲寄存器9.6 Kb/s送内存送内存(c)CPUCPU中断频率:中断频率:1.2K1.2K;CPUCPU响应时间:响应时间:0.8ms0.8ms;送内存送内存12三三. 利用缓冲技术如何进行

17、利用缓冲技术如何进行I/O操作操作 (1) (1) 进程活动期间,请求从某设备读入数据进程活动期间,请求从某设备读入数据 进程请求从输入设备进行读操作的图示进程请求从输入设备进行读操作的图示输入设备输入设备BUF进程进程 图中的操作与图中的操作与 操作需要同步操作需要同步 5.3 5.3 缓冲管理缓冲管理 13三三. 利用缓冲技术如何进行利用缓冲技术如何进行I/O操作操作(1) (1) 进程活动期间,请求从某设备读入数据进程活动期间,请求从某设备读入数据 进程请求从输入设备进行读操作的步骤进程请求从输入设备进行读操作的步骤 当用户要求在某个设备上进行读操作时,首先从系统 中获得一个空的缓冲区

18、(图中标注的操作); 将一个物理记录送到缓冲区中 (图中标注的存在) ; 当用户请求这些数据时,系统将依据逻辑记录特性从 缓冲区中提取并发送到用户进程存储区中 (图中标注的 操作) ; 当缓冲区空而进程又要从中取用数据时该进程被迫等 待。此时,操作系统需要重新送数据填满缓冲区,进 程才能从中取数据继续运行。14(2) 进程活动期间,请求从输出设备输出数据进程活动期间,请求从输出设备输出数据 进程请求从输出设备进行写操作的图示进程请求从输出设备进行写操作的图示 图中的操作与图中的操作与 操作需要同步操作需要同步 输出设备输出设备BUF进程进程 5.3 5.3 缓冲管理缓冲管理 三三. 利用缓冲技

19、术如何进行利用缓冲技术如何进行I/O操作操作15 进程请求从输出设备进行写操作的步骤进程请求从输出设备进行写操作的步骤 当用户要求进行写操作时,首先从系统中获得一个空 的缓冲区 (图中标注的操作) ; 将一个逻辑记录从进程存储区传送到缓冲区中 (图中标 注操作) ; 当缓冲区写满时,系统将缓冲区的内容作为物理记录 文件写到设备上,使缓冲区再次为空 (图中标注的操作 ) ; 只有在系统还来不及腾空缓冲区之前,进程又企图输 出信息时,它才需要等待。三三. 利用缓冲技术如何进行利用缓冲技术如何进行I/O操作操作(2) 进程活动期间,请求从输出设备输出数据进程活动期间,请求从输出设备输出数据四四. 单

20、缓冲和双缓冲单缓冲和双缓冲 1. 1. 单缓冲单缓冲(Single Buffer) (Single Buffer) 系统对一块数据的处理时间:系统对一块数据的处理时间:Max(C,T)+MMax(C,T)+M 5.3 5.3 缓冲管理缓冲管理 2. 2. 双缓冲双缓冲(Double Buffer)(Double Buffer) 系统对一块数据的处理时间:系统对一块数据的处理时间:Max(C+M,T)Max(C+M,T) T T M M C C 四四. 单缓冲和双缓冲单缓冲和双缓冲 5.3 5.3 缓冲管理缓冲管理 五五. . 缓冲池缓冲池(Buffer Pool) (Buffer Pool)

21、1 1、缓冲队列管理、缓冲队列管理 由内存中一组缓冲区组成,由系统统一管理。由内存中一组缓冲区组成,由系统统一管理。 输入队列输入队列inq;输出队列输出队列outq。 空缓冲区:空缓冲区:空缓冲队列空缓冲队列emq; 装满输入数据的缓冲区:装满输入数据的缓冲区: 装满输出数据的缓冲区:装满输出数据的缓冲区:5.3 5.3 缓冲管理缓冲管理 五五. . 缓冲池缓冲池(Buffer Pool) (Buffer Pool) 2 2、缓冲池的使用:、缓冲池的使用: Getbuf ( type): 申请一个缓冲区;申请一个缓冲区; Putbuf (type, number): 释放一个缓冲区;释放一个

22、缓冲区;信号量设置:信号量设置:资源信号量:资源信号量:表示某类缓冲队列中缓冲区的数量:表示某类缓冲队列中缓冲区的数量: RS(emq)=n; RS(inq)=0; RS(outq)=0;互斥信号量:互斥信号量:实现相应缓冲队列的互斥使用:实现相应缓冲队列的互斥使用: MS(emq)=MS(inq)=MS(outq)=1;(2) Getbuf过程过程 Procedure Getbuf(type) begin Wait(RS(type); Wait(MS(type); B(number) = Takebuf(type); Signal(MS(type); end 五五. . 缓冲池缓冲池(Buf

23、fer Pool) (Buffer Pool) 2. 2. 缓冲池的使用:缓冲池的使用: Procedure Putbuf(type, number) begin Wait(MS(type); Addbuf(type, number); Signal(MS(type); Signal(RS(type); end (3)Putbuf过程过程 五五. . 缓冲池缓冲池(Buffer Pool) (Buffer Pool) 2. 2. 缓冲池的使用:缓冲池的使用: 3 3、 缓冲池的工作方式缓冲池的工作方式 输入队列输入队列 空缓冲队列空缓冲队列 输出队列输出队列Getbuf(emq)收容输入收容输

24、入Putbuf(inq)Putbuf(outq)Getbuf(emq)Getbuf(inq)Putbuf(emq)Getbuf(outq)Putbuf(emq)提取输入提取输入收容输出收容输出提取输出提取输出五五. . 缓冲池缓冲池(Buffer Pool) (Buffer Pool) 5.3 5.3 缓冲管理缓冲管理 20 加快系统响应、增加系统吞吐量加快系统响应、增加系统吞吐量 减少对磁盘的减少对磁盘的I/O操作次数操作次数5.3 5.3 缓冲管理缓冲管理 20 当进程要从磁盘读数据时,首先考虑从高速缓冲当进程要从磁盘读数据时,首先考虑从高速缓冲中读中读 当进程要写数据到磁盘时,先写入高速

25、缓冲中当进程要写数据到磁盘时,先写入高速缓冲中缓冲读缓冲读高速缓冲高速缓冲 用户用户数据区数据区用户进程用户进程磁盘磁盘缓冲写缓冲写高速缓冲高速缓冲 用户用户数据区数据区用户进程用户进程磁盘磁盘21 缓冲区的组成缓冲区的组成 缓存数组缓存数组含有磁盘上的数据的存储器数组含有磁盘上的数据的存储器数组 缓存首部缓存首部描述缓冲区特性的数据结构描述缓冲区特性的数据结构5.3 5.3 缓冲管理缓冲管理 22 缓存首部结构缓存首部结构设备号设备号 dev块号块号 blkno状态状态 flag指向数据区域的指针指向数据区域的指针传送字节数传送字节数返回的返回的I/ /O出错信息出错信息b_forw 设备缓

26、冲区队列前向指针设备缓冲区队列前向指针b_back 设备缓冲区队列后向指针设备缓冲区队列后向指针av_forw 空闲缓冲区队列前向指针空闲缓冲区队列前向指针 av_back 空闲缓冲区队列后向指针空闲缓冲区队列后向指针 设备号设备号dev 缓冲区所包含的信息所属设备的设备号缓冲区所包含的信息所属设备的设备号 块号块号blknoblkno 由设备号指出的设备上相对于第由设备号指出的设备上相对于第0块的块号块的块号 状态状态flagflag描述了缓冲区当前的状态描述了缓冲区当前的状态 忙标志忙标志BUSY:缓冲区当前正:缓冲区当前正“忙忙” 有效位有效位AVE:缓冲包含的数据有效:缓冲包含的数据有

27、效 延迟写延迟写DELWR :核心在某缓冲区重新分:核心在某缓冲区重新分配出去之前必须把缓冲区内容写到磁盘上配出去之前必须把缓冲区内容写到磁盘上 写标志写标志WRITE: 核心当前正把缓冲区的内核心当前正把缓冲区的内容写到磁盘容写到磁盘 读标志读标志READ:核心当前正从磁盘往缓冲区:核心当前正从磁盘往缓冲区写信息写信息等待位等待位 WAIT: 一个进程当前正在等候缓一个进程当前正在等候缓冲区变为空闲冲区变为空闲23 缓冲区队列结构缓冲区队列结构 设备缓冲区队列设备缓冲区队列 与某类设备有关的所有缓冲区组成的队列称为设备缓与某类设备有关的所有缓冲区组成的队列称为设备缓 冲区队列,简称冲区队列,

28、简称b链。链。 b_forw b_back b_forw b_back b_forw b_back b_forw b_back设备缓冲区队列设备缓冲区队列24 缓冲区队列结构缓冲区队列结构 空闲缓冲区队列空闲缓冲区队列 可供重新分配使用的缓冲区组成的队列称为空闲缓冲可供重新分配使用的缓冲区组成的队列称为空闲缓冲 区区队列,简称队列,简称av链。链。 av_forwav_backav_forwav_backav_forwav_backav_forwav_back空闲缓冲区队列空闲缓冲区队列26分配一个分配一个buf读读/写某设备上的块:写某设备上的块: 首先寻找该设备的首先寻找该设备的b链,若找

29、到:链,若找到: 1)B_BUSY=0:移出:移出av链,链,B_BUSY=1 ;使用完后,;使用完后, B_BUSY=0,链入,链入av链队尾。链队尾。 2)B_ BUSY=1:缓冲区不在:缓冲区不在avav链上,该进程睡眠链上,该进程睡眠 若若b链中找不到:链中找不到: 取取av链链 (空闲空闲buf队列队列) 的首元素:的首元素: 1)若无延迟写标记,直接分配,插入)若无延迟写标记,直接分配,插入b链,链,B_BUSY=1 ;用完后,链入用完后,链入av链队尾,链队尾, B_BUSY=0 2)若有延迟写标记:分配下一个空闲缓冲区,然后同)若有延迟写标记:分配下一个空闲缓冲区,然后同1)2

30、7(2) 对延迟写的处理对延迟写的处理 当一个具有延迟写标记的当一个具有延迟写标记的buf移到移到av链头,要用于分配时,立链头,要用于分配时,立即进行写操作:从即进行写操作:从av链上摘除,使用完后又送入链上摘除,使用完后又送入av头部,同时头部,同时仍保留在原仍保留在原b链中。链中。(3)释放一个缓冲区:)释放一个缓冲区: 缓冲区读写操作结束后,保留在缓冲区读写操作结束后,保留在b链,并插入链,并插入av链尾链尾27272727I/O 应答应答进行进行I/O调用;格式化调用;格式化I/O命名、保护、缓冲、分配命名、保护、缓冲、分配设备驱动设备驱动+中断处理中断处理当当I/O结束时,进行中断

31、处理结束时,进行中断处理执行执行I/O操作操作I/O 请求请求用户层软件用户层软件设备独立性软件设备独立性软件设备驱动程序设备驱动程序中断处理程序中断处理程序硬件硬件5.4 I/O软软件件I/OI/O软件的组成:软件的组成:I/OI/O控制模块控制模块逻辑逻辑I/O层层设备设备I/O层层内核空间内核空间40 1、以设备处理进程的方式:、以设备处理进程的方式:2、 将设备与文件一样对待:将设备与文件一样对待:UNIX、linux 将设备与文件一样对待,使用文件系统的系统调用命令进将设备与文件一样对待,使用文件系统的系统调用命令进 行设备的读、写,由文件系统统一管理。行设备的读、写,由文件系统统一

32、管理。 5.4 I/O软件软件 I/O控制模块控制模块 I/O进程:接口程序,面向用户进程:接口程序,面向用户 设备处理进程:设备驱动程序,面向设备设备处理进程:设备驱动程序,面向设备 设备文件名设备文件名 目录检索目录检索 i节点节点 设备驱动程序设备驱动程序Linux块设备处块设备处理:理:用户层软件用户层软件:read()虚拟文件系统虚拟文件系统VFS:通过块设备文件操作表调用相关:通过块设备文件操作表调用相关VFS的的sys_read()()磁盘高速缓存磁盘高速缓存文件系统映射层文件系统映射层:字节偏移量:字节偏移量逻辑块号逻辑块号物理块号,对块设备发读请求物理块号,对块设备发读请求通

33、用块层通用块层:以物理块号、操作类型为参数,向:以物理块号、操作类型为参数,向I/O调度程序发启动磁盘读调度程序发启动磁盘读操作命令操作命令块设备驱动程序块设备驱动程序块设备驱动程序块设备驱动程序磁盘磁盘磁盘磁盘41 系统功能调用的形式系统功能调用的形式: doio(ldev,mode,amount,addr); ldev: 逻辑设备名逻辑设备名 mode: 操作模式操作模式 amount:传输数据的数目:传输数据的数目 addr: 传送地址传送地址 例如:例如:fd1=open(“/dev/lp”,O_WRONLY); n=write(fd1,buf1,count1); 5.4 I/O软件软

34、件42 将逻辑设备转换为物理设备将逻辑设备转换为物理设备 获得获得 I/O系统调用中给出的逻辑设备名系统调用中给出的逻辑设备名 (ldev); 根据逻辑设备描述器,将逻辑设备名转换为物理设备名。根据逻辑设备描述器,将逻辑设备名转换为物理设备名。 合法性检查合法性检查 获得获得 I/O系统调用中给出的操作模式系统调用中给出的操作模式mode; 根据根据DCB中命令转换表中允许的操作,检查操作的合中命令转换表中允许的操作,检查操作的合 法性。法性。 形成形成I/O请求块,发消息给对应的设备处理进程请求块,发消息给对应的设备处理进程 根据请求的参数形成根据请求的参数形成I/O请求块请求块 (IORB

35、); 将将I/O请求块请求块 (IORB)挂到对应的设备请求队列。挂到对应的设备请求队列。44 while (该进程的逻辑设备描述器队列不空该进程的逻辑设备描述器队列不空) if (与与ldev相联结的物理设备找到相联结的物理设备找到) break; / *找到找到* / if (该进程的逻辑设备描述器队列为空该进程的逻辑设备描述器队列为空) return(错误码错误码); / * 设备逻辑名错设备逻辑名错* / 检查参数与该设备特性是否一致检查参数与该设备特性是否一致; if (不一致不一致) return (错误码错误码); / * 传送参数错传送参数错 * / 构造构造iorb; 把把i

36、orb插入到该设备的请求队列中;插入到该设备的请求队列中; 唤醒因等待唤醒因等待I/O请求块而睡眠的设备处理进程;请求块而睡眠的设备处理进程; I/O进程的处理算法描述:进程的处理算法描述:45 process io l: while (设备请求队列不空设备请求队列不空) 取一个取一个iorb; 提取请求的详细信息;提取请求的详细信息; 启动启动I/O操作;操作; sleep (事件:事件:I/O完成完成) /* I/O操作操作* / /* 等等I/O完成后,进入中断处理程序,并在那里唤醒设备处理进程完成后,进入中断处理程序,并在那里唤醒设备处理进程* / if (出错出错) 将错误信息写在该

37、设备的将错误信息写在该设备的dcb中;中; 传送数据到目的地;传送数据到目的地; 唤醒请求此唤醒请求此I/O操作的进程;操作的进程; 删除删除iorb; sleep (事件:因无事件:因无I/O请求请求); goto l ; 46中断处理程序中断处理程序 doio(ldev,mode,amount,addr);/* 等等I/ /O完成完成*/ 标识设备;标识设备;执行出错检查;执行出错检查;构成构成iocb;将将iocb送入设备请送入设备请求队列;求队列;唤醒因等待唤醒因等待I/ /O请请求块而睡眠的求块而睡眠的I/ /O处理进程;处理进程;取取iocb;如无如无iocb则等待;则等待;启动启

38、动I/ /O操作;操作;/*等等I/ /O完成完成*/执行出错检查;执行出错检查; 唤醒等待唤醒等待I/ /O完成完成的进程;的进程;I/ /O设备设备 中断服务;中断服务; 唤醒唤醒I/ /O处理处理进程;进程; 用户进程用户进程I/ /O进程进程I/ /O处理进程处理进程启动启动设备设备中断信号中断信号控制关系控制关系同步关系同步关系用户进程调用外部设备的过程用户进程调用外部设备的过程 5.4 I/O5.4 I/O软件软件三三. . 中断处理程序:中断处理程序:唤醒被阻塞的唤醒被阻塞的驱动程序进程驱动程序进程对被中断进程的对被中断进程的CPUCPU环境进行保护环境进行保护中断请求信号中断请

39、求信号PSW程序状态字程序状态字PC程序计数器程序计数器R0Rn寄存器寄存器中断栈中断栈PSWPCR0Rn硬件完成硬件完成软件完成软件完成分析中断原因,转入分析中断原因,转入相应的中断处理程序相应的中断处理程序终端中断终端中断处理程序处理程序打印机中断打印机中断处理程序处理程序磁盘中断磁盘中断处理程序处理程序恢复被中断进恢复被中断进程的程的CPU 现场现场5.4 I/O软软件件四四. . 设备驱动程序:设备驱动程序:1. 1. 设备驱动程序的功能:设备驱动程序的功能: (1) 接收由上层软件发来的抽象命令,接收由上层软件发来的抽象命令, 将其转换为具体要求,将其转换为具体要求,并插入请求队列。

40、并插入请求队列。 (2) 完成完成I/O操作的初始化工作:检查用户操作的初始化工作:检查用户I/O请求的合法性,请求的合法性,了解了解I/O设备的状态,传递有关参数,设置设备的工作方式。设备的状态,传递有关参数,设置设备的工作方式。 (3) 发出发出I/O命令,启动命令,启动I/O设备。设备。 (4) 及时响应由控制器或通道发来的中断请求。及时响应由控制器或通道发来的中断请求。 (5) 根据用户的根据用户的I/O请求,自动地构成通道程序。请求,自动地构成通道程序。 (1) 驱动程序是请求驱动程序是请求I/O的进程与设备控制器之间的一个通的进程与设备控制器之间的一个通信和转换程序。信和转换程序。

41、 (2) 驱动程序与设备控制器和驱动程序与设备控制器和I/O设备的硬件特性紧密相关,设备的硬件特性紧密相关, 因而对不同类型的设备应配置不同的驱动程序。因而对不同类型的设备应配置不同的驱动程序。 (3) 驱动程序与驱动程序与I/O设备所采用的设备所采用的I/O控制方式紧密相关。控制方式紧密相关。 (4) 由于驱动程序与硬件紧密相关,由于驱动程序与硬件紧密相关, 因而其中的一部分代因而其中的一部分代码必须用汇编语言书写。码必须用汇编语言书写。 (5) 驱动程序不允许系统调用驱动程序不允许系统调用2. 2. 设备驱动程序的特点设备驱动程序的特点 五五. . 设备独立性软件设备独立性软件 设备独立性

42、的概念设备独立性的概念(1 1)什么是设备独立性)什么是设备独立性 是指是指用户在程序中使用的设备与实际使用的设备无关,即用户在程序中使用的设备与实际使用的设备无关,即在用户程序中仅使用逻辑设备名在用户程序中仅使用逻辑设备名。也称为设备无关性。也称为设备无关性。物理设备名物理设备名物理设备名物理设备名用户给出的用户给出的可变的可变的不变的不变的系统给出的系统给出的设备地址设备地址物理设备名物理设备名逻辑设备名逻辑设备名逻辑名与物理设备名分开逻辑名与物理设备名分开5.4 I/O软软件件五五. . 设备独立性软件设备独立性软件 设备独立性的概念设备独立性的概念(2 2)物理设备名)物理设备名 是系

43、统提供的设备的标准名称,它是永久的、不可更改的。是系统提供的设备的标准名称,它是永久的、不可更改的。(3 3)逻辑设备名)逻辑设备名 是用户自己指定的设备名是用户自己指定的设备名 (或设备号或设备号),它是暂时的、可更改,它是暂时的、可更改的。的。 fd = open(“/dev/lp” ,mode) ; fd = open(“./file1.txt”,mode);5.4 I/O软软件件五五. . 设备独立性软件设备独立性软件 2.2.(1 1) 一个程序独立于分配给它的某种类型的具体设备一个程序独立于分配给它的某种类型的具体设备 系统可以根据设备的使用情况,动态地分配给程序某类设系统可以根据

44、设备的使用情况,动态地分配给程序某类设 备中的任一台物理设备,程序都能正确地执行。备中的任一台物理设备,程序都能正确地执行。(2 2) 程序应尽可能与它所使用的程序应尽可能与它所使用的I/O设备类型无关设备类型无关 在输入在输入 (或输出或输出)信息时,信息可以从不同类型的输入信息时,信息可以从不同类型的输入 (或或 输出输出)设备上输入设备上输入 (或输出或输出),若要改变输入,若要改变输入 (或输出或输出) 设备设备 的类型,程序只需进行最少的修改。的类型,程序只需进行最少的修改。 5.4 I/O软软件件7(1)在高级语言中用软通道实现)在高级语言中用软通道实现 使用高级语言提供的指派语句

45、,通过指派一个逻辑设备名使用高级语言提供的指派语句,通过指派一个逻辑设备名 (通道号通道号)来定义一个设备或文件。来定义一个设备或文件。 如:如:fd = open(“/dev/lp” ,mode) ; n=write(fd,buf1,count);(2)在交互系统中,用指派命令来定义)在交互系统中,用指派命令来定义 如:如:PDP系列机上的系列机上的RT11系统系统 ASSIGN 设备物理名设备物理名 设备逻辑名设备逻辑名 如:如:assign lp :7 则程序中所有对逻辑设备号则程序中所有对逻辑设备号7的引用都在行式打印机上的引用都在行式打印机上输出。输出。五五. . 设备独立性软件设备

46、独立性软件 5.4 I/O软软件件7(3)逻辑设备描述器)逻辑设备描述器ldd(又称逻辑设备表(又称逻辑设备表ldt) 描述了进程中逻辑设备名与物理设备名的对应关系。描述了进程中逻辑设备名与物理设备名的对应关系。 每个进程建立一个每个进程建立一个ldd链表。链表。五五. . 设备独立性软件设备独立性软件 5.4 I/O软软件件7 方便用户方便用户 改善设备利用率改善设备利用率 提高系统的可扩展性和可适应性提高系统的可扩展性和可适应性五五. . 设备独立性软件设备独立性软件 5.4 I/O软软件件 判断题判断题1.设备独立性是指设备由用户独占使用设备独立性是指设备由用户独占使用答案:错答案:错5

47、.5 5.5 设备分配设备分配 1.1.设备控制块设备控制块系统为每一台设备都配置了一个用来记录设备的硬件特系统为每一台设备都配置了一个用来记录设备的硬件特 性、性、连接和使用情况的一组数据,称为设备控制块。连接和使用情况的一组数据,称为设备控制块。设备名设备名设备属性设备属性指向设备开关表的指针指向设备开关表的指针在在I/ /O总线上的设备地址总线上的设备地址设备状态设备状态当前用户进程指针当前用户进程指针I/O请求队列指针请求队列指针 设备名设备名 设备的系统名,即设备的物理名。设备的系统名,即设备的物理名。 设备属性设备属性 描述设备现行状态的一组属性。描述设备现行状态的一组属性。 设备

48、开关表设备开关表 转换表包含设备特定的转换表包含设备特定的I/O例程入例程入口地口地 址,不具备相应功能的设备址,不具备相应功能的设备在其在其 例程地址上可以填例程地址上可以填“-1”。一一. . 设备分配概述:设备分配概述:2. 2. 设备分配算法设备分配算法先来先服务。先来先服务。 (2) 优先级高者优先。优先级高者优先。 3. 3. 设备分配中的安全性设备分配中的安全性 (1)安全分配方式)安全分配方式 (2)不安全分配方式)不安全分配方式 5.5 5.5 设备分配设备分配 一一. . 设备分配概述:设备分配概述:4. 4. 设备分配方式:设备分配方式: 独占分配:独占分配:静态分配,在

49、作业调度一级静态分配,在作业调度一级 :独占设备:独占设备 (2) (2) 共享分配共享分配: : 动态分配:高速、大容量的直接存取存储设备动态分配:高速、大容量的直接存取存储设备 (3) (3) 虚拟分配:虚拟分配:利用共享设备实现独占设备的功能:利用共享设备实现独占设备的功能:SpoolingSpooling4. 4. 设备分配方式:设备分配方式:(3) (3) 虚拟分配:虚拟分配:利用共享设备实现独占设备的功能利用共享设备实现独占设备的功能虚宽行虚宽行1虚宽行虚宽行2进程进程A进程进程B进程进程C进程进程D输入井输入井输出井输出井输入机输入机打印机打印机虚输入机虚输入机1虚输入机虚输入机232 SPOOLing系统提供外围设备同时联机操作的功能。系统提供外围设备同时联机操作的功能。 预输入预输入 由由OS预先将程序所需数据输入到辅存输入井存放;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论