操作系统原理第八章输入输出管理.ppt

上传人:牧羊曲112 文档编号:4979502 上传时间:2023-05-27 格式:PPT 页数:40 大小:481.50KB
返回 下载 相关 举报
操作系统原理第八章输入输出管理.ppt_第1页
第1页 / 共40页
操作系统原理第八章输入输出管理.ppt_第2页
第2页 / 共40页
操作系统原理第八章输入输出管理.ppt_第3页
第3页 / 共40页
操作系统原理第八章输入输出管理.ppt_第4页
第4页 / 共40页
操作系统原理第八章输入输出管理.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《操作系统原理第八章输入输出管理.ppt》由会员分享,可在线阅读,更多相关《操作系统原理第八章输入输出管理.ppt(40页珍藏版)》请在三一办公上搜索。

1、第八章 输入输出管理,8.1 I/O管理概念8.2 缓冲技术8.3 设备分配技术8.4 I/O控制,2,8.1 输入/输出管理概念,一、引言设备分类1.存储设备:是存储信息的设备,如:磁盘、磁鼓。(以块为单位传输信息)。2.输入输出设备:能将信息从计算机外部输入到机内,或反之,如:键盘、显示器、打印机。3.传输设备 负责计算机之间的信息传输,如调制调节器、网卡。设备按传输信息的特点来分:字符设备、块设备,3,8.1 输入/输出管理概念,设备管理的设计目标1.提高设备利用率(关键是实现设备的并行操作)合理分配设备提高设备与CPU、各外部设备之间的并行性(通道和中断)2.方便用户使用独立于设备:用

2、户使用的设备与物理设备无关建立虚拟环境3.设备处理的一致性设备品种繁多、用法各异,逐一管理十分复杂;输入输出系统应将设备的特性与处理它们的程序分开。,4,8.1 输入/输出管理概念,二、输入/输出管理功能1.状态跟踪动态地记录各种设备的状态(保留在设备控制块中)2.确定设备分配策略决定设备分配策略,确定谁、何时存取设备、使用多长时间。3.设备分配与回收作业级静态分配:作业进入系统时就进行分配,退出系统时就收回全部资源。进程级动态分配:进程需要使用某设备而提出申请时进行分配,使用完毕后立即将其收回。4.设备控制负责将用户I/O请求转换为设备能识别的I/O指令,实施设备驱动和中断处理的工作。,5,

3、三.设备独立性1.设备独立性概念(1)什么是设备独立性:所谓设备独立性是指,用户在编制程序时所使用的设备与实际使用的设备无关,也就是在用户程序中仅使用逻辑设备名。(2)逻辑设备名:逻辑设备名,是用户自己指定的设备名(或设备号),它是暂时的、可更改的。(3)物理设备名:物理设备名是系统提供的设备的标准名称,它是永久的、不可更改的。,8.1 输入/输出管理概念,6,2.设备独立性的实现(1)在高级语言中用软通道实现使用高级语言提供的指派语句,通过指派一个逻辑设备名(通道号)来定义一个设备或文件。如:fd=open(“/dev/lp”,mode);number1=write(fd,buf,count

4、1);(2)在批处理系统中,用连接说明语句来定义 如:OUTPUT1=LPT(3)在交互系统中,用指派命令来定义 如:PDP系列机上的RT11系统 ASSIGN 设备物理名 设备逻辑名,8.1 输入/输出管理概念,7,逻辑设备描述器ldd(logic-device-descriptor)是一种数据结构,进程控制块中有一个指针指向它。3.实现设备独立性的优点方便用户改善设备利用率提高系统的可扩展性和可适应性,8.1 输入/输出管理概念,Ldd包括:设备逻辑名设备物理名设备控制块dcb指针逻辑设备描述器队列勾链字,8,8.1 输入/输出管理概念,四.设备控制块 1.什么是设备控制块(DCB)系统为

5、每一台设备都配置了一个用来记录设备的硬件特性、连接和使用情况的一组数据,称为设备控制块。2.设备转换表进程的每个I/O请求都要转换成调用一个能执行I/O操作的设备例程。通过操作码检索“设备转换表”以找到相应的设备例程地址。,9,2.设备控制块的内容表8.1 设备控制块 dcb 1.设备名:是设备的系统名,即设备的物理名。2.设备属性:描述设备现行状态的一组属性3.命令转换表:转换表包含设备特定的I/O例程地址,不具备相应功能的设备在其例程地址上可以填“1”。,8.1 输入/输出管理概念,10,一.缓冲概念1.什么是缓冲缓冲是两种不同速度的设备之间传输信息时平滑传输过程的常用手段。2.缓冲器是以

