资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,6.2.2,输入输出层次结构,通常,操作系统将设备管理系统划分并组织成三个层次:,用户层,I/O,设备无关的,I/O,设备驱动及中断处理,用户层,I/O,设备驱动及中断处理,硬件,系统调用接口,设备无关的操作系统软件,第,1,页,/,共,25,页,用户进程,用户层,I/O,设备无关的,I/O,设备驱动及中断处理,硬件,设备管理子系统,逻辑结构图,核心态运行,第,2,页,/,共,25,页,用户程序,标准,C,库,I/O,函数,内核总控,系统调用处理总控,Write,处理,(,文件系统、,TCP/IP),磁盘控制器,/,网卡,盘,/,网卡中断处理,用户态,核心态,异步调用接口,磁盘驱动程序,/,网卡驱动,系统调用各模块关系图,系统调用接口,用户程序,第,3,页,/,共,25,页,一、用户层,I/O,这一层与设备的控制细节无关,不直接与设备打交道。,它将设备,(,或在设备上的逻辑对象)看作逻辑资源,为用户进程提供各类,I/O,函数。用户以设备标识符和一些简单的函数来使用设备,如打开、关闭、读、写等。,如,C,库中的函数,fopen();fread();fwrite();fclose(),等。,第,4,页,/,共,25,页,二、设备无关的,I/O,这一层的基本功能:执行适用于所有设备的公共,I/O,功能,并向其上层提供统一的系统调用接口。主要任务:,设备命名及与设备驱动程序的映射。在,UNIX,中,如,/dev/tty00,唯一地确定了一个,inode,数据结构,其中包含了主设备号,通过主设备号可以找到相应的设备驱动程序。,设备访问保护。,分配及释放独占型设备。,设备,I/O,数据缓冲机制。,文件系统功能、,TCP/IP,协议等,(,支持设备上的逻辑存储、通讯对象),第,5,页,/,共,25,页,三、设备驱动与中断处理,设备驱动程序,包括了所有与设备相关的代码,其功能是从与设备无关的软件中接收,I/O,的请求,排入请求队列或执行之。,中断处理,当进程进行,I/O,操作时,将其阻塞至,I/O,操作结束并发生中断。中断发生时,由中断处理程序启动请求排队的下一请求(如果有)并解除等,I/O,进程的阻塞状态,使其能够继续执行。,第,6,页,/,共,25,页,6.2.3.,缓冲技术,一、单缓冲,当用户进程发出,I/O,请求时,操作系统在主存的系统空间为该操作分配一个缓冲区,可以实现预读和滞后写。,在进程数据区与外设之间设立缓冲区可以改善进程运行速度与,I/O,传输速度之间的速差矛盾。,第,7,页,/,共,25,页,二、双缓冲,可以实现用户数据区,缓冲区之间交换数据和缓冲区,外设之间交换数据并行。,三、循环缓冲,引入系统缓冲池,采用有限缓冲区的生产者,/,消费者模型对缓冲池中的缓冲区进行循环使用。,缓冲区结合预读和滞后写技术对具有重复性及阵发性,I/O,进程提高,I/O,速度很有帮助。,第,8,页,/,共,25,页,缓冲,A,缓冲,G,缓冲,E,缓冲,C,缓冲,B,缓冲,D,缓冲,F,缓冲,H,Hash,表方式的设备缓冲队列,空闲队列头,缓冲区管理示例,第,9,页,/,共,25,页,6.2.4.,设备驱动程序,一设备驱动程序接口函数,驱动程序初始化函数,:这个函数是为了使驱动程序其它函数能被上层正常调用,而做一些针对驱动程序本身的初始化工作。如向操作系统登记该驱动程序的接口函数,该初始化函数在系统启动时或驱动程序安装入内核时执行。,驱动程序卸载函数,:是驱动程序初始化函数的逆过程,在支持驱动程序可动态加载卸载的系统中才需要。,申请设备函数,:该函数申请一个驱动程序所管理的设备,按照设备特性进行独占式占用或者分时共享式占用,如果是独占式申请成功还应该对设备做初始化工作。,释放设备函数,:是申请设备函数的逆过程。,第,10,页,/,共,25,页,I,O,操作函数,:这个函数实现对设备的,I,O,。如果对独占型设备,包含了启动,I,O,的指令,对分时共享型设备,该函数通常将,I,O,请求形成一个请求包,将其排到设备请求队列,如果请求队列空,则直接启动设备。,中断处理函数,:这个函数在设备,I,O,完成时向,CPU,发中断后被调用。该函数对,I,O,完成作善后处理,一般是找到等待刚完成,I,O,请求的阻塞进程,将其就绪,使其能进一步作后续工作。如果存在,I,O,请求队列,则启动下一个,I,O,请求。,第,11,页,/,共,25,页,5.,设备管理有关的数据结构,描述设备、控制器等部件的表格,。,系统中常常为每一个部件、每一台设备分别设置一张表格,常称为部件控制块或设备表。这类表格具体描述设备的类型、标识符、进行状态,以及当前使用者的进程标识符等。,建立同类资源的队列,。,系统为了方便对,I/O,设备的分配管理,通常在设备表的基础上通过指针将相同物理属性的设备联成队列(称设备队列)。,面向进程,I/O,请求的动态数据结构,。,每当进程发出块,I/O,请求时,系统建立一张表格(称,I/O,请求包)。将此次,I/O,请求的参数填入表中,同时也将该,I/O,有关的系统缓冲区地址等信息填入表中。,I/O,请求包随着,I/O,的完成而删除。,建立,I/O,队列,。,如请求包队列,。,第,12,页,/,共,25,页,设备表,设备表,设备表,请求包,请求包,设备管理有关数据结构关系,第,13,页,/,共,25,页,6,3,存储设备,6.3.1.,常见存储外设,磁盘,数据组织,(,一个磁盘有多个盘面组成,盘面有同心圆磁道组成,磁道由扇区组成,扇区为基本传输单位),物理特性,(单磁头,多磁头),第,14,页,/,共,25,页,存取装置,主轴,动臂,盘片,柱面,磁道,读写头,多磁头活动头盘示意图,第,15,页,/,共,25,页,光学存储设备,CD-ROM,CD-R,CD-RW,第,16,页,/,共,25,页,6.3.2.,磁盘调度,磁盘地址:设备号,+,柱面号,+,盘面号,+,扇区号,读写一次磁盘信息所需的时间可分解为:,寻找时间、延迟时间、传输时间,为提高磁盘传输效率,软件应着重考虑减,少寻找时间和延迟时间,第,17,页,/,共,25,页,一、减少寻找时间的方法,减少寻找时间是提高磁盘传输效率的关键。因为“寻找时间”在几十毫秒时间量级。,操作系统磁盘驱动程序可以通过合理调度多道进程对磁盘的访问请求顺序,达到减少磁盘平均服务时间的目的。,第,18,页,/,共,25,页,调度策略,:,FCFS,(,First Come First Served,),SSTF,(,Shortest Seek Time First,),SCAN,调度,(,电梯调度法),C-SCAN,调度(一个方向响应请求),LOOK,调度、,C-LOOK,调度(是,scan,和,c-scan,的改进),第,19,页,/,共,25,页,二、减少延迟时间的方法,一般常将盘面扇区交替编号;,磁盘迭中不同盘面错开命名。,0,4,1,5,7,3,6,2,7,0,4,1,3,6,2,5,3,7,0,4,6,2,5,1,6,3,7,0,2,5,1,4,第,20,页,/,共,25,页,6.3.3.,盘阵,通过冗余提高可靠性:,如建立镜像盘。,通过并行性提高性能:,如将原来在一个物理盘连续的数据分条分布到多盘。,a,A,A,为,a,的备份,abcdefghijklmnopqrst,aeimq,bfjnr,cgkos,dhlpt,将数据分布到多个盘中,第,21,页,/,共,25,页,RAID,级别,RAID,级别,0,:指用到块级条带化的磁盘阵列。,RAID,级别,1,:指磁盘镜像。,冗余,(a)RAID 0:,无冗余条带化,(b)RAID1:,镜像磁盘,C,第,22,页,/,共,25,页,RAID,级别,0+1,:是指,RAID,级别,0,和,1,的结合。,RAID0,提供性能,,RAID1,提供可靠性。它通常用于性能和可靠性都很重要的环境中。,RAID,级别,1+0,,其中磁盘被镜像成对,然后最后所得到的镜像对被条带化。这种,RAID,比起,RAID0+1,有理论上的优势。例如,如果在,RAID0+1,中单独一个磁盘失效,其他盘上的对应条带都不可访问。对于,RAID1+0,中的一个磁盘失效,这个单独的磁盘不可用,但它的镜像盘仍然可用。,第,23,页,/,共,25,页,RAID,级别,2,:,RAID,级别,2,也叫做存储类型校验码(,ECC,)结构。单个位的错误被存储器系统检测出来。错误校验方案存储两个或更多额外的位,可在单个位被破坏时重建数据。,RAID,级别,3,:称为,bit-interleaved,奇偶校验结构,在级别,2,上进行了改善,磁盘控制器可以检测扇区是否被正确读,因此一个单独的奇偶校验位可用来进行错误校验,也可以用于检测。,RAID,级别,4,:称为,block-interleaved,奇偶校验结构,运用块级条带化,像在,RAID0,中一样,此外,对于,N,个磁盘上的对应块,在另外单独的磁盘上保存奇偶校验块。,第,24,页,/,共,25,页,RAID,级别,5,:称为,block-interleaved,分布式奇偶校验,与级别,4,不同在于,把数据和奇偶校验分布到所有的,N+1,个磁盘上,而不是把数据存储在,N,个磁盘上,把奇偶校验值存储在另一个磁盘上。,RAID5,避免了在,RAID4,中可能出现的过度使用单独一个奇偶校验磁盘的情况。,RAID,级别,6,:,RAID,级别,6,,也叫做,P+Q,冗余模式,很像,RAID,级别,5,,但存储了额外的冗余信息来防止多块磁盘失效。这里不用奇偶校验,而是用到错误校验码,例如,Reed-Solomon,码。,第,25,页,/,共,25,页,
展开阅读全文