I/O设备管理总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenhaiming123/article/details/87560022

一、前言
每一个I/O设备均连接到I/O总线上,与pc进行数据传输。所以衍生出I/O接口的概念,逐渐产生了一门技术“I/O接口技术”。
I/O接口电路位于cpu和外设之间(复杂的外设需要有一个设备控制器),外设通过I/O接口把信息传送给微处理器进行处理,微处理器将处理完的信息通过I/O接口传给外设。
一个典型的I/O接口应包含:端口,地址译码,总线驱动,控制逻辑。
在这里插入图片描述
I/O端口属于cpu可以直接访问的寄存器,包括状态寄存器、数据寄存器、控制寄存器。
地址译码属于对I/O总线的地址进行译码选中I/O端口。
总线驱动是在I/O端口和I/O总线之间的一个“三态门”,实现cpu和I/O接口之间的“浮空”和“联通”。
控制逻辑是接收控制端口的信息对接口工作进行控制。

I/O总线通过总线驱动(三态),连接到I/O port,寄存器组,通过I/O接口解读信号,发送给设备控制器进行进一步解释,转化为适当的电信号,控制外设相应的的操作。
反向操作原理相同。
I/O接口(I/O interface)分为专用的接口和通用的接口。
专用I/O接口:专门用于一个特定的硬件设备。例如:图形接口,网络接口(与网卡中的控制器封装在一起,可以接受和发送网络报文)。
通用的I/O接口,用来连接多个不同的硬件设备。例如:并口(打印机),串口(UART)、scsi接口,通用串行总线(USB)。
复杂的设备可能需要一个设备控制器(devicecontroller)来驱动。控制器的两个重要的作用参考understanding linux kernel中的文字。
比较简单的设备,如中断控制器,定时器等不需要对I/O接口的高级指令进行二次解析和电平的转换,所以不需要设备控制器。
I/o设备一般分为字符设备和块设备。
二、资料总结
I/O设备无关性:用户在编制程序时,应不直接使用实际的设备名而使用逻辑设备名。这样,有利于解决设备的故障和增加设备分配的灵活性。

虚拟设备:通过虚拟技术将一台独占设备改造成能被多个进程共享的设备,虚拟设备提高了设备的利用率。

缓冲技术:CPU与设备之间、设备与设备之间交换信息时,需要利用缓冲区来缓解速度不匹配的矛盾。

SPOOLing:为了克服独占设备的缺点,操作系统提供了联机的外部设备同时在线操作的功能,称为SPOOLing(Simultaneous Peripheral OperationsOnLine)技术。SPOOLing也称作假脱机操作。SPOOLing技术是在多个进程并发系统中改造独占设备的一种方法。

SPOOLing值班进程:SPOOLing值班进程即输入值班进程SPi和输出值班进程SPo。

输入值班进程SPi模拟SPOOLing输入时的外围控制机的功能。控制输入设备经输入缓冲区把用户的数据传送到备用存储器的输入井中,当用户进程需要输入数据时,直接将输入井中预存的输入数据读入内存,提供给用户进程使用。

输出值班进程SPo模拟SPOOLing输出时的外围控制机的功能。把用户进程的输出数据传送到备用存储器的输出井中,形成输出请求队列。控制输出井中的数据传送到低速的输出设备。

磁盘格式化:在磁盘存储数据之前,磁盘必须划分成磁盘控制器可以读写的扇区,这个划分过程就是低级格式化,低级格式化也叫物理格式化。低级格式化为磁盘的每个扇区填写一个特殊的数据结构,这个特殊的数据结构包含头部字段、数据字段(数据大小一般是512字节)和尾部字段。

电梯算法:扫描(SCAN)算法也叫电梯算法。具体做法:当设备无访问请求时,磁头不动;当有访问请求时,磁头按一个方向移动,在移动过程中对遇到的访问请求进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描。否则改变移动方向,并为经过的访问请求服务,如此反复。

寻道时间:这是指把磁头移动到指定磁道上所经历的时间。

扫描二维码关注公众号,回复: 5577328 查看本文章

RAID:由于冗余信息可以存储在多个磁盘上,因此这种组织结构潜在地提高了数据存储的可靠性。这样,一个磁盘的损坏不会导致所有数据的丢失,这种磁盘组织技术通称为廉价冗余磁盘阵列(RAID),通常用于提高系统的性能和可靠性,RAID分为6级。

1.I/O设备管理的目标和功能是什么?

⑴缓冲管理:CPU与设备之间、设备与设备之间交换信息时,需要利用缓冲区来缓解速度不匹配的矛盾,提高CPU与设备之间、设备与设备之间操作的并行程度。