6、硬件的方式来实现缓冲,容量较小,是用来暂时存放数据的一种存储装置。3.软件缓冲区用来保存在两设备之间或在设备和应用程序之间所传数据的内存区域。,8.2 缓冲技术,11,4.为什么引入缓冲(1)处理数据流的生产者与消费者间的速度差异 如:从调制解调器收到一个文件,并保存到硬盘上。(2)协调传输数据大小不一致的设备在计算机网络中用来处理消息的分段和重组。(3)应用程序的拷贝语义如:操作系统为保证系统调用write的正确语义,即应用程序要写入磁盘的数据就是write系统调用发生时的版本。方法:在系统调用返回前将应用程序缓冲区复制到内核缓冲区。,8.2 缓冲技术,12,二.常用的缓冲技术双缓冲、环形缓

7、冲、缓冲池.双缓冲在双缓冲方案下,为输入或输出分配两个缓冲区buf1、buf2。(1)输入数据时,如何利用双缓冲(2)输出数据时,如何利用双缓冲(3)缓冲区既用于输入,也用于输出数据时,如何利用双缓冲,8.2 缓冲技术,13,(1)输入、输出数据时,如何利用双缓冲,8.2 缓冲技术,14,说明使用双缓冲可以提高I/O的效率的例,sio,读一张卡片到 buf1,等待卡片输入机结束,等待打印机就绪,sio,打印 buf1的内容,sio,读一张卡片到 buf2,等待卡片输入机结束,等待打印机就绪,sio,打印 buf2的内容,读卡机、打印机可并行操作,读卡机、打印机可并行操作,8.2 缓冲技术,15

8、,一、设备分配原则1.静态分配和动态分配独占设备静态分配;共享设备动态分配2.I/O设备分配算法先请求先服务优先级最高者优先3.设备分配的安全性防止发生死锁。对独占设备一般采用静态分配,不会产生死锁。若采用动态分配,如一个进程只提出一个I/O请求,则也不会产生死锁,但如一个进程可同时操作多个外设时,就有可能产生死锁。,8.3 设备分配,16,设备分配的主要技术独享、共享、虚拟技术二.独享分配1.什么是独享设备让一个作业在整个运行期间独占使用的设备。2.什么是独享分配在一个作业执行前,将它所要使用的设备分配给它;当它结束撤离时,将分配给它的这类设备收回。三.共享分配1.什么是共享设备由多个作业、

9、进程共同使用的设备称为共享设备(磁盘)。2.什么是共享分配共享分配就是动态分配。当进程提出资源申请时,由设备管理模块进行分配,进程使用完毕后,立即归还。,8.3 设备分配,17,三.虚拟分配虚拟分配:分配虚拟设备,使用SPOOLing系统。1.SPOOL(Simultaneous Peripheral Operation On Line)ing系统,即外部设备联机同时操作实现思想:用常驻内存的进程去模拟一台外围机,从而用一台主机就可完成脱机技术中需要多台计算机完成的工作。该系统在作业执行前将作业信息通过独占设备预先输入到辅存上一个特定的区域(称为“井”)存放好,称为预输入。作业执行中,不必直接

10、启动独占设备输出数据,而只要将作业输出数据写入磁鼓或磁盘中存放,在作业执行完毕后,由操作系统来组织信息输出,称为缓输出。Spool系统利用通道和中断技术,在主机控制之下,由通道完成输入/输出工作。系统包括预输入程序、缓输入程序和预输入表、缓输出表等数据结构。,8.3 设备分配,18,8.3 设备分配,2.虚拟设备和虚拟分配通过外部设备联机操作技术后,一台设备可以和辅存中若干个存储区域相对应,所以在形式上就好像把一台输入设备(或输出设备)变成了许多虚拟的输入设备(或输出设备)。即:把一台不能共享的输入输出设备转换成了一台可以共享的缓冲输入输出设备。虚拟设备:通常把用来代替独占型设备的那部分外存空

