收藏 分享(赏)

第9章设备.ppt

上传人:kpmy5893 文档编号:10094101 上传时间:2019-10-09 格式:PPT 页数:46 大小:679KB
下载 相关 举报
第9章设备.ppt_第1页
第1页 / 共46页
第9章设备.ppt_第2页
第2页 / 共46页
第9章设备.ppt_第3页
第3页 / 共46页
第9章设备.ppt_第4页
第4页 / 共46页
第9章设备.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、第9章 UNIX的设备控制技术,9.1 设备管理的基本概念 OS中完成I/O控制部分是设备管理模块. 1. 设备管理模块的功能提高设备使用率方便用户使用设备方便对设备的控制与管理用户使用设备可以与设备特性无关,2. 设备分类管理技术 1)按设备的交互对象分人机交互设备-显示器、键盘、打印机与机器交互设备-磁盘、传感器、控制器与通信关联设备-网卡、调制解调器 2)按设备的交互方式分输入设备(可读)-键盘、扫描仪、CD-ROM输出设备(可写)-显示、打印输入/输出(可读写)-磁盘、网卡,3. I/O传输控制技术 1)中断控制方式I/O操作由系统控制程序发起I/O完成后向CPU发中断请求等待下一条C

2、PU指令,3)按外设特性分类按使用特征-存储、输入/输出、终端按数据传输率-低速、高速、中速按信息组织特征-字符处理、块处理 UNIX系统是按照信息组织特征分类的。,2)DMA控制方式 控制程序完成DMA控制器设置,CPU可转去其它处理,接到中断时再进行DMA处理。,DMA内部控制结构,3. I/O管理的通道控制方式,通道控制器有专用存储器,可以执行由通道指令组成的通道程序,可以进行更为复杂的I/O控制过程。,9.2 UNIX 设备管理结构,1. UNIX设备管理体系结构,对设备的管理分为有缓存I/O和无缓存I/O。,2. UNIX设备分类标识方式 按设备存储信息特征分成字符和块设备两大类,在

3、大类下再分类。,其中:类-按设备功能划分的大类,如打印机、硬盘等子类-按设备具有的特性划分,如串行打印、并行打印型号-对子类的进一步划分,如HP8000、5000、4000、2000等系列打印机,设备配置信息的统一管理,如:AIX中设备分类数据库是ODM(output device manage),可用命令进行操作: # lsdev -P -H 列出系统中支持的所有外设信息 # lsdev -P c tape 列出系统支持的所有磁带机信息. #lsdev -C -H 列出所有可用外设 #lsdev -Cc memory 显示当前系统的内存信息,3 . Unix 的物理设备,物理设备-是与计算机

4、系统相连的物理硬件,设备通过设备控制器与计算机相连,提供标准的接入端口。一般符合计算机制造的工业标准,如:并口、串口SCSI、IDE口等。,Unix设备在文件目录树中占一个节点,它有文件名、对应的索引节点、文件类型信息、文件访问权限控制信息等。但设备又有其特殊性,管理中要加以区别。,块设备 - 信息存储在可寻址的固定大小的数据块中,块可为:512-32768之间不等的字节数,块设备可完成读、写单个数据块信息的操作。,字符设备 - 信息发送和接受按字符流方式进行,访问中无法进行编址,没有寻址操作。打印机、网络设备、鼠标属于字符设备。,4. UNIX描述的逻辑设备逻辑设备是从用户的请求层到系统的物

5、理层的一个中间过度层。逻辑设备类似于一种软件协议,它使用驱动程序构筑用户与外设的访问通路。应用程序的数据通过逻辑设备传递给物理设备,物理设备的每一个反馈信息也必定要通过逻辑设备进行传递。,用户应用程序,逻辑设备,操作系统核心程序,设备驱动程序,设备控制器,物理I/O设备,OS控制,用户数据通过逻辑设备与物理设备的交换关系图:,9.3 设备状态及设备控制,1.设备状态及其转换,设备状态反映设备在系统中使用的情况,UNIX系统设定三种设备状态:,1)undefined-未定义态,设备没有安装,系统中没有该设备的任何信息。 2)defined-已定义态,设备已定义但暂不能使用,系统中已有该设备的逻辑

6、名、端口定义及其它信息。 3)arailable-可用态,信息齐全状态,设备可用。,设备的状态可用超级用户命令或系统工具进行转换,在AIX中设备转换关系如下图所示:,undefined,defined,available,mkdev-l,rmdev-l,mkdev,Rmdev -d-l,rmdev -d-l,mkdev-d,2. 设备控制策略,1) Unix的中断和陷入总控程序,对突发事件Unix分成两类:陷入-突发事件与当前执行进程有关,如:系统调用、指令出错、算法溢出等中断-与当前进程无关的突发事件,如:I/O传送完成,时间片到等。,System v的总控程序用汇编写成是:trap.s,2

