中南大学数学院计算机操作系统第五章课件设备管理.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《中南大学数学院计算机操作系统第五章课件设备管理.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 学院 计算机 操作系统 第五 课件 设备管理
- 资源描述:
-
1、1第五章 设备管理25.1 引言 n 有关外设的驱动、控制、分配等技术问题都统一由设备管理程序负责。n5.1.1 设备的概念和分类n(1)按功能分类,可以分为输入设备、输出设备、存储设备、供电设备、网络设备等。n(2)从设备的数据组织方式分类,可以分为块设备和字符设备。n(3)从设备的管理模式分类,可以分为物理设备和逻辑设备。n(4)从设备的资源属性分类,可以分为独占设备、共享设备和虚拟设备。35.1.2 I/O设备控制与驱动nI/O设备的控制和驱动技术包括了硬件控制驱动技术和驱动软件。前者是I/O设备厂商设计建立的与设备密切相关的技术。后者涉及系统所有I/O处理的软件。I/O驱动软件是操作系
2、统的一部分。n随着操作系统的发展,使I/O驱动软件成为一种带有标准接口的可选型的软件,操作系统内核中只保留与设备无关的那部分软件,而将与设备有关的驱动软件作为一种可装卸的程序,可以按照系统配置的需求进行配置。n操作系统中的I/O驱动软件一般分为几个层次,如中断处理程序、设备驱动程序、操作系统I/O原语和用户级软件。45.1.3 设备管理的设计要求和任务n为用户提供方便、统一的设备使用界面n提高外部设备利用率,尽量提高并行程度n实现程序与设备的无关性n系统与设备间的协调主要是速度上的协调,通常要解决快速的处理器与慢速的I/O设备之间的操作匹配的问题,在操作系统中采用缓冲区的方式来缓解这个矛盾,设
3、备管理要实现这些缓冲区的建立、分配、释放与回收。55.2 操作系统与中断处理n5.2.1 中断的基本概念中断请求(硬件)中断请求(硬件)中断响应(硬件)中断响应(硬件)查找中断源、保护现场(软、硬件)查找中断源、保护现场(软、硬件)系统继续运行系统继续运行中断处理子程序(软件)中断处理子程序(软件)中断返回、恢复现场(软件)中断返回、恢复现场(软件)65.2.2 中断的类型n中断机构处理外部设备的I/O中断。n陷入机构处理指令的陷入(自陷)和由于软、硬件故障或错误造成的陷入。n系统调用是UNIX操作系统面向在用户的程序的界面。在汇编级上,系统调用使用trp指令。nI/O中断n时钟中断n系统请求
4、中断n报警中断n程序错误中断n机器错误中断7UNIX中的系统调用n与进程管理和控制有关的系统调用n fork、exit、wit、signl、kill。nsemget、semop、semctl。n与文件系统有关的系统调用n cret、open、close、red、write。n 远程进程通信n socket、connectn其它系统调用 times85.2.3 中断的响应和实现过程每当执行完一条指令,检测有无中断请求。不同的中断类型规定了不同的优先级,中断嵌套。根据中断源找出相应的中断处理程序入口地址,以便转去执行。中断矢量存放中断处理程序的地址。保护现场,指令断点,运行参数和条件,现运行程序状
5、态寄存器PS的内容以及累加器或通用寄存器的内容和标记 中断屏蔽。95.2.4 中断处理程序和驱动程序UNIX把设备作为一种虚拟的文件对待,每个设备有一个象文件名那样的名字,可以对它象一个文件那样存取在UNIX系统中,将设备分成两类:块设备和字符设备。核心与驱动程序的接口是由块设备开关表和字符设备开关表描述的105.2.5 中断的返回与恢复nUNIX的中断处理都是在核心态下进行的。n如果中断前处理机状态为核心态,则在执行完设备处理子程序后就恢复现场,然后用中断返回指令回到中断前状态,继续执行被中断的操作系统程序。n如果中断前为用户态,则在执行完设备处理子程序后,先要检查标志runrun是否设置。
6、115.3 操作系统与时钟系统n在计算机系统中可分为三类时钟:n系统时钟(system clock)、n日历时钟(time of dy clock)n实时时钟(reltime clock)n5.3.1 时钟的概念n系统时钟主要用于控制系统处理器执行指令的速率。n日历时钟产生一个精确的时间计数,程序对此进行转换,给出与日历相符的日期和时间。n实时时钟每秒提供若干个时钟中断,提醒处理器有重要的事情要做。125.3.2 UNIX系统中的时钟管理n 每隔20ms处理的工作如下:n计算当前进程在用户态或核心态下的累计运行时间,将u.u_utime+或u.u_stime+。n当前运行进程p_cpu加1。n
7、处理延时启动终端打印机的工作。clock若发现延迟时间到了,则重新启动对应的输出驱动程序。n 每秒一次处理的工作如下:n日历时钟变量time加1。n 所有进程的内存或对换区的驻留时间p_time+,所有目前未运行进程的p_cpu除以2。135.4 操作系统对I/O的控制n5.4.1 I/O设备的资源分配nI/O地址n 进行正确的I/O地址设置 nI/O中断请求n 争用剩余的中断请求号,也会产生冲突。nDM数据传输通道n 对争用同一个DM通道的I/O设备需要进行协调和重新配置。nI/O缓冲区n 这个系统资源也是I/O设备争用的。145.4.2 I/O通道技术nI/O通道是一种硬件设施,带有专用处
8、理器的、有很强I/O处理功能的智能部件。n可以独立地完成系统处理器交付的I/O操作任务,通道具有自己专门的指令集,即通道指令。n通道执行来自处理器的通道程序,完成后只需向系统处理器发出中断,请求结束。n字节多路通道主要用于连接大量低、中速、以字节作为传输单位的I/O设备。n选择通道主要用以支持高速设备(如磁盘),每次只对一个设备进行数据传输。n成组多路通道以分时方式同时执行几道通道程序,每条通道指令可以传送一组数据,155.4.3 I/O缓冲技术n提高中央处理器与外设的并行程度n可以采用硬件缓冲和软件缓冲两种方式n软件缓冲是借助操作系统的管理,采用内存中的一个或者多个区域作为缓冲区。n缓冲区的
9、数量可根据不同的系统和操作来确定,常用的缓冲技术有三种:双缓冲、环形缓冲和缓冲池。165.5 设备管理的数据结构n5.5.1 设备控制表(DCT)n提供若干高级I/O系统调用,用这些抽象的I/O操作把用户与复杂的I/O设备操作隔离,隐藏设备操作的细节,有利于编写与设备无关的程序。n要完成抽象到实际的映射,通常采用称为设备控制表(DCT)的数据结构来完成。它记录每一个抽象设备描述、对应的实际设备地址、所使用的设备驱动程序等参数。17设备读red抽象操作 n red(dvcrp,buf,size)n int dvcrp,size;/*设备标识符、数据块大小*/n chr*buf;/*缓冲区指针*/
10、n n struct devtb*devptr;/*指向设备表的指针*/n if(isbddev(dvcrp)/确认设备标识符是否有效 n return(SYSERR);/*无效,系统返回出错*/n devptr=&dctdvcrp;/*有效,找到对应设备表项*/n return(*devptrdvred)(devptr,buf,size)n/*将参数传向设备驱动程序并返回*/n 185.5.2 设备开关表n针对各类设备不同的物理特性,系统为它们各自设置了一套子程序,它们包括打开、关闭和启动子程序。n系统为每类设备又设置了一数据结构,存放这些程序的入口地址,该数据结构称为设备开关。195.6
11、磁盘的调度5.6.1 物理特性磁盘一般用于文件存储,盘上信息的地址是多重编址的,包括驱动器号、面号、道号、扇区号。存取盘块中信息的时间:寻道时间 100ms等待时间 10ms传送时间 1ms205.6.2 磁盘调度算法n先来先服务调度(FCFS)n最短寻道时间优先法(SSTF)215.6.2 磁盘调度算法(续)n扫描法(SCN和C-SCN)225.7 UNIX系统V的设备管理 n1缓冲控制块bufn在系统初启时,核心根据内存大小和系统性能要求分配若干缓冲区。一个缓冲区由两部分组成:存放数据的内存区(一般称为缓冲区)和一个缓冲控制块。缓冲区和缓冲控制块是一一对应的。系统通过缓冲控制块实现对缓冲区
12、的管理。5.7.1 UNIX块设备管理的主要数据结构 23nstruct bufnnintb_flgs;/*缓冲区标志*/nstruct buf*b_forw;/*设备队列前向指针*/nstruct buf*b_bck;/*设备队列后向指针*/nstruct buf*v_forw;/*自由队列前向指针*/nstruct buf*v_bck;/*自由队列后向指针*/ndev_tb_dev;/*逻辑设备号*/nunsigned b_bcount;/*传送数据字节数*/nunion n cddr_t b_ddr;/*缓冲区内存首地址*/n struct filsys *b_filsys;/*超级块*
13、/n b_un;ndddr_t b_blkno;/*在磁盘上数据的块号*/n bufNBUF;24nb_flgs反映缓冲区的使用情况和I/O方式,如忙或闲、数据有效性、“延迟写”、正在读/写、等待缓冲区空闲等。n从buf的组成可见,它不仅包含了与使用缓冲区有关的信息,也记录了I/O请求及其执行结果。所以一般而言,buf既是缓存控制块,同时又可以是针对该缓存进行的I/O请求块。n为管理方便,系统还设置了自由缓存队列控制块bfreelist和进程图像传送控制块swbuf。这两个块结构与buf结构相同,但只用部分项,其余则弃之不用。252块设备表 nstruct iobufnn int b_flgs
14、;/*该设备队列的状况标志*/n struct buf *b_forw;/*指向本设备的第一个缓冲区*/n struct buf *b_bck;/指向本设备的最后一个缓冲区nstruct buf *b_ctf;/*指向本设备I/O请求队列n 中第一个缓冲区*/nstruct buf *b_ctl;/*指向本设备I/O请求队列n 中最后一个缓冲区*/ndev_t b_dev;/*设备名*/nchr b_ctive;/设备正在执行一个I/O请求的标志ncht b_errcnt;/*出错计数*/n;263块设备开关表n存放各类块设备管理程序的入口地址nstruct bdevswnnint(*d_op
展开阅读全文