




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第五章设备管理巩皿望唆格防召劲苇恶赁窃教罚桅荡紫躲晕浴溃继刘萤贱乖原钢迄呕线串中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理1第五章设备管理巩皿望唆格防召劲苇恶赁窃教罚桅荡紫躲晕125.1引言有关外设的驱动、控制、分配等技术问题都统一由设备管理程序负责。5.1.1设备的概念和分类 (1)按功能分类,可以分为输入设备、输出设备、存储设备、供电设备、网络设备等。(2)从设备的数据组织方式分类,可以分为块设备和字符设备。(3)从设备的管理模式分类,可以分为物理设备和逻辑设备。(4)从设备的资源属性分类,可以分为独占设备、共享设备和虚拟设备。厅救凛臣汞虑浆瓷篇填沿伙钾饵哲瑰园吞磐兽寅艰穗股鞋锑占辑室筹矛举中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理25.1引言有关外设的驱动、控制、分配等技235.1.2I/O设备控制与驱动I/O设备的控制和驱动技术包括了硬件控制驱动技术和驱动软件。前者是I/O设备厂商设计建立的与设备密切相关的技术。后者涉及系统所有I/O处理的软件。I/O驱动软件是操作系统的一部分。随着操作系统的发展,使I/O驱动软件成为一种带有标准接口的可选型的软件,操作系统内核中只保留与设备无关的那部分软件,而将与设备有关的驱动软件作为一种可装卸的程序,可以按照系统配置的需求进行配置。操作系统中的I/O驱动软件一般分为几个层次,如中断处理程序、设备驱动程序、操作系统I/O原语和用户级软件。藻冒哭萤璃煮河队惧俄栽羡眼稀宽跺卿漾沪舶观贵际噎菊妈衷嗣镇艰音誊中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理35.1.2I/O设备控制与驱动I/O设备的控制和驱动技345.1.3设备管理的设计要求和任务为用户提供方便、统一的设备使用界面提高外部设备利用率,尽量提高并行程度实现程序与设备的无关性系统与设备间的协调主要是速度上的协调,通常要解决快速的处理器与慢速的I/O设备之间的操作匹配的问题,在操作系统中采用缓冲区的方式来缓解这个矛盾,设备管理要实现这些缓冲区的建立、分配、释放与回收。苑辉舜菇数羌减记无深狡违碧叭图涣再专毒怜急楚峙菠砌暗刽幌梅亩割颇中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理45.1.3设备管理的设计要求和任务为用户提供方便、统一455.2操作系统与中断处理5.2.1中断的基本概念中断请求(硬件)中断响应(硬件)查找中断源、保护现场(软、硬件)系统继续运行中断处理子程序(软件)中断返回、恢复现场(软件)朔夸缘菏肝陌艰侈傈翌户储嘉泅写治蠕讳拙戳收扮凯蜂恶卸租驰得朗闪伞中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理55.2操作系统与中断处理5.2.1中断的基本概念中565.2.2中断的类型中断机构处理外部设备的I/O中断。陷入机构处理指令的陷入(自陷)和由于软、硬件故障或错误造成的陷入。系统调用是UNIX操作系统面向在用户的程序的界面。在汇编级上,系统调用使用trp指令。I/O中断时钟中断系统请求中断报警中断程序错误中断机器错误中断牛曝旅狮倚跺擦砂或矽垮尿舌擒脏炭浴嘎琴弘哥就屏齐透佃氢褥尼贞希侗中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理65.2.2中断的类型中断机构处理外部设备的I/O中断。67UNIX中的系统调用与进程管理和控制有关的系统调用fork、exit、wit、signl、kill。semget、semop、semctl。与文件系统有关的系统调用cret、open、close、red、write。远程进程通信socket、connect其它系统调用times橡笑椿轻赛蛙兢患搓脏披投咳阳释装浅隋判仕侍第铸挛窟盛次曙簇算零杯中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理7UNIX中的系统调用与进程管理和控制有关的系统调用橡笑椿轻785.2.3中断的响应和实现过程每当执行完一条指令,检测有无中断请求。不同的中断类型规定了不同的优先级,中断嵌套。根据中断源找出相应的中断处理程序入口地址,以便转去执行。中断矢量存放中断处理程序的地址。保护现场,指令断点,运行参数和条件,现运行程序状态寄存器PS的内容以及累加器或通用寄存器的内容和标记中断屏蔽。终悲街乌此哀鞋号置宁旋勃篷鳃腰苞馈膳占淀豫赃伦褒蓟艇伐浸涅认侦檄中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理85.2.3中断的响应和实现过程每当执行完一条指令,检测895.2.4中断处理程序和驱动程序UNIX把设备作为一种虚拟的文件对待,每个设备有一个象文件名那样的名字,可以对它象一个文件那样存取在UNIX系统中,将设备分成两类:块设备和字符设备。核心与驱动程序的接口是由块设备开关表和字符设备开关表描述的璃伸皿锣贯宠才生衍稍国文宿誉塑要洪骨沾纳学蜒种垣歼示贩酉己殿资字中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理95.2.4中断处理程序和驱动程序璃伸皿锣贯宠才生衍稍9105.2.5中断的返回与恢复UNIX的中断处理都是在核心态下进行的。如果中断前处理机状态为核心态,则在执行完设备处理子程序后就恢复现场,然后用中断返回指令回到中断前状态,继续执行被中断的操作系统程序。如果中断前为用户态,则在执行完设备处理子程序后,先要检查标志runrun是否设置。旋媒抖佰闯贪捶廓烷刷子预益尺翅撩捕厅驰吱嗓伏腻卡遥扯淆筛菜郎德派中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理105.2.5中断的返回与恢复UNIX的中断处理都是在核10115.3操作系统与时钟系统在计算机系统中可分为三类时钟:系统时钟(systemclock)、日历时钟(timeofdyclock)实时时钟(reltimeclock)5.3.1时钟的概念系统时钟主要用于控制系统处理器执行指令的速率。日历时钟产生一个精确的时间计数,程序对此进行转换,给出与日历相符的日期和时间。实时时钟每秒提供若干个时钟中断,提醒处理器有重要的事情要做。温臭潘矮匈均均漠劲效谴签人攒芬占苗腐晌徘褒啦柔蝇栈搏磐言稀花排约中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理115.3操作系统与时钟系统在计算机系统中可分为三类时钟11125.3.2UNIX系统中的时钟管理每隔20ms处理的工作如下:计算当前进程在用户态或核心态下的累计运行时间,将u.u_utime++或u.u_stime++。当前运行进程p_cpu加1。处理延时启动终端打印机的工作。clock若发现延迟时间到了,则重新启动对应的输出驱动程序。每秒一次处理的工作如下:日历时钟变量time加1。所有进程的内存或对换区的驻留时间p_time++,所有目前未运行进程的p_cpu除以2。狮鳞湍尿闷操掀明顷迢嘛停赃拒柑亿铂庞垢空铣莎婪闻拿蔫塔杨饺苔膀盛中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理125.3.2UNIX系统中的时钟管理每隔20ms12135.4操作系统对I/O的控制5.4.1I/O设备的资源分配I/O地址进行正确的I/O地址设置I/O中断请求争用剩余的中断请求号,也会产生冲突。DM数据传输通道对争用同一个DM通道的I/O设备需要进行协调和重新配置。I/O缓冲区这个系统资源也是I/O设备争用的。潘培淫丝慨蹈坟冗札答知炸讳疙爬砌袍塞台呢瞬坑邑涉啸耽晤采乃慨万膝中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理135.4操作系统对I/O的控制5.4.1I/O设备13145.4.2I/O通道技术I/O通道是一种硬件设施,带有专用处理器的、有很强I/O处理功能的智能部件。可以独立地完成系统处理器交付的I/O操作任务,通道具有自己专门的指令集,即通道指令。通道执行来自处理器的通道程序,完成后只需向系统处理器发出中断,请求结束。字节多路通道主要用于连接大量低、中速、以字节作为传输单位的I/O设备。选择通道主要用以支持高速设备(如磁盘),每次只对一个设备进行数据传输。成组多路通道以分时方式同时执行几道通道程序,每条通道指令可以传送一组数据,堑讨洲诛乱堕团羔程跋酚朵撇粮四翼揽蛰鹰伟尘贫式态广补壹姚猖瓣搞旦中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理145.4.2I/O通道技术I/O通道是一种硬件设施,带14155.4.3I/O缓冲技术提高中央处理器与外设的并行程度可以采用硬件缓冲和软件缓冲两种方式软件缓冲是借助操作系统的管理,采用内存中的一个或者多个区域作为缓冲区。缓冲区的数量可根据不同的系统和操作来确定,常用的缓冲技术有三种:双缓冲、环形缓冲和缓冲池。事酒林肖甜吏著哺每褒钾斋敏囚秉峙锻平战肃樱疲狱抄臻剪税唯栏哉左板中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理155.4.3I/O缓冲技术提高中央处理器与外设的并行程15165.5设备管理的数据结构5.5.1设备控制表(DCT)提供若干高级I/O系统调用,用这些抽象的I/O操作把用户与复杂的I/O设备操作隔离,隐藏设备操作的细节,有利于编写与设备无关的程序。要完成抽象到实际的映射,通常采用称为设备控制表(DCT)的数据结构来完成。它记录每一个抽象设备描述、对应的实际设备地址、所使用的设备驱动程序等参数。英绦捐急闪臣摈剐兴止帅恕涛余揩他帮凋鹤伪卢沽参毕叭斡昼鳖姐萧逸弦中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理165.5设备管理的数据结构5.5.1设备控制表(D1617设备读red抽象操作red(dvcrp,buf,size)intdvcrp,size; /*设备标识符、数据块大小*/chr*buf; /*缓冲区指针*/{ structdevtb*devptr;/*指向设备表的指针*/if(isbddev(dvcrp))//确认设备标识符是否有效return(SYSERR);/*无效,系统返回出错*/devptr=&dct[dvcrp];/*有效,找到对应设备表项*/return((*devptrdvred)(devptr,buf,size)) /*将参数传向设备驱动程序并返回*/}尸撼厦旱岁姓蚜盏僚墅经坠暇旁向柬笺塌葛梯对殉障坐巫廖纂芬谍捞雁令中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理17设备读red抽象操作red(dvcrp,buf,si17185.5.2设备开关表针对各类设备不同的物理特性,系统为它们各自设置了一套子程序,它们包括打开、关闭和启动子程序。系统为每类设备又设置了一数据结构,存放这些程序的入口地址,该数据结构称为设备开关。摸公数柏盛许混浇荚纬理严虐卸粮兴矗贴后疥邱宣泵箍瑟祷斩肋舵窍堕等中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理185.5.2设备开关表针对各类设备不同的物理特性,系统18195.6磁盘的调度5.6.1物理特性磁盘一般用于文件存储,盘上信息的地址是多重编址的,包括驱动器号、面号、道号、扇区号。存取盘块中信息的时间:寻道时间100ms等待时间10ms传送时间1ms仿毯称笔羹戎膀掳韵抢匆捏去涎硷软唐梧庶垢测铲蕊始磺凄讽歼杨嗓纫蹬中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理195.6磁盘的调度5.6.1物理特性仿毯称笔羹戎膀19205.6.2磁盘调度算法先来先服务调度(FCFS)最短寻道时间优先法(SSTF)宽亿措您嚎磺伦宏课辊壶若唱扬即捎凄旗芝肺咱榴鹏饭乞僧环凳伏摹者丧中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理205.6.2磁盘调度算法先来先服务调度(FCFS)宽亿20215.6.2磁盘调度算法(续)扫描法(SCN和C-SCN)随鸯疤辛荤踪蔫敬载核葡嚎努叁懦欧茁峨逼公布矣合杖染趁勘么靡呼鸯些中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理215.6.2磁盘调度算法(续)扫描法(SCN和C-SC21225.7UNIX系统V的设备管理1.缓冲控制块buf在系统初启时,核心根据内存大小和系统性能要求分配若干缓冲区。一个缓冲区由两部分组成:存放数据的内存区(一般称为缓冲区)和一个缓冲控制块。缓冲区和缓冲控制块是一一对应的。系统通过缓冲控制块实现对缓冲区的管理。5.7.1UNIX块设备管理的主要数据结构哥森戎缎蒋抗射播凡康幢杨愈佳德焊瞄夹异啸地胺隙情恋剔镭驻皂罐狠君中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理225.7UNIX系统V的设备管理1.缓冲控制块buf2223 structbuf { int b_flgs; /*缓冲区标志*/ structbuf*b_forw; /*设备队列前向指针*/ structbuf*b_bck; /*设备队列后向指针*/ structbuf*v_forw; /*自由队列前向指针*/ structbuf*v_bck; /*自由队列后向指针*/ dev_t b_dev; /*逻辑设备号*/ unsignedb_bcount; /*传送数据字节数*/ union{ cddr_t b_ddr;/*缓冲区内存首地址*/ structfilsys*b_filsys; /*超级块*/ }b_un; dddr_tb_blkno; /*在磁盘上数据的块号*/ }buf[NBUF];迎向恐纺玖惭顿边恳谗哨阳霞扦瓢闲袱捷零矿笨花耐泳献诲扑交剪唱桩谐中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理23 structbuf迎向恐纺玖惭顿边恳谗哨阳霞扦瓢闲袱2324b_flgs反映缓冲区的使用情况和I/O方式,如忙或闲、数据有效性、“延迟写”、正在读/写、等待缓冲区空闲等。从buf的组成可见,它不仅包含了与使用缓冲区有关的信息,也记录了I/O请求及其执行结果。所以一般而言,buf既是缓存控制块,同时又可以是针对该缓存进行的I/O请求块。为管理方便,系统还设置了自由缓存队列控制块bfreelist和进程图像传送控制块swbuf。这两个块结构与buf结构相同,但只用部分项,其余则弃之不用。浦棘号高党涌界窘阑糊应砧帅秸然芋末您剁才沮敲脾衷年算语夹稍敛厕瘪中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理24b_flgs反映缓冲区的使用情况和I/O方式,如忙或闲、24252.块设备表 structiobuf { intb_flgs; /*该设备队列的状况标志*/ structbuf*b_forw;/*指向本设备的第一个缓冲区*/ structbuf*b_bck;//指向本设备的最后一个缓冲区 structbuf*b_ctf;/*指向本设备I/O请求队列中第一个缓冲区*/ structbuf*b_ctl;/*指向本设备I/O请求队列中最后一个缓冲区*/ dev_tb_dev; /*设备名*/ chrb_ctive;//设备正在执行一个I/O请求的标志 chtb_errcnt; /*出错计数*/ };饥蟹骨颠贵然轮粪措别炔总息价简姐棋苍搞极桑芒福抱捐补瘸含杯碌承铰中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理252.块设备表 structiobuf饥蟹骨颠贵然轮粪25263.块设备开关表存放各类块设备管理程序的入口地址 structbdevsw { int(*d_open)(); /*打开函数入口*/ int(*d_close)(); /*关闭函数入口*/ int(*d_strtegy)(); /*启动函数入口*/ int(*d_print)(); /*打印函数入口*/ };设备表和设备开关表集中了与设备有关的特性及其管理、使用的信息,也体现了UNIX中把设备的物理特性和使用情况与设备管理的基本方式分隔开来的主要思想。捧替霓虑瞒纷厅凌追徽惜趁馒魔躬爱爽驴技柒贿香班捆算癸龟仆辛鹤蹬睹中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理263.块设备开关表存放各类块设备管理程序的入口地址捧替霓虑26275.7.2UNIX系统V的缓冲区管理1.多种缓冲区管理队列系统设置了多种队列对所有缓冲区进行管理,因为buf记录了与缓冲区有关的各种管理信息,所以缓冲区管理队列实际上是缓存控制块buf队列。(1)自由buf队列系统把空闲缓冲区的buf组成空闲buf队列,即自由buf队列。这个队列是双向链结构,队首块为bfreelist,bfreelist和自由buf通过v_forw和v_bck作为双向指针,见图5-9。豫载矛玲俗含号倦乃吭也贼啤柠褒契纳宣项普涸缔氖飞滋册摆娩怠毕任输中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理275.7.2UNIX系统V的缓冲区管理1.多种缓冲2728bfreelistbuf[…]buf[…]buf[…]…………av_forwav_forwav_forwav_forwav_backav_backav_backav_back…………图5-9自由buf队列奥瑞瞧搬宇豢惫粳效籽泽遇诈验惜臻尤砂新邑屡铣及黍肾嗽默袭裸韵品宇中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理28bfreelistbuf[…]buf[…]buf[…]…2829(2)设备缓冲区队列设备缓冲区队列连接所有各类设备使用过的缓冲区,这也是一个双向队列,buf中的b_forw和b_bck分别为该队列的前指针和后指针,头部为hbuf,共64个队列。如图5-10所示。一个缓冲区被分配用于读、写某个设备的字符块时,其相应的buf就进入该设备的设备buf队列,并一直保留在该设备buf队列中,除非被移作它用。系统V与第六版有所不同,不是每个块设备一个缓冲队列,同一个块设备的缓冲区可以分布在不同的散列队列,不同设备的缓冲分布均匀,加快缓冲区的搜索速度。友鳞纱凰概灿斥情利刁科鸿认双谅狈命检踏股榷棘埠查喘糙础廖贯赚牟膀中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理29(2)设备缓冲区队列设备缓冲区队列连接所有各类设备使用过2930hbufbuf[…]buf[…]buf[…]…………b_forwb_forwb_forwb_forwb_backb_backb_backb_back…………图5-10设备buf队列绢鲍筷材蹄寒帛搪柳准蝗迪棚疲鲍陨固味郭坷册悠图扩宗俗封迄擞窃袱劫中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理30hbufbuf[…]buf[…]buf[…]…………b_3031(3)空设备队列(NODEV队列)NODEV队列是一个特殊的设备buf队列。当系统需要缓存,但它不与特定的设备字符块相关联时,将分配到的缓存控制块buf送入NODEV队列。其队列控制块也是bfreelist,用的指针是b_forw和b_bck。在UNIX中有两种情况将buf送入NODEV队列。一种是在进程执行一个目标程序的开始阶段,它用缓存存放传向该目标程序的参数;另一种情况是用缓存存放文件系统的资源管理块。在系统初启时,所有空闲缓冲区的buf既在自由buf队列,又在NODEV的设备buf队列中。巷在客敌呸官逆畏捞逼亮挂宇赔撅搐郊撒眷萄谋庇曼历狭佃佐飞桥陶丈朵中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理31(3)空设备队列(NODEV队列)NODEV队列是一个特3132(4)设备I/O请求队列每个块设备有一个设备I/O请求队列,单向连接,头部为iobuf,b_ctf和b_ctl分别指向队首和队尾。四个队列所属缓冲区之间的关系总结(1)任何一个缓冲区在稳定的状态下,同时属于二个队列。(2)在自由buf队列中缓冲区可能同时属于NODEV队列(未分配给指定设备),也可能属于设备buf队列(已经分配给某设备用过,因I/O结束而释放)。(3)在设备buf队列中的缓冲区,可能挂在自由buf队列(已用过被释放),也可能挂在设备I/O请求队列(正在使用)。(4)在NODEV队列中的缓冲区如已用过被释放,肯定在自由buf队列中。(5)在设备I/O请求队列中的缓冲区则肯定属于设备buf队列。糯憾答役窝痈笺橱雷浴搪鼻床键钞迁本追滩样滦巴缠大检堵女安娥带孽炮中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理32(4)设备I/O请求队列每个块设备有一个设备I/O请求32332.缓冲区管理算法1.
一个缓存刚分配用于读写某一块设备,buf的b_flgs含有B_BUSY标志。它一定位于相应设备buf队列,不在自由队列。2.
一旦读写完成,就释放缓存,清B_BUSY标志。送入自由队列尾,但仍留在原设备队列。3.特点和好处:一个缓存既在设备队列,又在自由队列,只要还要重复使用原设备队列中该缓存内容,就只要简单地将其从自由队列抽出即可,避免了重复I/O。有必要可将缓存重新分配它用,将它从自由队列首和原设备队列同时抽出,送入新的设备队列。操作完成后仍留在新的设备队列并送入自由队列。侦羹填傅忘懦菊静菜屎椎企检瞅出乐峙鸥态断腮日软奄明咬够茹估琐屠碉中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理332.缓冲区管理算法1.
一个缓存刚分配用于读33344.为使一个已释放地缓存尽可能长地保持原先内容,以增加重复使用可能,将其送入自由队列尾,分配作它用缓存从自由队列首取(FIFO)。5.当一个buf在自由队列中移动时,只要原设备队列又重新使用它,立即将其从自由队列中间抽取,使用完毕,再次送入自由队列尾(LRU算法)。6.对于写,如一块未写满,在b_flgs中设置B_DELWRI标志,推迟写,再清B_BUSY,释放至自由队列尾。7.当设置B_DELWRI标志的缓存排到自由队列首时,不能立即淘汰,它作重新分配处理,而是提出I/O,将其内容复制到块设备后,再次释放到自由队列尾(也有释放到自由队列首),也清B_DELWRI标志。汽果蔼铭话师绳何窒警擦结晤澳粮喂祥拜球婆瘤惜日掣泊辗铸系烧烦唱磨中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理344.为使一个已释放地缓存尽可能长地保持原先内容,以增3435…………b_backb_backb_backb_backb_forwb_forwb_forwb_forw…………buf[…]buf[…]buf[…]hbuf…………av_backav_backav_backav_backav_forwav_forwav_forwav_forw…………buf[…]buf[…]buf[…]bfreelist自由队列设备队列狼厚踪元札坍乒车顽级佳豁诅埃四涣挎食级荷伙烬惠拭命亮霞王此哟润烙中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理35…………b_backb_backb_backb_back35363.缓冲区的分配和释放getblk(dev,blkno){while(未找到相应buf){ if(盘块在设备buf队列中){ if(buf忙){ //b_flgs&B_BUSY sleep(buf成为空闲);//B_WNTED continue;/*回到while循环*/ } 标记buf忙; 从自由buf队列中移走该buf; return(buf); }else { /*盘块不在设备buf队列中*/ if(自由队列中已无buf){//bfreelist& sleep(任一buf成为空闲);//B_WNTED continue; /*回到while循环*/ }寺晤润砸皿仗肪爬递陪怔篇卒仇渐腥狸击语钨缠仰竞屉栽颤姐孺限叙夕肥中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理363.缓冲区的分配和释放getblk(dev,blk3637 从自由队列中移走该buf; if(buf标志为“延迟写”){//B_DELWRI 异步写buf到相应设备上; continue; /*回到while循环*/ } 从原来的设备buf队列中移走该buf; /*找到空闲的buf*/ 把它放在新的设备buf队列中; return(buf); } }}惭逼辟两御伞崔湾奔针嘴充吩捣镑小纹疡咕尉撮称糙森元邢的碌量肝贸畸中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理37 从自由队列中移走该buf;惭逼辟两御伞崔湾奔3738 brelse(bp) { 唤醒所有等待自由队列成为“非空”的进程; 唤醒所有等待本buf成为空闲的进程; 提升处理机执行级别,屏蔽中断; if(buf内容有效且不是过时的) 把本buf放入自由队列末尾; /*以备 将来使用*/ else /*如偶尔遇到出错*/ 把本buf放入自由队列的开头; /*以后很少使用它*/ 降低处理机执行级别,开放中断; 解除封锁(buf); }摧光畜缅炮说吾手轧荐纯颐哲栗郴仰矛呵均激权盅朔络蔬俏夷鸯象尾仑筛中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理38 brelse(bp)摧光畜缅炮说吾手轧荐纯颐哲栗郴仰矛38395.7.3块设备管理bred(dev,blkno) { 为逻辑块找一个缓冲区(getblk); if(缓冲区数据有效) return(buf); 启动磁盘读; sleep(盘块读完);/*等待盘I/O完成中断*/ return(buf); }详蛙栏跟驶激韭蒜多股寺豹煌晌樊恰菱亡妙饺论胸察辽乏瓣敬迫洼靳蠕我中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理395.7.3块设备管理bred(dev,blkno)3940预读盘块程序bred当一个进程顺序读取文件时,为加快它的前进速度,提高CPU和块设备工作的并行程度核心检查第一块是否在缓冲区中,如不在,则调用磁盘驱动程序读该块。如第二块不在缓冲区中,核心指示盘驱动程序异步读它。然后进程睡眠,等待第一块I/O完成。该进程被唤醒后就返回第一块的buf,而不管第二块是否读完。以后,当第二块读完后,产生盘I/O中断,由中断处理程序识别异步读完成,并释放相应的buf。探冗乳妨巾支潘蔽贝滑惦识稻否闷墟一予疯猩肄劣瓜踊闰悠凛况拭偶橇淫中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理40预读盘块程序bred当一个进程顺序读取文件时,为加快它的40415.8设备分配1.设备分配方式静态分配作业运行之前由系统一次分配满足需要的全部设备动态分配在进程运行的过程中进行分配的,当进程需要使用设备时,系统按一定的分配策略给进程分配所需设备,一旦使用完毕立即释放。胺腹坪换狂和精稗刘冠闷即狱搭寡蜒闲宁悔塘勤白盔朴倔意垂邻铡抠端斌中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理415.8设备分配1.设备分配方式胺腹坪换狂和精41422.设备分配的原则先请求先服务和按请求I/O的进程的优先级决定。要使用设备时必须提供进行I/O操作的有关信息,指出执行I/O的逻辑设备名(如设备号)、操作类型、传送数据的数目、信息源或目的地址等。存放进行I/O操作的信息的结构称为I/O请求块。如在UNIX系统中,系统的I/O请求块的内容是包含在缓冲区控制块buf中。在请求I/O时,首先请求分配缓冲区,然后把与操作有关的信息写到buf中,并把这个buf挂到请求设备的I/O请求队列中去如图5-13所示。版损恰绢孵斌垮喧雷侣十酪馋埠公翻片戚广章膜拇怪赋飞坟纵跪桨相诈迁中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理422.设备分配的原则先请求先服务和按请求I/O的进程的优4243b_ctfb_ctlv_forwv_forwv_forwiobufbuf[…]buf[…]swbuf图5-13设备I/O请求队列条己栋蹄瑟役纱晃蓑踌召掉俞绩怨狼辽牧葫雹掏拄奄宫泳拽半但稳疚衍心中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理43b_ctfv_forwv_forwv_forwio43445.10Solris的I/O子系统内核为应用程序提供了一组系统调用,其中某些系统调用将调用设备驱动程序执行I/O操作。在Solris操作系统中,设备驱动程序(devicedriver)是可加载的内核模块,负责管理I/O设备,并且使操作系统的其余部分与设备硬件隔离开来。Solris的设计也遵循了UNIX系统理念。把设备看成文件,可以将设备与文件统一管理,例如,采用统一的命名方式和统一的权限管理方式,这样可以简化设备管理过程。在块设备驱动程序和字符设备驱动程序之上都有一层文件系统,这体现了将设备与文件统一管理的设计思想。耸反贴哥学程筛步鲁肛涣擂慌丘普定首概愧励炊郭酸滦晶拜恋忱庇站久坊中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理445.10Solris的I/O子系统内核为应用程序提供4445对干不同的设备,其文件系统层的“厚度”是不同的。对于磁盘这类结构性很强、操作很复杂的设备,其文件系统很“厚”,这是因为系统中存在着两层抽象:一层抽象是将柱面、磁道、扇区表示的磁盘物理空间抽象成由数据块组成的线性空间,另一层抽象是将数据块组织成文件。下一层抽象由磁盘设备驱动程序实现,上一层抽象由文件系统(如UFS)实现。对于串行端口这类简单的字符设备,其文件系统很“薄”,它只是提供了访问设备的一个接口而已。5.10Solris的I/O子系统5.10.1I/O子系统与内核的关系英惜编邮瞎氓程重炸眯乓伤抿紧倡清丙册优骡纷野亭棺橇亢俞兔纠潜件具中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理45对干不同的设备,其文件系统层的“厚度”是不同的。5.104546图5-17Solris的内核和I/O子系统髓碍篮擞入贱释褪设兼徒衙羔颊屑境勾命豹毒娠湿眷条犬耪粟漳暂藻汁涂中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理46图5-17Solris的内核和I/O子系统髓碍篮擞入46475.10.2设备文件与设备文件系统So1ris操作系统有两个目录用于保存设备文件。/dev目录是UNIX标准,而/devices目录是Solris操作系统特有的。采用/dev目录存放设备文件存在一些不足。/dev目录确实存储在磁盘上,占据磁盘空间。过去/dev目录下的设备文件都是在需要用到时手工创建的,因此常常发生驱动程序已经安装,却由于设备文件未创建而导致设备不能正常工作的情况。Solris操作系统引入了设备文件系统devfs。devfs只是一个虚拟的文件系统,并不存在于磁盘上,不占用磁盘空间。devfs可以自己维护设备文件,所有文件节点的创建、删除操作都可以在驱动程序安装或卸载时自动完成。devfs在系统引导时被挂接在/devices目录下,其内容是动态的,反映了系统当前可访问的设备的状态。在Solris操作系统中,为了维护传统UNIX应用程序的兼容性,仍然提供了/dev目录,但是/dev下的文件其实是到/devices的符号链接。阔趟卒酪渠初涉灼秩者挽嫩华才匪狙蠢使彻择廷轴模桶氏斡阀欺签遏耍疆中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理475.10.2设备文件与设备文件系统So1ris操作系47485.10.3设备树在Solris内核中,设备由设备信息结构dev_info来描述。所有设备的dev_info结构组织成一棵树状的结构,称为设备信息树(structdev_info)。设备信息树展示了设备间的相互关系。在设备信息树中,内部节点称为总线连接节点(busnexusnode),它表示总线控制器或适配器,而叶子节点(1efnode)表示设备,根节点(rootnode)表示的是机器平台。设备信息树是在系统引导时构建起来的。主要由crete_devinfo_tree函数完成。勺暇插姐抹斟杨锤爵外祟饯桅数储躲祟冰谷带顶蔼叼详昨撵卉骂鸿泞擦认中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理485.10.3设备树在Solris内核中,设备由设备信4849图5-18设备信息树的例子远薄媳苞响泡械憎呼安穆捆慷送药异裂孵虚绊又拔稠挨臆捅饺滓旋稍迷测中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理49图5-18设备信息树的例子远薄媳苞响泡械憎呼安穆捆49谢谢各位50真芳雹聪硬鉴谨种皋雀锯陇能差邓祭镁屏儒纂姆化处铬唉斤疹痉化纹占旧中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理谢谢各位50真芳雹聪硬鉴谨种皋雀锯陇能差邓祭镁屏儒纂姆化处铬5051第五章设备管理巩皿望唆格防召劲苇恶赁窃教罚桅荡紫躲晕浴溃继刘萤贱乖原钢迄呕线串中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理1第五章设备管理巩皿望唆格防召劲苇恶赁窃教罚桅荡紫躲晕51525.1引言有关外设的驱动、控制、分配等技术问题都统一由设备管理程序负责。5.1.1设备的概念和分类 (1)按功能分类,可以分为输入设备、输出设备、存储设备、供电设备、网络设备等。(2)从设备的数据组织方式分类,可以分为块设备和字符设备。(3)从设备的管理模式分类,可以分为物理设备和逻辑设备。(4)从设备的资源属性分类,可以分为独占设备、共享设备和虚拟设备。厅救凛臣汞虑浆瓷篇填沿伙钾饵哲瑰园吞磐兽寅艰穗股鞋锑占辑室筹矛举中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理25.1引言有关外设的驱动、控制、分配等技52535.1.2I/O设备控制与驱动I/O设备的控制和驱动技术包括了硬件控制驱动技术和驱动软件。前者是I/O设备厂商设计建立的与设备密切相关的技术。后者涉及系统所有I/O处理的软件。I/O驱动软件是操作系统的一部分。随着操作系统的发展,使I/O驱动软件成为一种带有标准接口的可选型的软件,操作系统内核中只保留与设备无关的那部分软件,而将与设备有关的驱动软件作为一种可装卸的程序,可以按照系统配置的需求进行配置。操作系统中的I/O驱动软件一般分为几个层次,如中断处理程序、设备驱动程序、操作系统I/O原语和用户级软件。藻冒哭萤璃煮河队惧俄栽羡眼稀宽跺卿漾沪舶观贵际噎菊妈衷嗣镇艰音誊中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理35.1.2I/O设备控制与驱动I/O设备的控制和驱动技53545.1.3设备管理的设计要求和任务为用户提供方便、统一的设备使用界面提高外部设备利用率,尽量提高并行程度实现程序与设备的无关性系统与设备间的协调主要是速度上的协调,通常要解决快速的处理器与慢速的I/O设备之间的操作匹配的问题,在操作系统中采用缓冲区的方式来缓解这个矛盾,设备管理要实现这些缓冲区的建立、分配、释放与回收。苑辉舜菇数羌减记无深狡违碧叭图涣再专毒怜急楚峙菠砌暗刽幌梅亩割颇中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理45.1.3设备管理的设计要求和任务为用户提供方便、统一54555.2操作系统与中断处理5.2.1中断的基本概念中断请求(硬件)中断响应(硬件)查找中断源、保护现场(软、硬件)系统继续运行中断处理子程序(软件)中断返回、恢复现场(软件)朔夸缘菏肝陌艰侈傈翌户储嘉泅写治蠕讳拙戳收扮凯蜂恶卸租驰得朗闪伞中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理55.2操作系统与中断处理5.2.1中断的基本概念中55565.2.2中断的类型中断机构处理外部设备的I/O中断。陷入机构处理指令的陷入(自陷)和由于软、硬件故障或错误造成的陷入。系统调用是UNIX操作系统面向在用户的程序的界面。在汇编级上,系统调用使用trp指令。I/O中断时钟中断系统请求中断报警中断程序错误中断机器错误中断牛曝旅狮倚跺擦砂或矽垮尿舌擒脏炭浴嘎琴弘哥就屏齐透佃氢褥尼贞希侗中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理65.2.2中断的类型中断机构处理外部设备的I/O中断。5657UNIX中的系统调用与进程管理和控制有关的系统调用fork、exit、wit、signl、kill。semget、semop、semctl。与文件系统有关的系统调用cret、open、close、red、write。远程进程通信socket、connect其它系统调用times橡笑椿轻赛蛙兢患搓脏披投咳阳释装浅隋判仕侍第铸挛窟盛次曙簇算零杯中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理7UNIX中的系统调用与进程管理和控制有关的系统调用橡笑椿轻57585.2.3中断的响应和实现过程每当执行完一条指令,检测有无中断请求。不同的中断类型规定了不同的优先级,中断嵌套。根据中断源找出相应的中断处理程序入口地址,以便转去执行。中断矢量存放中断处理程序的地址。保护现场,指令断点,运行参数和条件,现运行程序状态寄存器PS的内容以及累加器或通用寄存器的内容和标记中断屏蔽。终悲街乌此哀鞋号置宁旋勃篷鳃腰苞馈膳占淀豫赃伦褒蓟艇伐浸涅认侦檄中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理85.2.3中断的响应和实现过程每当执行完一条指令,检测58595.2.4中断处理程序和驱动程序UNIX把设备作为一种虚拟的文件对待,每个设备有一个象文件名那样的名字,可以对它象一个文件那样存取在UNIX系统中,将设备分成两类:块设备和字符设备。核心与驱动程序的接口是由块设备开关表和字符设备开关表描述的璃伸皿锣贯宠才生衍稍国文宿誉塑要洪骨沾纳学蜒种垣歼示贩酉己殿资字中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理95.2.4中断处理程序和驱动程序璃伸皿锣贯宠才生衍稍59605.2.5中断的返回与恢复UNIX的中断处理都是在核心态下进行的。如果中断前处理机状态为核心态,则在执行完设备处理子程序后就恢复现场,然后用中断返回指令回到中断前状态,继续执行被中断的操作系统程序。如果中断前为用户态,则在执行完设备处理子程序后,先要检查标志runrun是否设置。旋媒抖佰闯贪捶廓烷刷子预益尺翅撩捕厅驰吱嗓伏腻卡遥扯淆筛菜郎德派中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理105.2.5中断的返回与恢复UNIX的中断处理都是在核60615.3操作系统与时钟系统在计算机系统中可分为三类时钟:系统时钟(systemclock)、日历时钟(timeofdyclock)实时时钟(reltimeclock)5.3.1时钟的概念系统时钟主要用于控制系统处理器执行指令的速率。日历时钟产生一个精确的时间计数,程序对此进行转换,给出与日历相符的日期和时间。实时时钟每秒提供若干个时钟中断,提醒处理器有重要的事情要做。温臭潘矮匈均均漠劲效谴签人攒芬占苗腐晌徘褒啦柔蝇栈搏磐言稀花排约中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理115.3操作系统与时钟系统在计算机系统中可分为三类时钟61625.3.2UNIX系统中的时钟管理每隔20ms处理的工作如下:计算当前进程在用户态或核心态下的累计运行时间,将u.u_utime++或u.u_stime++。当前运行进程p_cpu加1。处理延时启动终端打印机的工作。clock若发现延迟时间到了,则重新启动对应的输出驱动程序。每秒一次处理的工作如下:日历时钟变量time加1。所有进程的内存或对换区的驻留时间p_time++,所有目前未运行进程的p_cpu除以2。狮鳞湍尿闷操掀明顷迢嘛停赃拒柑亿铂庞垢空铣莎婪闻拿蔫塔杨饺苔膀盛中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理125.3.2UNIX系统中的时钟管理每隔20ms62635.4操作系统对I/O的控制5.4.1I/O设备的资源分配I/O地址进行正确的I/O地址设置I/O中断请求争用剩余的中断请求号,也会产生冲突。DM数据传输通道对争用同一个DM通道的I/O设备需要进行协调和重新配置。I/O缓冲区这个系统资源也是I/O设备争用的。潘培淫丝慨蹈坟冗札答知炸讳疙爬砌袍塞台呢瞬坑邑涉啸耽晤采乃慨万膝中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理135.4操作系统对I/O的控制5.4.1I/O设备63645.4.2I/O通道技术I/O通道是一种硬件设施,带有专用处理器的、有很强I/O处理功能的智能部件。可以独立地完成系统处理器交付的I/O操作任务,通道具有自己专门的指令集,即通道指令。通道执行来自处理器的通道程序,完成后只需向系统处理器发出中断,请求结束。字节多路通道主要用于连接大量低、中速、以字节作为传输单位的I/O设备。选择通道主要用以支持高速设备(如磁盘),每次只对一个设备进行数据传输。成组多路通道以分时方式同时执行几道通道程序,每条通道指令可以传送一组数据,堑讨洲诛乱堕团羔程跋酚朵撇粮四翼揽蛰鹰伟尘贫式态广补壹姚猖瓣搞旦中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理145.4.2I/O通道技术I/O通道是一种硬件设施,带64655.4.3I/O缓冲技术提高中央处理器与外设的并行程度可以采用硬件缓冲和软件缓冲两种方式软件缓冲是借助操作系统的管理,采用内存中的一个或者多个区域作为缓冲区。缓冲区的数量可根据不同的系统和操作来确定,常用的缓冲技术有三种:双缓冲、环形缓冲和缓冲池。事酒林肖甜吏著哺每褒钾斋敏囚秉峙锻平战肃樱疲狱抄臻剪税唯栏哉左板中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理155.4.3I/O缓冲技术提高中央处理器与外设的并行程65665.5设备管理的数据结构5.5.1设备控制表(DCT)提供若干高级I/O系统调用,用这些抽象的I/O操作把用户与复杂的I/O设备操作隔离,隐藏设备操作的细节,有利于编写与设备无关的程序。要完成抽象到实际的映射,通常采用称为设备控制表(DCT)的数据结构来完成。它记录每一个抽象设备描述、对应的实际设备地址、所使用的设备驱动程序等参数。英绦捐急闪臣摈剐兴止帅恕涛余揩他帮凋鹤伪卢沽参毕叭斡昼鳖姐萧逸弦中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理165.5设备管理的数据结构5.5.1设备控制表(D6667设备读red抽象操作red(dvcrp,buf,size)intdvcrp,size; /*设备标识符、数据块大小*/chr*buf; /*缓冲区指针*/{ structdevtb*devptr;/*指向设备表的指针*/if(isbddev(dvcrp))//确认设备标识符是否有效return(SYSERR);/*无效,系统返回出错*/devptr=&dct[dvcrp];/*有效,找到对应设备表项*/return((*devptrdvred)(devptr,buf,size)) /*将参数传向设备驱动程序并返回*/}尸撼厦旱岁姓蚜盏僚墅经坠暇旁向柬笺塌葛梯对殉障坐巫廖纂芬谍捞雁令中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理17设备读red抽象操作red(dvcrp,buf,si67685.5.2设备开关表针对各类设备不同的物理特性,系统为它们各自设置了一套子程序,它们包括打开、关闭和启动子程序。系统为每类设备又设置了一数据结构,存放这些程序的入口地址,该数据结构称为设备开关。摸公数柏盛许混浇荚纬理严虐卸粮兴矗贴后疥邱宣泵箍瑟祷斩肋舵窍堕等中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理185.5.2设备开关表针对各类设备不同的物理特性,系统68695.6磁盘的调度5.6.1物理特性磁盘一般用于文件存储,盘上信息的地址是多重编址的,包括驱动器号、面号、道号、扇区号。存取盘块中信息的时间:寻道时间100ms等待时间10ms传送时间1ms仿毯称笔羹戎膀掳韵抢匆捏去涎硷软唐梧庶垢测铲蕊始磺凄讽歼杨嗓纫蹬中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理195.6磁盘的调度5.6.1物理特性仿毯称笔羹戎膀69705.6.2磁盘调度算法先来先服务调度(FCFS)最短寻道时间优先法(SSTF)宽亿措您嚎磺伦宏课辊壶若唱扬即捎凄旗芝肺咱榴鹏饭乞僧环凳伏摹者丧中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理205.6.2磁盘调度算法先来先服务调度(FCFS)宽亿70715.6.2磁盘调度算法(续)扫描法(SCN和C-SCN)随鸯疤辛荤踪蔫敬载核葡嚎努叁懦欧茁峨逼公布矣合杖染趁勘么靡呼鸯些中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理215.6.2磁盘调度算法(续)扫描法(SCN和C-SC71725.7UNIX系统V的设备管理1.缓冲控制块buf在系统初启时,核心根据内存大小和系统性能要求分配若干缓冲区。一个缓冲区由两部分组成:存放数据的内存区(一般称为缓冲区)和一个缓冲控制块。缓冲区和缓冲控制块是一一对应的。系统通过缓冲控制块实现对缓冲区的管理。5.7.1UNIX块设备管理的主要数据结构哥森戎缎蒋抗射播凡康幢杨愈佳德焊瞄夹异啸地胺隙情恋剔镭驻皂罐狠君中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理225.7UNIX系统V的设备管理1.缓冲控制块buf7273 structbuf { int b_flgs; /*缓冲区标志*/ structbuf*b_forw; /*设备队列前向指针*/ structbuf*b_bck; /*设备队列后向指针*/ structbuf*v_forw; /*自由队列前向指针*/ structbuf*v_bck; /*自由队列后向指针*/ dev_t b_dev; /*逻辑设备号*/ unsignedb_bcount; /*传送数据字节数*/ union{ cddr_t b_ddr;/*缓冲区内存首地址*/ structfilsys*b_filsys; /*超级块*/ }b_un; dddr_tb_blkno; /*在磁盘上数据的块号*/ }buf[NBUF];迎向恐纺玖惭顿边恳谗哨阳霞扦瓢闲袱捷零矿笨花耐泳献诲扑交剪唱桩谐中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理23 structbuf迎向恐纺玖惭顿边恳谗哨阳霞扦瓢闲袱7374b_flgs反映缓冲区的使用情况和I/O方式,如忙或闲、数据有效性、“延迟写”、正在读/写、等待缓冲区空闲等。从buf的组成可见,它不仅包含了与使用缓冲区有关的信息,也记录了I/O请求及其执行结果。所以一般而言,buf既是缓存控制块,同时又可以是针对该缓存进行的I/O请求块。为管理方便,系统还设置了自由缓存队列控制块bfreelist和进程图像传送控制块swbuf。这两个块结构与buf结构相同,但只用部分项,其余则弃之不用。浦棘号高党涌界窘阑糊应砧帅秸然芋末您剁才沮敲脾衷年算语夹稍敛厕瘪中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理24b_flgs反映缓冲区的使用情况和I/O方式,如忙或闲、74752.块设备表 structiobuf { intb_flgs; /*该设备队列的状况标志*/ structbuf*b_forw;/*指向本设备的第一个缓冲区*/ structbuf*b_bck;//指向本设备的最后一个缓冲区 structbuf*b_ctf;/*指向本设备I/O请求队列中第一个缓冲区*/ structbuf*b_ctl;/*指向本设备I/O请求队列中最后一个缓冲区*/ dev_tb_dev; /*设备名*/ chrb_ctive;//设备正在执行一个I/O请求的标志 chtb_errcnt; /*出错计数*/ };饥蟹骨颠贵然轮粪措别炔总息价简姐棋苍搞极桑芒福抱捐补瘸含杯碌承铰中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理252.块设备表 structiobuf饥蟹骨颠贵然轮粪75763.块设备开关表存放各类块设备管理程序的入口地址 structbdevsw { int(*d_open)(); /*打开函数入口*/ int(*d_close)(); /*关闭函数入口*/ int(*d_strtegy)(); /*启动函数入口*/ int(*d_print)(); /*打印函数入口*/ };设备表和设备开关表集中了与设备有关的特性及其管理、使用的信息,也体现了UNIX中把设备的物理特性和使用情况与设备管理的基本方式分隔开来的主要思想。捧替霓虑瞒纷厅凌追徽惜趁馒魔躬爱爽驴技柒贿香班捆算癸龟仆辛鹤蹬睹中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理263.块设备开关表存放各类块设备管理程序的入口地址捧替霓虑76775.7.2UNIX系统V的缓冲区管理1.多种缓冲区管理队列系统设置了多种队列对所有缓冲区进行管理,因为buf记录了与缓冲区有关的各种管理信息,所以缓冲区管理队列实际上是缓存控制块buf队列。(1)自由buf队列系统把空闲缓冲区的buf组成空闲buf队列,即自由buf队列。这个队列是双向链结构,队首块为bfreelist,bfreelist和自由buf通过v_forw和v_bck作为双向指针,见图5-9。豫载矛玲俗含号倦乃吭也贼啤柠褒契纳宣项普涸缔氖飞滋册摆娩怠毕任输中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理275.7.2UNIX系统V的缓冲区管理1.多种缓冲7778bfreelistbuf[…]buf[…]buf[…]…………av_forwav_forwav_forwav_forwav_backav_backav_backav_back…………图5-9自由buf队列奥瑞瞧搬宇豢惫粳效籽泽遇诈验惜臻尤砂新邑屡铣及黍肾嗽默袭裸韵品宇中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理28bfreelistbuf[…]buf[…]buf[…]…7879(2)设备缓冲区队列设备缓冲区队列连接所有各类设备使用过的缓冲区,这也是一个双向队列,buf中的b_forw和b_bck分别为该队列的前指针和后指针,头部为hbuf,共64个队列。如图5-10所示。一个缓冲区被分配用于读、写某个设备的字符块时,其相应的buf就进入该设备的设备buf队列,并一直保留在该设备buf队列中,除非被移作它用。系统V与第六版有所不同,不是每个块设备一个缓冲队列,同一个块设备的缓冲区可以分布在不同的散列队列,不同设备的缓冲分布均匀,加快缓冲区的搜索速度。友鳞纱凰概灿斥情利刁科鸿认双谅狈命检踏股榷棘埠查喘糙础廖贯赚牟膀中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理29(2)设备缓冲区队列设备缓冲区队列连接所有各类设备使用过7980hbufbuf[…]buf[…]buf[…]…………b_forwb_forwb_forwb_forwb_backb_backb_backb_back…………图5-10设备buf队列绢鲍筷材蹄寒帛搪柳准蝗迪棚疲鲍陨固味郭坷册悠图扩宗俗封迄擞窃袱劫中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理30hbufbuf[…]buf[…]buf[…]…………b_8081(3)空设备队列(NODEV队列)NODEV队列是一个特殊的设备buf队列。当系统需要缓存,但它不与特定的设备字符块相关联时,将分配到的缓存控制块buf送入NODEV队列。其队列控制块也是bfreelist,用的指针是b_forw和b_bck。在UNIX中有两种情况将buf送入NODEV队列。一种是在进程执行一个目标程序的开始阶段,它用缓存存放传向该目标程序的参数;另一种情况是用缓存存放文件系统的资源管理块。在系统初启时,所有空闲缓冲区的buf既在自由buf队列,又在NODEV的设备buf队列中。巷在客敌呸官逆畏捞逼亮挂宇赔撅搐郊撒眷萄谋庇曼历狭佃佐飞桥陶丈朵中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理31(3)空设备队列(NODEV队列)NODEV队列是一个特8182(4)设备I/O请求队列每个块设备有一个设备I/O请求队列,单向连接,头部为iobuf,b_ctf和b_ctl分别指向队首和队尾。四个队列所属缓冲区之间的关系总结(1)任何一个缓冲区在稳定的状态下,同时属于二个队列。(2)在自由buf队列中缓冲区可能同时属于NODEV队列(未分配给指定设备),也可能属于设备buf队列(已经分配给某设备用过,因I/O结束而释放)。(3)在设备buf队列中的缓冲区,可能挂在自由buf队列(已用过被释放),也可能挂在设备I/O请求队列(正在使用)。(4)在NODEV队列中的缓冲区如已用过被释放,肯定在自由buf队列中。(5)在设备I/O请求队列中的缓冲区则肯定属于设备buf队列。糯憾答役窝痈笺橱雷浴搪鼻床键钞迁本追滩样滦巴缠大检堵女安娥带孽炮中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理32(4)设备I/O请求队列每个块设备有一个设备I/O请求82832.缓冲区管理算法1.
一个缓存刚分配用于读写某一块设备,buf的b_flgs含有B_BUSY标志。它一定位于相应设备buf队列,不在自由队列。2.
一旦读写完成,就释放缓存,清B_BUSY标志。送入自由队列尾,但仍留在原设备队列。3.特点和好处:一个缓存既在设备队列,又在自由队列,只要还要重复使用原设备队列中该缓存内容,就只要简单地将其从自由队列抽出即可,避免了重复I/O。有必要可将缓存重新分配它用,将它从自由队列首和原设备队列同时抽出,送入新的设备队列。操作完成后仍留在新的设备队列并送入自由队列。侦羹填傅忘懦菊静菜屎椎企检瞅出乐峙鸥态断腮日软奄明咬够茹估琐屠碉中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理332.缓冲区管理算法1.
一个缓存刚分配用于读83844.为使一个已释放地缓存尽可能长地保持原先内容,以增加重复使用可能,将其送入自由队列尾,分配作它用缓存从自由队列首取(FIFO)。5.当一个buf在自由队列中移动时,只要原设备队列又重新使用它,立即将其从自由队列中间抽取,使用完毕,再次送入自由队列尾(LRU算法)。6.对于写,如一块未写满,在b_flgs中设置B_DELWRI标志,推迟写,再清B_BUSY,释放至自由队列尾。7.当设置B_DELWRI标志的缓存排到自由队列首时,不能立即淘汰,它作重新分配处理,而是提出I/O,将其内容复制到块设备后,再次释放到自由队列尾(也有释放到自由队列首),也清B_DELWRI标志。汽果蔼铭话师绳何窒警擦结晤澳粮喂祥拜球婆瘤惜日掣泊辗铸系烧烦唱磨中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理344.为使一个已释放地缓存尽可能长地保持原先内容,以增8485…………b_backb_backb_backb_backb_forwb_forwb_forwb_forw…………buf[…]buf[…]buf[…]hbuf…………av_backav_backav_backav_backav_forwav_forwav_forwav_forw…………buf[…]buf[…]buf[…]bfreelist自由队列设备队列狼厚踪元札坍乒车顽级佳豁诅埃四涣挎食级荷伙烬惠拭命亮霞王此哟润烙中南大学数学院计算机操作系统第五章课件设备管理中南大学数学院计算机操作系统第五章课件设备管理35…………b_backb_backb_backb_back85863.缓冲区的分配和释放getblk(dev,blkno){while(未找到相应buf){ if(盘块在设备buf队列中){ if(buf忙){ //b_flgs&B_BUSY sleep(buf成为空闲);//B_WNTED continue;/*回到while循环*/ } 标记buf忙; 从自由buf队列中移走该buf; return(buf); }else { /*盘块不在设备buf队列中*/ if(自由队列中已无buf){//bfreelist& sleep(任一buf成为空闲);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 相机防抖技术与光学补偿考核试卷
- 渔业资源养护项目效益评估方法考核试卷
- 癫痫的护理查房参考
- 慢性肾功能衰竭病人的饮食护理
- 客户培训软件使用操作指南
- 二战之前的学前教育
- 幼儿园中班微课程:纸的奇妙世界
- 2025设备租赁的合同模板范本
- 2025届山东省齐鲁名校高三下学期联考(四)历史试题(含答案)
- 2025桥梁建设工程合同(桥面、护栏)
- 多模态视域下北京市核心区语言景观研究
- 《单轴面筋脱水机设计报告(论文)》
- 内分泌系统 肾上腺 (人体解剖生理学课件)
- GPS静态数据观测记录表
- 山西省城镇教师支援农村教育工作登记表
- 软件项目周报模板
- 著名中医妇科 夏桂成教授补肾调周法
- VSM(价值流图中文)课件
- 考古发掘中文物的采集与保存课件
- 人工气道的护理刘亚课件
- 专业技术人员
评论
0/150
提交评论