⑵设备分配:系统根据进程所请求的设备,按分配算法对设备和设备相应的控制器和通道进行分配,建立从设备到内存之间传输信息的通路。在进程的I/O完成后,系统应及时回收设备,以便重新分配给其他进程使用。将未获得所需设备的进程放进相应设备的等待队列中。

⑶设备驱动:逻辑设备名转换成设备的物理地址,启动指定的I/O设备,完成程序规定的I/O操作,并对由设备发来的中断请求进行及时响应,根据中断类型进行相应的处理。

⑷设备无关性:用户在编制程序时,不直接使用实际的设备名而使用逻辑设备名。有利于解决设备的故障和增加设备分配的灵活性。

⑸虚拟设备:一次仅允许一个进程使用的设备称为独占设备。独占设备不仅降低了系统的设备利用率,而且可能产生死锁。虚拟设备能被多个进程共享,提高了设备的利用率,并且防止了死锁。关于虚拟设备的实现以后章节将详细讨论。

2.I/O控制方式有哪几种?试比较它们的优缺点。

有四种I/O控制方式,即程序I/O控制方式、中断驱动I/O控制方式、直接存储器访问DMA控制方式及I/O通道控制方式。

程序直接控制方式的工作过程非常简单,但在循环测试中浪费了大量的CPU处理时间,所以CPU的利用率相当低。

用中断方式交换数据时,每处理一次I/O数据交换,都会耗去一定的CPU处理时间,为减少中断对CPU造成的负担,对于一些高速的外围设备,以及成组交换数据的情形来说,例如磁盘驱动器,仍然显得速度太慢。可以将一部分I/O任务交给一个的专用DMA控制器。

DMA方式一般用于高速传送成组的数据。其优缺点如下:

优点:操作均由硬件电路实现,传输速度快,CPU仅在初始化和结束时参与,不干预数据传送,可以减少大批量数据传输时CPU的开销。CPU与外设并行工作,效率高。

缺点:DMA方式也有一定的局限性,这是因为DMA方式在初始化和结束时仍由CPU控制,DMA方式周期挪用内存总线,CPU和DMA交替访问内存,通过硬件线路分时地控制这两者对总线的使用权,使得CPU计算效率下降。

3.缓冲区的种类有哪些?各有什么特点?

操作系统提供以下几种形式的缓冲区,即单缓冲、双缓冲、循环缓冲和缓冲池。其中单缓冲、双缓冲和循环缓冲为专用缓冲,缓冲池为公用缓冲。

单缓冲是操作系统提供的最简单的缓冲区形式,单缓冲适用于数据的到达率与离去率相差很大的情况。

比单缓冲都有所提高。两个缓冲区交替使用,使CPU与I/O设备并行性进一步提高。如果数据的到达率和离去率相差不太大时,利用双缓冲技术效果非常好。

4.什么是字节多路通道?什么是数组选择通道和数组多路通道?

⑴字节多路通道

字节多路通道是一种简单的共享通道,适用于连接慢速的字符设备,如打印机、终端等设备。字节多路通道在时间片分时的基础上为多台低速和中速设备服务,它的主要特点是:各设备与通道之间的数据传送是以字节为单位交替进行的,各设备轮流占用一个很短的时间片,不同的设备在各自的时间片内经过通道执行各自的数据传送操作。

⑵选择通道

选择通道是一种高速通道,适用于连接高速I/O设备,如磁盘、磁带等,信息以数据块为单位高速传输。在物理上它可以连接多个设备,但是这些设备不能同时工作。在某一段时间内,通道只能选择一个设备进行工作,即使暂时出现空闲,也不允许其他设备使用,直到该设备传送完成后才让出通道。选择通道的优点是以数据块为单位进行传输,传输率高,缺点是通道利用率低。

⑶数组多路通道

数组多路通道是对选择通道的一种改进,综合了字节多路通道分时工作和选择通道传送速率高的特点。适用于连接高速I/O设备,如磁盘、磁带等。数组多路通道的工作原理如下:当某设备进行数据传送时,通道只为该设备服务;当设备在执行寻址等控制性动作时,通道暂时断开与这个设备的连接,挂起该设备的通道程序,激活其他设备的服务,执行其他设备的通道程序。其优点是同选择通道一样,以数据块为单位进行传输,传输率高。同时又具有多路并行操作的能力,通道利用率高,缺点是控制复杂。

5.试说明推动I/O控制发展的主要因素是什么?

推动I/O控制发展的主要动力在于尽量减少主机对I/O控制的干预,把主机从繁杂的I/O控制事务中解脱出来,以有更多的时间和精力去完成其数据处理任务。同时,中断机制在计算机系统中的引入、DMA控制器的出现和通道研制的成功使I/O控制的发展具备了技术支持和成为可能。

6.引入缓冲的主要原因是什么?

引入缓冲的主要原因是:

⑴改善CPU与I/O设备之间速度不匹配和负荷不均衡的矛盾。