7、)设备中断属于系统中断的一个分类,进程调度中断-软中断事件引起时钟中断-系统时钟定时引起电源失效中断-高优先级中断机器故障中断-高优先级中断设备中断-按设备适配器特性分级,3) /dev 目录,此目录存放所有被用户访问的逻辑设备文件。 用 ls命令可看到一些典型信息:,crw- - w - - w - - 1 root 54 2 Dec 9 11:32 rfd0 b r w - r w - r w - 2 root 16 2 Mar 9 16:04 fd0,对照普通文件的列表是:,- r w x r - x r - x 1 chr seris 4663 Feb 2 08:51 a.out -

8、r w - r - - r - - 1 chr seris 723 Feb 2 08:50 abc.c,块设备比字符设备定义级别高: 可将块设备定义成字符设备,在原块设备名前加“r”。,设备文件增加了:主设备号-描述设备的大分类(按设备类型)次设备号-描述大分类中的某型号标识,系统管理员用 命令创建设备文件: mknod -创建一个设备文件,包括主、次设备号的设定。,1. 设备驱动程序 驱动程序是管理I/O设备与计算机系统配合动作的程序,包含了与设备相关的代码。,分析用户的请求信息,用户请求转换,向设备发动作指令,接受设备反馈信息,9.4 设备驱动与文件系统的联系,1)主要完成的工作:,2)驱

9、动程序与设备接口间的关联,通常系统中的设备驱动程序与设备的类相对应。Unix的核心程序和设备驱动之间的关系如下图:,文件系统,字符设备开关表,块设备开关表,驱动程序 设备中断处理程序,驱动程序 设备中断处理程序,中断向量,中断向量,设备中断,open,close,read,write,ioctl,Open mount,close umount,read,write,open,close,read,write,ioctl,open,close,strategy,高速缓存调用,2. 设备驱动与文件系统的关系,9.5 块设备的高速缓存机制,Unix核心程序用“数据缓冲高速缓存”结构提高块设备的使用效

10、率。 1、什么是“高速缓存区”,。系统启动时,核心程序分配缓冲区 。高速缓冲区中包括着最近访问过的磁盘信息 。它的逻辑位置处于文件系统和块设备之间 。每次访盘都会更新“高速缓存区” 。“高速缓存区(buffer cache)”是软件数据结构,与硬件的“cache”不同,2、“缓存区”的构成及管理内容,每个缓存区由两部分构成:存放数据的缓冲数据区-以缓冲池形式组成包含控制信息的数据结构-缓冲控制块,在访盘中系统对“缓冲数据区”要进行:缓冲控制块的设置缓冲池的组织缓冲区的分配与释放,3、缓冲控制块的设置,缓冲数据区中的数据是文件系统的逻辑块映象(按时点看),缓冲控制块对其进行纪录、控制和管理。基本

11、控制块为:,设备号,盘块号,状态,指针,指针,指针,指针,指针,指向数据缓冲区,指向散列队列后继缓冲区,指向空闲表的后继缓冲区,指向散列队列的 前一个缓冲区,指向空闲表的前一个缓冲区,继续,4、缓冲池结构,Unix System V用200个缓冲区构成块设备的缓冲池,每个缓冲区长为512/1024字节。缓冲池结构的用途:用缓冲控制块中信息对缓冲区进行操作用缓冲池的构造,可方便合理的完成操作缓冲控制块和缓冲数据区一一对应。,空闲缓冲区队列,空闲队首,Buf-1,Buf-2,Buf-n+1,开始状态:,使用中状态:,Buf-0,释放Buf,缓冲池结构,b0 mod 4,散列队列链首,b1 mod

12、4,b2 mod 4,b3 mod 4,空闲链首,28,4,64,17,5,97,98,50,10,3,35,99,5、缓冲区的分配与释放操作,对于缓冲池中的缓冲区进行分配与释放是通过一系列内部操作完成的,包括: 。从b链缓冲区分配 getblk 。从空闲缓冲区分配 geteblk 。缓冲区释放 brelse,介绍缓冲区的分配与释放过程:,Geteblk 过程,空闲队列空吗?,开始,挂起等待,摘下一缓冲区,状态=延迟写?,此buf链入请求b链,按块外存址写回,返回,空,非空,延迟写,否,Getblk过程,开始,是否在b 链?,从空闲链首摘一个,空闲链空?,等待,是否被锁?,此buf链入请求b链

