《操作系统》PPT电子课件教案-第五章 设备管理.ppt_第1页
《操作系统》PPT电子课件教案-第五章 设备管理.ppt_第2页
《操作系统》PPT电子课件教案-第五章 设备管理.ppt_第3页
《操作系统》PPT电子课件教案-第五章 设备管理.ppt_第4页
《操作系统》PPT电子课件教案-第五章 设备管理.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

第五章 设 备 管 理,1 i/o系统硬件原理 2 i/o系统的任务与功能 3 基本数据结构 4 i/o缓冲区及其管理 5 设备分配 6 spooling系统 7 设备驱动 8 磁盘的调度与驱动, 系统硬件原理,. 设备分类,()外部存贮器 简称外存,作为内存的辅助存贮器,外存容量要远大于内存,它是计算机用来保存信息的装置,所有需要暂时或永久保存的系统和用户信息都可存贮在外存中。这类设备主要有磁盘和磁带,由于存贮在外存的存贮 介质(磁盘片或磁带卷)上的信息在物理上都是以定长的字符块形式组织的,且以字符块为单位进行存取的,因此也称这类设备为面向字符块的设备或简称 块设备。一个字符块的大小通常是在至个字符之间,每一块都 有自己的地址,设备支持查找寻址操作。块设备的基本特性是:程序可以读写存贮介质上的任何一块。,()字符输入输出设备 字符输入设备用来接受来自计算机外部环境的信息,例如键盘、纸带或卡片输入机、图形输入仪、鼠标器、转换器等。字符输出设备则是用来将计算机内的信息送向计算机外部环境,例如显示器、打印机、纸带或卡片输出机、绘图仪、转换器等。由于这类设备都是以字符为单位进行连续字符流传输的,它们不支持任何块结构,也不可寻址及支持任何查找操作,故常把这类设备称为面向字符的设备或简称字符设备。,. 输入输出方式,. 通道结构,图- 通道结构的计算机硬件组织,下面是通道结构中的三级控制的大致工作过程: ()当需要从或向设备传输数据时,首先在内存组织通道程序,并将该程序的起始地址放入一个称为通道地址字()的固定内存单元中。然后执行“启动”指令,若此时该通道可用,则启动成功,可转去执行其它的任务或继续执行原来的程序。,()通道被启动后,根据访问通道程序,逐条执行,向控制器发出操作命令,启动控制器完成实际操作。当执行完通道程序时,通道取出结果状态和设备状态送指定寄存器,并向发出中断信号,通告此次任务的正常或异常完成情况,同时自行停止。 ()控制器执行操作命令,控制设备进行数据传输。它启动设备读入数据经通道送往指定的内存区,或将指定内存区中的数据经通道送设备输出。,. 总线结构,图- 总线结构的计算机硬件组织,()中断处理方式 这是一种由直接干预的方式,一般用于字符设备。启动控制器执行操作命令,控制器控制设备操作,将设备读入的数据经总线送入累加器中,或将累加器中的数据经总线送设备输出。每当传输完一个字符,控制器就向发一中断信号,每执行完一条指令后便查询是否有中断请求,若有则先保护现场, 然后从控制器寄存器中读取结果状态和设备状态, 决定是否继续下一字符的传输。 由于每交换一个字符,就要响应并处理一次中断, 故这种方式对于一次需要交换大量数据的情况就不适应了。这种方式也称字符传输方式。,()方式 对于块设备多采用直接内存访问方式( ),亦称块传输方式。采用“窃取”总线控制权的方法,它要求暂停使用若干总线周期,由控制 器占用总线来进行数据块交换, 在数据块交换期间, 不产生中断,不需要干预,在设备与内存之间通过总线进行直接数据交换,只当一数据块传输完之后,控制器才归还总线,向发出中断信号。在启动交换时,必须向控制器提供存放数据块的内存区地址以及数据块长度(即传输字节数)。控制器执行输入操作时,将从块设备读入的数据经总线送入指定内存区,直至长度计数值为,输出路线则相反。,图- 方式,2 i/o系统的任务与功能,系统的基本目标是:向用户提供使用设备的方便接口以及充分发挥设备的利用率。 . 隐蔽设备的物理特性 . 提供独立于设备的统一接口 对于多数系统来说,它们有如下的一般格式: (,); (,); 其中:参数logname为设备的逻辑名;addr是所传输信息在内存的 源目的地址;size是要求传输的字节数。,. 设备的分配 在多道程序系统中,用户进程竞争使用有限的设备资源。按设备的使用方式,设备有独享设备和共享设备之分。一台独享设备在一进程使用期间为该进程所独占,其它进程不得插入进行交替使用。 . 出错处理 出错处理是系统的另一重要任务。总的说来,错误应尽可能在硬件层或最接近硬件的软件部分处理。如果控制器或通道能够处理则自行处理,否则由设备驱动程序处理。,图- 系统层次结构,下面是这三层软件的基本组成及功能。 .中断处理程序 系统为每类设备设置一个中断处理程序,它们的入口地址被存放在内存的固定单元中, 称为中断向量。 当某台设备完成一次操作时,发出中断信号,接受中断信号,暂停现行进程的执行,根据中断向量转到相应的中断处理程序执行。中断处理程序的基本工作包括:保留现行进程的执行现场;通知等待该操作完成的进程;最终转入进程调度程序进行重新调度。,.设备驱动程序,()接受请求,对它进行从抽象到物理的转换,构造出相应的操作命令。 ()把构造好的程序的首地址送入通道地址字(),或把操作命令送入控制器的寄存器,启动通道或控制器执行。 ()收集设备完成后的结果状态信息(正常或非正常的),把它们返回给调用者。 ()处理某些可恢复性错误。,在不同的系统中,设备驱动程序的运行方式有所不同,大体上可分为四种: 整个系统仅建立一个设备驱动进程,统一负责所有设备的驱动工作。或者为块设备和字符设备各建立一个设备驱动进程,分别负责所有块设备和所有字符设备的驱动工作。 为每一类设备建立一个设备驱动进程,它负责该设备类型中各台设备的驱动工作。 为每台设备建立一个设备驱动进程,它们分别负责专门设备的驱动工作。同类设备的各驱动进程共享该类设备的设备驱动程序。 每个设备驱动程序都作为一个过程被调用者所调用。,. 独立于设备的服务软件,()接受用户进程使用系统调用命令发来的请求。 ()负责独享设备的分配和释放。 ()对于块设备,负责外存空间的分配。 ()管理i/o缓冲,负责缓冲区与用户内存区之间的数据传输。 ()实现逻辑设备到物理设备以及设备驱动程序之间的映射。 ()启动设备驱动程序完成任务。 ()接受设备驱动程序的回答,并向用户进程回送i/o请求的完成情况。 ()负责必要的出错处理。, 基本数据结构,.系统设备表 devtype 设备类型标识符。 devns 该类设备中各设备的台号(驱动器号)及其相应设备控制块的指针。 devdriver 设备驱动进程标识符。 devsw 设备管理子程序开关,包含了该类设备的各种专门管理子程序的入口,例如:open(打开)、close(关闭)、read(读)、write(写)。由于各类设备的物理特性和传输方式不同,故关于它们的读、写、打开、关闭等操作的处理是有差异的。,. 设备控制块 设备控制块包括:驱动器控制块( ),也称设备控制块,控制器控制块( ),通道控制块( )三种,根据不同的硬件系统和设备管理方法, 可设置一种或二种或三种, 控制块所含内容也因此而有差异。 是每个系统必须设置的控制块,系统为每台设备设置一个,它记录了设备的状态、特性、队列指针等有关信息。例如:, 设备状态标志,包括忙闲、好坏、连接、分配等标志。连接标志指示该设备是否与系统接上并通电打开。对于独享设备,分配标志指示该设备是否已分配给某个进程。 设备特性,如传输波特率、特殊字符集、字符奇偶校验方式等。 相连的控制器标识或入口。 该设备使用的内存缓冲区队列指针,根据不同的缓存管理方法,可设置一个或多个这类指针。 等待该设备处理的请求块()队列指针 ,本指针指出队首。, 当前正在处理或刚处理完的指针。 一个控制器可连接一台设备或多台同类设备,对于后一种情况,可为一个控制器设置一个,用以描述该控制器的有关信息。例如: 控制器状态标志。 控制器入口。 等待使用本控制器的那些设备的标识符或相应的的指针。 在采用通道结构的系统中,还可考虑设置,用以描述通道的有关信息 。例如: 通道状态标志。 . chentry 通道入口。 wcols 等待使用本通道的控制器标识符或相应ccb的指针。,. 活动文件控制块表,系统在内存设置一个afcbl(active file control block list)。文件控制块包含了一个文件的说明和控制信息,是系统管理文件的主要数据结构之一,每个文件都有一个。一个正在使用的文件是活动文件,活动文件的被装入。设备作为特别文件,同样也有,但比较简单,它主要 包含两个数据项:设备类型标识符devtype和设备台号devid。devtype被用来检索sdt,再用devid可检索到相应的。,. 请求块 ioqb(i/o quest block)是描述一个特定i/o请求的数据结构,由逻辑系统构造并传递给设备驱动程序执行。一般说来,ioqb可包含如下数据项: 请求的操作代码,如“读”、“写”。 设备台号或相应的指针。 缓冲区或缓冲队列指针。 传输字节数。 请求进程给定的内存数据区地址。 请求进程的标识符。 发送进程的标识符。 队列指针。 该请求块的空闲标志。, 缓冲区及其管理,. 缓冲区的设置,缓冲区的使用方式 从使用方式上说,可分为专用缓冲区和公用缓冲区两类。专用缓冲区是为某台设备设置的缓冲区,占用固定的内存空间。 公用缓冲区是为所有设备设置的缓冲区,为各设备所共享,这不仅可节省缓冲区的总量,而且显著提高了缓冲区的利用率。,缓冲区组织,图5-5 单、双缓冲区,. 缓冲区首部 首部包含如下数据项: bufflag 状态标志,表示该缓冲区的忙闲和读写状态。 bufaddr 缓冲区地址。 offset 传输数据在缓冲区内的位移量。 bytes 传输字节数。 blkno 物理块号,指示区中数据取自或存入块设备中的那个物理块。 blkaddr 物理块地址。 devbufp 设备缓冲队列指针。 iobufp i/o缓冲队列或空闲缓冲队列指针。,缓冲队列 ()空闲队列(free队列):系统初始时,池中的所有缓冲区都处于free队列,由专用指针free指向队首,各缓冲区由首部中的指针iobufp连接。 ()设备缓冲队列(dev队列):每台块设备都可拥有一个供其使用的dev队列,并由其dcb中的缓冲队列指针指出队首。 一缓冲区一旦分配给某台设备, 便加入到相应的dev队列中。dev队列中的各缓冲区由首部中的指针devbuf连接。 ()i/o缓冲队列(i/o队列):某dev队列中若干正在使用的缓冲区构成相应设备的i/o队列,队列中的各缓冲区通过首部中的指针iobufp连接。,图- 三种缓冲队列,. 缓冲区的分配与释放,当一进程需要访问某台块设备时,系统先为该设备分配缓冲区,这由缓冲区分配程序实现。例如,调用格式为: (,) 其中:参数dcbp为指定设备的dcb指针;参数blkno是需访问的物理块号;则为操作要求(读或写)。该程序的返回值为所获缓冲区的首部指针bhp。,()缓冲区的分配对象不是请求i/o的进程,而是完成i.o的设备,这有利于用少量的缓冲区为更多的进程服务。 ()利用一缓冲区可同时处于dev队列和free队列,以及每当释放一缓冲区时总是将其加入free队尾,而每当需要分配一个缓冲区时总是摘取free队列中的第一个缓冲区的策略,实际上实现了lru淘汰算法,使得每台设备能保持拥有一定数量的缓冲区,并使刚使用结束的缓冲区尽可能长地保 留在dev队列中。 ()上述两个特点的结果,使得一缓冲区的读入内容可被不同进程多次使用,从而减少了启动设备传输的次数,大大节省了i/o处理时间。, 设 备 分 配,独享设备的分配可归纳为静态和动态两种方式: ()静态分配 用户作业在被投入主机运行之前进行的分配。 ()动态分配 多数独享设备均采用动态分配方式。进程在运行过程中,当 需要使用某台设备时先提出申请,被获准后才可使用,使用完毕立即释放。,通常,独享设备是作为系统中的特别文件,如同盘文件一样,进程在使用某个特别文件之前必须先将它“打开”(open),打开特别文件的实质就是请求分配指定的独享设备。例如,进程可使用如下系统调用命令请求分配: open(pathname,mode) 其中:调用参数pathname是特别文件路径名,其终极分量名是设备的物理名phdevname,phdevname由设备类型标识符devtype和设备台号devid组成;参数mode指示要求的设备操作。open命令的返回值是指定特别文件的文件指针fp。,逻辑i/o系统接受分配请求,在分解pathname获取devtype和devid之后,按devtype检索sdt,将devid转换成相应设备的指针,然后调用该类设备的打开模块执行具体的打开操作。模块devopen(dcbp,mode)的大致工作流程如下: 检查该设备是否已分配,若已分配则返回“打开不成功”标志,否则继续; 检查设备是否已就绪,如加电、装上打印纸等,若未就绪则作出错处理,否则继续;,检查请求的操作是否合法,例如,对打印机的读操作是非法操作,若非法则作出错处理,否则继续; 进行安全性检查,判断此次分配是否可能导致死锁,若不安全则不予分配,返回“打开不成功”标志,否则实施分配; 在中置分配标志,在活动文件控制块表中为该设备分配一个表目并初始化,最后将此表目序号赋予返回。, spooling系统,图- spooling系统的组成,()系统对用户进程是透明的,用户进程仍使用统一的系统调用命令访问字符设备。但是,对于用户进程的一次设备申请,系统并不把物理字符设备分配给某个用户进程独占使用,而是分配给它一台虚拟的字符设备,这实际上是高速磁盘设备上的一片盘区,即一个盘文件。因为在盘上可同时建立多个盘文件,故这种独享的字符设备也就变成了逻辑的可共享设备。 ()用户进程实际上使用的是虚拟设备,而不是直接使用字符设备。,()字符设备与各虚拟设备之间的数据交换由进程统一调度实施,而且这种数据交换以并行方式进行,即字符设备与内存缓冲区之间的数据交换同虚拟设备与内存缓冲区之间的数据交换并行进行。从整个系统来说,用户内存区与虚拟设备之间的数据交换同字符设备与虚拟设备之间的数据交换也可以是并行的,故整个系统呈现出高度的并发性。, 设备驱动,设备驱动进程需要同上层的逻辑i/o系统进行双向通信:它接受上层发来的i/o请求,以及向上层报告i/o请求的完成情况。 此外, 设备驱动进程需要获取i/o中断处理程序报告的设备完成状态。这里以消息发送的通信方式为例,一则i/o消息iomessage可设置如下数据项: type 消息类型:“请求”或“回答”。 ioqbp i/o请求块ioqb的指针。 status 结果状态,仅在回答消息中设置。, 磁盘的调度与驱动,. 磁盘硬件,磁盘设备由驱动器和盘片组成。盘片是信息存贮介质,它呈扁平圆形,两面涂有磁性材料,盘面上的每一个同心圆称为一个磁道,一个盘面有数百个磁道,信息由安装在磁头臂上的读写磁头记录在磁道上。一个磁道被分割成若干相等长度的孤段,称为物理块或盘块,信息是以块为单位进行存贮和传输的。而且每个磁道上的盘块数是相等的,一般为至,显然外磁道上的盘块要大于内磁道上的盘块,但它们所记录的信息量是相等的,那些较长块的多余空间被闲置不用。于是,一个盘面被划分成若干具有相等盘块数的呈扇形的区域,称为扇区,每个扇区被赋予一个扇区号。此外,不同盘面上的相同磁道构成一个柱面,并被赋予一个柱面号。因此,一个盘块的物理地址由三个参数唯一确定,即盘块的物理地址是个三维地址:柱面号、盘面号、扇区号。,磁盘设备可分为两种基本类型:固定头磁盘和移动头磁盘。前者中的每个磁道都对应有一个独立的磁头,优点是磁道之间的转换迅速,缺点是磁头数太多,造价过高。一般是采用后者,即一个盘面只使用一个磁头,该磁头可由磁头臂驱动沿盘面半径移动以读写不同磁道上的信息。 此外,从物理上磁盘设备又分为硬盘和软盘。硬盘中由若干盘片组成一个盘片叠,并被封装在盘盒内。而一个软盘驱动器只能装入一个盘片,软盘片的表面有一个硬壳保护层,可方便地从驱动器中拔插。软盘的容量通常为几百k到兆字节,硬盘容量则要大得多,从几十兆到几百兆字节,而且硬盘的存取速度也要快得多。,图- 访盘时间组成,. 磁盘调度策略,先来

温馨提示

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

评论

0/150

提交评论