⑵减少对CPU的中断频率,放宽对中断响应时间的限制。

⑶以空间换取时间,提高CPU和I/O设备之间的并行性。

⑷在设备使用不均衡时缓冲区起到平滑作用。

7.为何要引入I/O设备无关性?如何实现I/O设备的无关性?

在现代操作系统中,为了提高系统的可适应性和可扩展性,都毫无例外地实现了设备独立性,也即设备无关性。其基本含义是,应用程序独立于具体使用的物理设备,即应用程序以逻辑设备名称来请求使用某类设备。进一步说,在实现了设备独立性的功能后,可带来两方面的好处:(1)设备分配时的灵活性;(2)易于实现I/O重定向(指用于I/O操作的设备可以更换即重定向,而不必改变应用程序)。

为了实现设备的独立性,应引入逻辑设备和物理设备两个概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统执行时,是使用物理设备名称。鉴于驱动程序是一个与硬件(或设备)紧密相关的软件,必须在驱动程序之上设置一层软件,称为设备独立性软件,以执行所有设备的公有操作、完成逻辑设备名到物理设备名的转换(为此应设置一张逻辑设备表)并向用户层(或文件层)软件提供统一接口,从而实现设备的独立性。

8.何谓虚拟设备?实现虚拟设备所依赖的关键技术是什么?

以大容量存储器为支持,通过虚拟技术将一台独占设备改造成能被多个进程共享的设备,以提高设备的利用率。这种经过虚拟技术改造后的设备,是一种逻辑上的,概念上的设备,称之为虚拟设备。

虚拟设备所依赖的关键技术是利用备用存储器的空间,模拟独占设备的功能,把一台低速物理独占设备改造成为多台虚拟的同类设备。

9.试说明SPOOLing系统的组成和原理?

SPOOLing系统的组成

⑴输入井和输出井

输入井用于收容I/O设备的输入数据,当SPOOLing输入时为用户进程提供输入数据。

输出井用于收容用户进程的输出数据,当SPOOLing输出时为输出设备提供输出数据。

⑵SPOOLing值班进程

SPOOLing值班进程即输入值班进程SPi和输出值班进程SPo。

输入值班进程SPi模拟SPOOLing输入时的外围控制机的功能。控制输入设备经输入缓冲区把用户的数据传送到备用存储器的输入井中,当用户进程需要输入数据时,直接将输入井中预存的输入数据读入内存,提供给用户进程使用。

输出值班进程SPo模拟SPOOLing输出时的外围控制机的功能。把用户进程的输出数据传送到备用存储器的输出井中,形成输出请求队列。控制输出井中的数据传送到低速的输出设备。

⑶创建SPOOLing目录

创建SPOOLing目录,登记SPOOLing数据文件,SPOOLing目录里的输入请求文件和输出请求文件分别存放在输入井和输出井中。

图6-17 SPOOLing系统原理图

10.描述两种适合使用阻塞I/O的情况和适合使用非阻塞I/O的情况?为什么不能只实现非阻塞I/O?

系统调用接口有阻塞I/O、非阻塞I/O和异步I/O等形式。当应用程序发出一个阻塞系统调用时,应用程序的执行就被中止。应用程序将会从操作系统的运行队列移到等待队列中去。在系统调用完成后,应用程序就移回到运行队列,在适合的时候继续执行并能收到通过系统调用返回的值。大多数应用程序使用阻塞系统调用,这是因为阻塞应用代码比非阻塞应用代码更容易理解。有的应用程序需要使用非阻塞I/O。如一个视频应用程序,用来从磁盘文件上读取帧同时解压缩并在显示器上显示输出。

除了非阻塞系统调用外,还有异步系统调用。异步系统调用不必等待I/O完成就可立即返回,应用程序继续执行其代码。在将来I/O完成时可以通知应用程序,通知方式可以是设置应用程序地址空间内的某个变量,或通过触发信号或软件中断,或应用程序执行流程之外的某个回调函数。非阻塞与异步系统调用的差别是非阻塞read调用会马上返回,其所读取的数据可以等于或少于所要求的,或为零。异步read调用所要求的传输应完整地执行,其具体执行可以是将来某个特定时间。

11.试说明I/O设备驱动程序应完成哪些功能?

设备驱动程序主要有以下四个方面的处理工作:

⑴向有关的I/O设备控制器发出控制命令,并且监督它们的正确执行,进行必要的错误处理。

⑵对各种可能的有关设备排队、挂起、唤醒等操作进行处理。

⑶执行确定的缓冲区策略。

⑷进行一些特殊的处理,如代码转换。它们均依赖于设备的,所以不适合放在高层次的软件中处理。

12.磁盘访问时间由哪几部分组成?每部分时间应如何计算

磁盘访问时间