13、,返回,等待,否,是,是,否,是,否,Brelse过程,开始,从某b链中摘下一 缓冲区,链入空闲链尾部,返回,9.6 设备的读写访问,1、对块设备的读写 对磁盘块的读写实际上是完成从磁盘到缓冲数据区的读写。 读数据可用两种方法实现:,。 一般读(bread) 用户级接口:输入要读文件的逻辑块号;输出包含读入数据的缓冲区指针。 系统完成:*为逻辑块找一个缓冲区(getblk算法)* if(缓冲区有效)return(buf);* 启动磁盘完成读* sleep * return(buf),。预先读(breada),用户级接口:输入要立即/异步读的逻辑块号;输出包含读入数据的缓冲区指针。 系统完成:针

14、对输入的逻辑块,系统异步地预先将紧挨其后的磁盘块装入缓冲数据区,当需要时可直接使用,以减少读盘次数提高读取速度。,写数据可用三种方法完成:,。同步写(bwrite)-输入参数是“缓冲区”,无输出 。异步写(bawrite)-驱动程序只发动作指令,不等待输出返回。 。延迟写(bdwrite)-作写标志、释放缓冲区,但到有bwrite时才真正的完成写。,继续,2、磁盘驱动程序流程,将设备号、块号换成磁盘的物理扇区号,启动磁盘做传送动作 扇区 缓冲区,传送完成后,产生I/O中断,中断完成后唤醒等待进程,接收下一个I/O请求,3. 字符设备的管理,字符设备管理也采用缓冲技术。 1、字符设备管理中的数据

15、结构 Unix system V中,字符设备缓冲池由150个缓冲区(cblock)组成,每个缓冲区可容纳64个字符。,链指针,第一个字符位置,尾部字符位置,缓冲字符区,字符缓冲区结构:,.,空闲缓冲区队列(cfreelist):,cfreelist,Cblock1,链指针,Cblockn,NULL,初启时150个缓冲都链在空闲缓冲区队列上。 对此队列的分配与释放在队首进行。,已分配的I/O缓冲队列:,可用字符数,队首区指针,队尾区指针,Cblock,链指针,Cblock,NULL,每个不同字符设备对应一个字符缓冲区,2、对字符缓冲区队列的操作,操作可分为两大类:对空闲缓冲队列操作;对I/O缓冲

16、队列的操作。可分解成六种操作:,1)从空闲缓冲区队列中摘下一个缓冲区分配给某个驱动程序使用。 2)将I/O缓冲区释放后放入空闲缓冲队列 3)从I/O缓冲队列中提取一个字符,并调整队列的字符计数。 4)将字符放入I/O缓冲队列的尾部 5)从I/O缓冲队列中每次移走一个缓冲区或n个字符 6)向缓冲队列中每次送入一个缓冲区或n个字符。,这些操作在Unix中对应的函数有:,。getcf-申请一个空缓冲区 。 putcf-释放一个空闲缓冲区 。 getc-从I/O缓冲队列中第一个缓冲区中移走一个字符 。putc-向字符队列的尾部送单个字符 。getcb/putcb-取头一个/向尾部链一个缓冲区 。get

17、cbp/putcbp-取头n个字符/向尾部写入n个字符。,9.7 Linux磁盘设备管理问题,1、磁盘控制器的类型 。ST506控制器 。集成驱动器电路接口 IDE 。增强型IDE接口EIDE 。小型计算机系统接口SCSI,2、磁盘驱动器的管理,1)磁道、磁头、扇区 磁盘上的任何位置可用C/H/S描述。,2)主引导记录(MBR) 存放分区表、启动pc时BIOS加载运行的代码 3)分区 用于分辨每个区的不同处理方式 4)磁盘设备在Linux中的设备名 按驱动器分: 。IDE:第一个盘为/dev/hda,第二个为/dev/hdb 。EIDE有主从之分:硬盘/dev/had, 光驱/dev/hda

18、。SCSI:/dev/sda, /dev/sdb 驱动程序按不同的驱动接口分别编写。,3、设备驱动程序与外界的接口,字符/块设备为内核程序提供统一的调用接口,内核用统一方法处理不同设备,系统中维护着一个设备对应数据结构。 Linux设备驱动程序与外界的接口 : (1)驱动程序与操作系统内核的接口,通过数据结构file_operations完成。 (2)驱动程序与系统引导的接口,利用驱动程序对设备进行初始化。 (3)驱动程序与设备的接口,描述了驱动程序如何与设备进行交互,与具体设备密切相关。,设备驱动与外界间的接口示意图:,4、设备驱动程序的组成,(1)自动配置和初始化子程序 负责检测所要驱动的硬件设备是否存在以及是否能正常工作 。 (2)服务于I/O请求的子程序 为驱动程序的上半部分,系统调用对这部分进行调用。在执行时与调用的进程归为同一个进程 。 (3)中断服务子程序 为驱动程序的下半部分。中断服务子程序被调用时不依赖于任何进程的状态,独立执行的设备操作程序。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报