11、间(包括有关的控制表格)称为虚拟设备。虚拟分配技术:当某进程需要与独占型设备交换信息时,Spool系统就将与该独占设备所对应的那部分磁盘、磁鼓的一部分存储空间分配给它。,19,虚拟设备,8.3 设备分配,20,3.虚拟打印功能4.SPOOLING系统的优点(1)提供虚拟设备(2)加快作业处理速度(3)外围设备同时联机操作,8.3 设备分配,21,8.4 输入/输出控制,一、I/O硬件端口(port):计算机端口是设备与计算机通信的一个连接点。总线:如果一个或多个设备使用一组共同的线,这种连接称为总线(bus)。总线是一组线和可以描述在线上传输信息的协议。控制器:OS软件和硬件设备之间接口,它接

12、收CPU的命令,并控制I/O设备进行实际的操作;控制器通常有四种寄存器:状态、控制、数据输入、数据输出寄存器;,22,二.输入/输出控制方式CPU一般通过I/O控制器与物理设备打交道。按照I/O控制器智能化程度的高低,将I/O设备的控制方式分为四类:循环测试I/O方式I/O中断方式DMA方式通道方式,8.4 输入/输出控制,23,1.循环测试I/O方式 该方式中I/O控制器是操作系统和软件和硬件设备之间的接口,它接收CPU的命令,并控制I/O设备进行实际操作。循环测试I/O工作过程。假如一个程序要从某一输入设备输入一个数据,那么将按如下步骤进行:把一个启动位为“1”的控制字写入该设备的控制状态

13、寄存器,从而启动该设备进行输入操作。反复读控制寄存器的内容,并测试其中的完成位,若为0,转,否则转。把数据缓冲区中的数据读入CPU或主存单元。优点:控制简单,无须太多硬件支持;缺点:CPU利用率低;,8.4 输入/输出控制,24,8.4 输入/输出控制,2.I/O中断方式 I/O中断方式实现了CPU与I/O设备并行工作,提高了CPU利用率。它要求在控制状态寄存器中有一位“中断允许位”:在I/O中断方式下,数据的输入按如下步骤进行:要求输入数据的进程把一个启动和中断允许位为“1”的控制字写入设备控制状态寄存器中,从而启动该设备进行物理操作。上述进程因等待输入操作的完成而进入等待状态。于是进程调度

14、程序调另一进程运行。当输入完成时,输入设备通过中断申请线向CPU发中断请求信号,通过中断进入,CPU转向该设备的中断处理程序。,25,8.4 输入/输出控制,中断处理程序首先保护被中断程序的现场,然后把输入缓冲寄存器中的输入数据转送到某一特定单元中去,以便要输入的进程使用。同时,还把等待输入完成的那个进程唤醒,最后中断处理程序恢复被中断程序的现场,并返回到被中断的进程继续执行。在以后某个时刻,进程调度程序将调度到要求输入的进程,该进程从约定的特定单元中取出做进一步处理。优点:CPU的利用率大大提高;缺点:每台设备每次输入输出都会产生中断,中断次数太多,影响CPU的有效计算时间;,26,8.4

15、输入/输出控制,3.通道方式 通道:一个独立于CPU的专管输入/输出控制的处理机,它控制设备和内存直接进行数据交换,它有自己的通道指令,这些通道指令受CPU启动,并在操作结束时向CPU发中断信号;通道也被称为“I/O处理机”。通道的三种类型:字节多路通道(多个通道程序轮流执行);选择通道(一个通道程序从头到尾执行);数组多路通道(分时方式执行几个通道程序);优点:有关I/O工作,CPU委托通道去做,使CPU基本摆脱了I/O控制工作,大大提高了CPU和外设的并行工作程度。,27,8.4 输入/输出控制,28,8.4 输入/输出控制,4.DMA方式 在外设和主存之间开辟直接的数据交换通路;DMA控

16、制器取代I/O控制器,控制外设和主存之间成批的进行数据交换,而不用CPU干预;DMA控制器中包含有:控制状态寄存器、数据缓冲寄存器、传送字节数寄存器、内存地址寄存器;CPU只在两处参与数据传输工作:数据块传送开始时发启动命令;整个数据块传输结束时发中断信号请求CPU进行中断处理;DMA控制器与CPU、主存及I/O设备这间的关系如图:,29,8.4 输入/输出控制,30,三、I/O子系统为了对不同的设备按统一的标准方式来处理,为用户建立虚拟环境,I/O子系统采用了抽象、包装与软件分层的方法。每个通用类型都可以通过一组标准函数(接口)来访问。,8.4 输入/输出控制,31,8.4 输入/输出控制,