⑴寻道时间Ts。这是指把磁头移动到指定磁道上所经历的时间。

⑵旋转延迟时间Tτ。这是指定扇区移动到磁头下面所经历的时间。对于硬盘,典型的旋转速度大多为7200r/min,每转需时8.3ms,平均旋转延迟时间Tτ为4.15ms。

⑶传输时间Tt。这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。

访问时间较大权份是寻道时间和旋转延迟时间。

13.目前常用的磁盘调度算法有哪几种?每种算法优先考虑的问题是什么?

①先来先服务FCFS。该算法的优点是公平、简单。其缺点是效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利。

②最短寻道时间优先SSTF。该算法的优点是改善了磁盘平均服务时间。其缺点是存在饥饿现象。

③SCAN算法可防止老进程出现饥饿现象,扫描(SCAN)算法也叫电梯算法。其克服了最短寻道优先的缺点,既考虑了距离,同时又考虑了方向。可能出现磁臂停留在某处不动的情况。

④N-Step-SCAN调度算法。这样就可避免出现粘着现象。

⑤FSCAN算法实质上是N步SCAN算法的简化,即FSCAN只将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理。在扫描期间,将新出现的所有请求磁盘I/O的进程,放入另一个等待处理的请求队列。这样,所有的新请求都将被推迟到下一次扫描时处理。

14.为什么要引入磁盘高速缓冲?何谓磁盘高速缓冲?

15.为什么必须进行磁盘格式化?

在磁盘存储数据之前,磁盘必须划分成磁盘控制器可以读写的扇区,这个划分过程就是低级格式化,低级格式化也叫物理格式化。低级格式化为磁盘的每个扇区填写一个特殊的数据结构,这个特殊的数据结构包含头部字段、数据字段(数据大小一般是512字节)和尾部字段。

16.什么是逻辑设备?什么是物理设备?如何实现从逻辑设备到物理设备的转换?

物理设备是实际存在的设备。

逻辑设备是依靠物理设备存在的,没有物理设备不可能存在逻辑设备。利用虚拟设备技术多个进程在同时使用一台独立设备,而对每一个进程而言,它们都认为自己是独占了一个设备。当然,该设备只是逻辑上的设备。SPOOLing系统可以实现将独占设备变换为若干台对应的逻辑设备的功能

17.说明I/O软件的层次结构及各层完成的功能?

I/O软件包括I/O设备驱动软件和设备无关软件。设计I/O软件的一个最关键的目标是设备无关性,I/O设备管理软件采用分层构造,每一层的软件都有自己独立的功能,最低层软件与硬件的细节密切相关,并对高层软件隐藏了硬件的具体特性,I/O软件除了直接与设备打交道的低层软件之外,其他部分的软件并不依赖于硬件。

18.廉价磁盘冗余阵列是如何提高对磁盘的访问速度和可靠性的?

廉价磁盘冗余阵列RAID通过利用一台磁盘阵列控制器来统一管理和控制一组磁盘驱动器,从而组成一个高度可靠的、快速的大容量磁盘系统。为了提高对磁盘的访问速度,其采用了并行交叉存取技术。具体而言,在该系统中,有多台磁盘驱动器,系统将每一盘块中的数据分为若干个盘块数据,并把每一个子盘块的数据分别存储到各个不同的磁盘中的相同位置。当要将一个盘块中的数据传送到内存时,采取并行传输的方式,将各个盘块中的子盘块数据同时向内存中传输,从而使传输时间大大减少。进一步说,RAID分为0~7级,这里主要介绍以下六级:

(1)RAID 0级仅提供并行交叉存取,虽能有效提高磁盘的I/O速度,但无冗余校验功能,致使磁盘系统的可靠性不好。

(2)RAID 1级具有磁盘镜像功能,可利用并行读、写特性,将数据分块并行同时写入主盘和镜像盘,故比传统的镜像盘速度快,但它的磁盘容量的利用率只有50%。

(3)RAID 3级具有并行传输功能,它利用一台奇偶校验盘来完成容错功能,同磁盘镜像相比,它减少了所需要的冗余磁盘数,常用于科学计算和图像处理。

(4)RAID 5级具有独立传送功能,每个驱动器都有各自独立的数据通道,独立地进行读写且无专门的校验盘,用来进行纠错的校验信息,是以螺旋方式散布在所有数据盘上,常用于I/O较频繁的事务处理。

(5)RAID 6级的阵列中,设置了一个专用的、可快速访问的异步校验盘,该盘具有独立的数据访问通路,具有比RAID 3 和RAID 5更好的性能。

(6)RAID 7级是对RAID6级的改进,在该阵列中的所有磁盘都具有较高的传输速度、有着优异的性能,是目前最高档次的磁盘阵列。

猜你喜欢

转载自blog.csdn.net/chenhaiming123/article/details/87560022