操作系统原理第八章输入输出管理.ppt_第1页
操作系统原理第八章输入输出管理.ppt_第2页
操作系统原理第八章输入输出管理.ppt_第3页
操作系统原理第八章输入输出管理.ppt_第4页
操作系统原理第八章输入输出管理.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

第八章 输入输出管理,8.1 I/O管理概念 8.2 缓冲技术 8.3 设备分配技术 8.4 I/O控制,2,8.1 输入/输出管理概念,一、引言 设备分类 1. 存储设备:是存储信息的设备,如:磁盘、磁鼓。(以块为单位传输信息)。 2. 输入输出设备:能将信息从计算机外部输入到机内,或反之,如:键盘、显示器、打印机。 3.传输设备 负责计算机之间的信息传输,如调制调节器、网卡。 设备按传输信息的特点来分:字符设备、块设备,3,8.1 输入/输出管理概念,设备管理的设计目标 1. 提高设备利用率(关键是实现设备的并行操作) 合理分配设备 提高设备与CPU、各外部设备之间的并行性(通道和中断) 2. 方便用户使用 独立于设备:用户使用的设备与物理设备无关 建立虚拟环境 3. 设备处理的一致性 设备品种繁多、用法各异,逐一管理十分复杂; 输入输出系统应将设备的特性与处理它们的程序分开。,4,8.1 输入/输出管理概念,二、输入/输出管理功能 1. 状态跟踪 动态地记录各种设备的状态(保留在设备控制块中) 2. 确定设备分配策略 决定设备分配策略,确定谁、何时存取设备、使用多长时间。 3. 设备分配与回收 作业级静态分配:作业进入系统时就进行分配,退出系统时就收回全部资源。 进程级动态分配:进程需要使用某设备而提出申请时进行分配,使用完毕后立即将其收回。 4. 设备控制 负责将用户I/O请求转换为设备能识别的I/O指令,实施设备驱动和中断处理的工作。,5,三. 设备独立性 1. 设备独立性概念 (1) 什么是设备独立性: 所谓设备独立性是指,用户在编制程序时所使用的设备与实际使用的设备无关,也就是在用户程序中仅使用逻辑设备名。 (2) 逻辑设备名: 逻辑设备名,是用户自己指定的设备名(或设备号),它是暂时的、可更改的。 (3) 物理设备名: 物理设备名是系统提供的设备的标准名称,它是永久的、不可更改的。,8.1 输入/输出管理概念,6,2. 设备独立性的实现 (1) 在高级语言中用软通道实现 使用高级语言提供的指派语句,通过指派一个逻辑设备名(通道号)来定义一个设备或文件。 如:fd = open(“/dev/lp” ,mode); number1=write(fd,buf,count1); (2) 在批处理系统中,用连接说明语句来定义 如:OUTPUT1 = LPT (3) 在交互系统中,用指派命令来定义 如:PDP系列机上的RT11系统 ASSIGN 设备物理名 设备逻辑名,8.1 输入/输出管理概念,7,逻辑设备描述器ldd(logic-device-descriptor) 是一种数据结构,进程控制块中有一个指针指向它。 3. 实现设备独立性的优点 方便用户 改善设备利用率 提高系统的可扩展性和可适应性,8.1 输入/输出管理概念,Ldd包括: 设备逻辑名 设备物理名 设备控制块dcb指针 逻辑设备描述器队列勾链字,8,8.1 输入/输出管理概念,四. 设备控制块 1. 什么是设备控制块(DCB ) 系统为每一台设备都配置了一个用来记录设备的硬件特性、连接和使用情况的一组数据,称为设备控制块。 2.设备转换表 进程的每个I/O请求都要转换成调用一个能执行I/O操作的设备例程。通过操作码检索“设备转换表”以找到相应的设备例程地址。,9,2. 设备控制块的内容 表8.1 设备控制块 dcb 1. 设备名:是设备的系统名,即设备的物理名。 2. 设备属性:描述设备现行状态的一组属性 3. 命令转换表:转换表包含设备特定的I/O例程地址,不具备相应功能的设备在其例程地址上可以填“1”。,8.1 输入/输出管理概念,10,一. 缓冲概念 1. 什么是缓冲 缓冲是两种不同速度的设备之间传输信息时平滑传输过程的常用手段。 2. 缓冲器 是以硬件的方式来实现缓冲,容量较小,是用来暂时存放数据的一种存储装置。 3. 软件缓冲区 用来保存在两设备之间或在设备和应用程序之间所传数据的内存区域。,8.2 缓冲技术,11,4. 为什么引入缓冲 (1) 处理数据流的生产者与消费者间的速度差异 如:从调制解调器收到一个文件,并保存到硬盘上。 (2) 协调传输数据大小不一致的设备 在计算机网络中用来处理消息的分段和重组。 (3) 应用程序的拷贝语义 如:操作系统为保证系统调用write的正确语义,即应用程序要写入磁盘的数据就是write系统调用发生时的版本。 方法:在系统调用返回前将应用程序缓冲区复制到内核缓冲区。,8.2 缓冲技术,12,二. 常用的缓冲技术 双缓冲、环形缓冲、缓冲池 . 双缓冲 在双缓冲方案下,为输入或输出分配两个缓冲区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,一、设备分配原则 1. 静态分配和动态分配 独占设备静态分配;共享设备动态分配 2. I/O设备分配算法 先请求先服务 优先级最高者优先 3. 设备分配的安全性 防止发生死锁。 对独占设备一般采用静态分配,不会产生死锁。若采用动态分配,如一个进程只提出一个I/O请求,则也不会产生死锁,但如一个进程可同时操作多个外设时,就有可能产生死锁。,8.3 设备分配,16,设备分配的主要技术独享、共享、虚拟技术 二. 独享分配 1. 什么是独享设备 让一个作业在整个运行期间独占使用的设备。 2. 什么是独享分配 在一个作业执行前,将它所要使用的设备分配给它;当它结束撤离时,将分配给它的这类设备收回。 三. 共享分配 1. 什么是共享设备 由多个作业、进程共同使用的设备称为共享设备(磁盘)。 2. 什么是共享分配 共享分配就是动态分配。当进程提出资源申请时,由设备管理模块进行分配,进程使用完毕后,立即归还。,8.3 设备分配,17,三. 虚拟分配 虚拟分配:分配虚拟设备,使用SPOOLing系统。 1. SPOOL(Simultaneous Peripheral Operation On Line)ing系统,即外部设备联机同时操作 实现思想:用常驻内存的进程去模拟一台外围机,从而用一台主机就可完成脱机技术中需要多台计算机完成的工作。 该系统在作业执行前将作业信息通过独占设备预先输入到辅存上一个特定的区域(称为“井”)存放好,称为预输入。 作业执行中,不必直接启动独占设备输出数据,而只要将作业输出数据写入磁鼓或磁盘中存放,在作业执行完毕后,由操作系统来组织信息输出,称为缓输出。 Spool系统利用通道和中断技术,在主机控制之下,由通道完成输入/输出工作。系统包括预输入程序、缓输入程序和预输入表、缓输出表等数据结构。,8.3 设备分配,18,8.3 设备分配,2.虚拟设备和虚拟分配 通过外部设备联机操作技术后,一台设备可以和辅存中若干个存储区域相对应,所以在形式上就好像把一台输入设备(或输出设备)变成了许多虚拟的输入设备(或输出设备)。即:把一台不能共享的输入输出设备转换成了一台可以共享的缓冲输入输出设备。 虚拟设备:通常把用来代替独占型设备的那部分外存空间(包括有关的控制表格)称为虚拟设备。 虚拟分配技术:当某进程需要与独占型设备交换信息时,Spool系统就将与该独占设备所对应的那部分磁盘、磁鼓的一部分存储空间分配给它。,19,虚拟设备,8.3 设备分配,20,3. 虚拟打印功能 4. SPOOLING系统的优点 (1) 提供虚拟设备 (2) 加快作业处理速度 (3) 外围设备同时联机操作,8.3 设备分配,21,8.4 输入/输出控制,一、I/O硬件 端口(port):计算机端口是设备与计算机通信的一个连接点。 总线:如果一个或多个设备使用一组共同的线,这种连接称为总线(bus)。 总线是一组线和可以描述在线上传输信息的协议。 控制器:OS软件和硬件设备之间接口,它接收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”的控制字写入该设备的控制状态寄存器,从而启动该设备进行输入操作。 反复读控制寄存器的内容,并测试其中的完成位,若为0,转,否则转。 把数据缓冲区中的数据读入CPU或主存单元。 优点:控制简单,无须太多硬件支持; 缺点:CPU利用率低;,8.4 输入/输出控制,24,8.4 输入/输出控制,2. I/O中断方式 I/O中断方式实现了CPU与I/O设备并行工作,提高了CPU利用率。它要求在控制状态寄存器中有一位“中断允许位”: 在I/O中断方式下,数据的输入按如下步骤进行: 要求输入数据的进程把一个启动和中断允许位为“1”的控制字写入设备控制状态寄存器中,从而启动该设备进行物理操作。 上述进程因等待输入操作的完成而进入等待状态。于是进程调度程序调另一进程运行。 当输入完成时,输入设备通过中断申请线向CPU发中断请求信号,通过中断进入,CPU转向该设备的中断处理程序。,25,8.4 输入/输出控制,中断处理程序首先保护被中断程序的现场,然后把输入缓冲寄存器中的输入数据转送到某一特定单元中去,以便要输入的进程使用。同时,还把等待输入完成的那个进程唤醒,最后中断处理程序恢复被中断程序的现场,并返回到被中断的进程继续执行。 在以后某个时刻,进程调度程序将调度到要求输入的进程,该进程从约定的特定单元中取出做进一步处理。 优点:CPU的利用率大大提高; 缺点:每台设备每次输入输出都会产生中断,中断次数太多,影响CPU的有效计算时间;,26,8.4 输入/输出控制,3. 通道方式 通道:一个独立于CPU的专管输入/输出控制的处理机,它控制设备和内存直接进行数据交换,它有自己的通道指令,这些通道指令受CPU启动,并在操作结束时向CPU发中断信号;通道也被称为“I/O处理机”。 通道的三种类型:字节多路通道(多个通道程序轮流执行);选择通道(一个通道程序从头到尾执行);数组多路通道(分时方式执行几个通道程序); 优点:有关I/O工作,CPU委托通道去做,使CPU基本摆脱了I/O控制工作,大大提高了CPU和外设的并行工作程度。,27,8.4 输入/输出控制,28,8.4 输入/输出控制,4. DMA方式 在外设和主存之间开辟直接的数据交换通路; DMA控制器取代I/O控制器,控制外设和主存之间成批的进行数据交换,而不用CPU干预; DMA控制器中包含有:控制状态寄存器、数据缓冲寄存器、传送字节数寄存器、内存地址寄存器; CPU只在两处参与数据传输工作: 数据块传送开始时发启动命令; 整个数据块传输结束时发中断信号请求CPU进行中断处理; DMA控制器与CPU、主存及I/O设备这间的关系如图:,29,8.4 输入/输出控制,30,三、I/O子系统 为了对不同的设备按统一的标准方式来处理,为用户建立虚拟环境,I/O子系统采用了抽象、包装与软件分层的方法。每个通用类型都可以通过一组标准函数(接口)来访问。,8.4 输入/输出控制,31,8.4 输入/输出控制,1.各类设备的接口 块设备接口 块设备接口规定了访问磁盘驱动器和其他基本块设备所需要的各方面。 一般而言设备应提供read和write命令,随机访问还提供seek命令,它们描述了块存储设备的基本特点,应用程序就不必关注这些设备的低层细节差别。 主存映射接口 主存映射接口不提供read和write操作,而是通过主存中的字节数组来访问磁盘存储信息。系统调用将文件映射在主存上,并返回一个字符数组的虚拟主存地址,该字符数组包含了文件的拷贝。实际数据的传输在需要时才执行。,32,8.4 输入/输出控制,字符流设备接口 这类设备的基本系统调用使应用程序可get或put字符。 网络套接字接口 基于套接字(套接字,简单的说就是通信的两方的一种约定 )接口的系统调用可以让应用程序创建一个套接字,连接本地套接字和远程地址(将本地应用程序与由远程应用程序创建的套接字相连),监听要与本地套接字相连的远程应用程序。连接后可以发送和接收数据。 套接字接口还提供了select函数,用来管理一组套接字。,33,2. I/O子系统功能 I/O子系统使进程能与外部设备及网络进行通信,主要功能: (1) 解释用户的I/O系统调用 (2) 设备驱动 (3) 中断处理 设备处理程序 设备处理程序是能直接控制设备运转的程序,它根据各类设备的特点和性能来编写。每一类设备有一个相应的设备处理程序,能控制同类中多台物理设备同时工作。,8.4 输入/输出控制,34,3. 调用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. 将逻辑设备转换为物理设备 根据 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 (该进程的逻辑设备描述器队列不空) if (与ldev相联结的物理设备找到) brea

温馨提示

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

评论

0/150

提交评论