17、1.各类设备的接口块设备接口块设备接口规定了访问磁盘驱动器和其他基本块设备所需要的各方面。一般而言设备应提供read和write命令,随机访问还提供seek命令,它们描述了块存储设备的基本特点,应用程序就不必关注这些设备的低层细节差别。主存映射接口主存映射接口不提供read和write操作,而是通过主存中的字节数组来访问磁盘存储信息。系统调用将文件映射在主存上,并返回一个字符数组的虚拟主存地址,该字符数组包含了文件的拷贝。实际数据的传输在需要时才执行。,32,8.4 输入/输出控制,字符流设备接口这类设备的基本系统调用使应用程序可get或put字符。网络套接字接口基于套接字(套接字,简单的说就

18、是通信的两方的一种约定)接口的系统调用可以让应用程序创建一个套接字,连接本地套接字和远程地址(将本地应用程序与由远程应用程序创建的套接字相连),监听要与本地套接字相连的远程应用程序。连接后可以发送和接收数据。套接字接口还提供了select函数,用来管理一组套接字。,33,2.I/O子系统功能I/O子系统使进程能与外部设备及网络进行通信,主要功能:(1)解释用户的I/O系统调用(2)设备驱动(3)中断处理设备处理程序设备处理程序是能直接控制设备运转的程序,它根据各类设备的特点和性能来编写。每一类设备有一个相应的设备处理程序,能控制同类中多台物理设备同时工作。,8.4 输入/输出控制,34,3.调

19、用I/O核心模块的方式控制设备I/O工作的核心模块通常称为设备驱动程序,该核心模块有以下两种实现方式:(1)通过设备处理进程的方式为每一类设备设置一个设备处理进程(对应的程序就是设备处理程序)该进程当有I/O请求来到时,被唤醒,进行设备驱动工作当没有I/O请求时,就睡眠I/O控制模块的接口程序:负责解释用户的I/O系统调用;转换成I/O控制模块认识的命令形式;将I/O请求发给对应设备处理进程。(2)将设备与文件一样对待将设备与文件一样对待,使用文件系统的系统调用命令进行设备的读、写。,8.4 输入/输出控制,35,四.I/O控制的例I/O接口程序(I/O过程)1.将逻辑设备转换为物理设备根据

20、I/O系统调用中给出的逻辑设备名(ldev)根据逻辑设备描述器,将逻辑设备名转换为物理设备名2.合法性检查对所需进行的操作进行合法性检查。根据 I/O系统调用中给出的操作模式mode根据DCB中命令转换表中允许的操作3.形成I/O请求块,发消息给对应的设备处理进程将请求的参数输入到I/O请求块(IORB)将I/O请求块(IORB)挂到对应的设备请求队列上,8.4 输入/输出控制,36,I/O请求接口程序的描述 算法 doio 输入:设备的逻辑名 ldev 操作类型 mode 传送数据数目 amount 传数数据地址 addr 输出:如果传送出错,则带错误码返回,否则正确返回 while(该进程

21、的逻辑设备描述器队列不空)if(与ldev相联结的物理设备找到)break;/*找到*/if(该进程的逻辑设备描述器队列为空)return(错误码);/*设备逻辑名错*/检查参数与该设备特性是否一致;if(不一致)return(错误码);/*传送参数错*/构造iorb;把iorb插入到该设备的请求队列中;唤醒因等待I/O请求块而睡眠的进程;,8.4 输入/输出控制,37,设备处理进程 process io 1:while(设备请求队列不空)取一个iorb;提取请求的详细信息;启动I/O操作;sleep(事件:I/O完成)/*I/O操作*/*等I/O完成后,进入中断处理程序,并在那里唤醒设备处理

22、进程*/if(出错)将错误信息写在该设备的dcb中;传送数据到目的地;唤醒请求此I/O操作的进程;删除iorb;sleep(事件:因无I/O请求);goto 1;,8.4 输入/输出控制,38,请求I/O的进程、I/O过程、设备处理进程、中断处理程序之间的同步关系,8.4 输入/输出控制,39,一.设备管理的基本概念 1.I/O管理的功能 2.设备独立性 定义 优点 3.设备控制块 定义 二.缓冲技术 1.什么是缓冲 2.常用的缓冲技术 3.双缓冲技术,第八章 小 结,40,三.设备分配 1.常用的设备分配技术 2.独享设备 独享分配 定义 3.共享设备 共享分配 定义 4.虚拟设备 虚拟技术 定义 四.I/O控制 1.I/O控制的主要功能 2.请求I/O的进程、I/O过程、设备处理进程、中断处理程序之间的同步关系,第八章 小 结,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号