scsi驱动程序自动生成器的设计与实现.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
scsi驱动程序自动生成器的设计与实现 自20世纪80年代初以来,scsi(小型计算机接口、小型网络系统接口)产品已广泛用于各种计算机。相应的卡类型少,效率低,基本上失败。国外的外部制造商只生产自己的外部产品,不需要考虑驱动程序的生成。对于国内操作系统,为了适应可变处理器的硬件,需要向用户提供高效的驱动程序,并使用自动生成器生成各种驱动程序。当然,由于模拟器和配套设备的更换和硬件的依赖,开发这种自动生成器是困难的。 本课题组经过近两年的艰苦努力圆满地完成了这一任务,经过实际评测和使用得知,自动生成的COSIX V1.1 SCSI驱动程序接近于UNIX SVR 4.0系统的驱动程序性能,在I/O操作的效率和占用核心空间大小上与传统驱动程序相当.利用这一生成器可大幅度减小SCSI设备驱动程序开发的复杂性,缩短研制周期,并可得到正确并且可信度很高的代码.本文第1节讲述驱动程序生成器的设计.第2节讲述系统的实现.第3节小结. 1 系统设计 1.1 scsi驱动模块设计 SCSI驱动程序生成器的设计与实现必然牵涉到SCSI驱动程序本身的结构设计.为了便于生成器的开发,我们首先为SCSI驱动子系统设计了清晰的层次结构,并使其数据结构和控制流程能灵活地适应不同的适配卡. 我们考察了许多厂家提供的SCSI子系统,深切地了解到不但各个厂家提供的SCSI系统结构不同,就是同一厂家的SCSI系统也不尽相同,而且系统内部结构不清晰.进一步的研究表明,虽然不同厂商的SCSI适配卡因硬件不同,软硬件的接口差异很大,但它们在较高层逻辑上有近似的操作步骤,毕竟它们遵循相同的SCSI规范.为此,在进行生成器总体结构设计时,将SCSI驱动程序在结构上进行划分,把不同适配卡的共性提炼出来,构成逻辑上相对独立的公共模块,而将不同适配卡的差异封装在各自不同的模块内,高层通过相同的函数接口引用.具体来说,我们把生成器分成以下三大部分: (1) SCSI驱动程序公共模块 ① PCI(外设控制接口)设备支持函数库.PCI总线是微机的主流总线结构.COSIX以往的驱动程序编写方法不能适应PCI的灵活性及其特定的规则,因此,提供支持不同PCI设备的底层函数库为将来的系统核心扩展打下了基础.本模块作为SCSI驱动程序的可选模块,用以支持PCI总线上的SCSI适配卡. ② SCSI目标设备模块.此模块包含若干子模块,不同子模块针对磁盘、磁带等不同类的设备.以磁盘目标设备模块为例,它屏蔽了不同容量、不同规格的SCSI硬盘的差异,向高层提供逻辑上完整的连续的磁盘空间. ③ SDI接口及适配卡公共程序模块.COSIX SDI(SCSI驱动程序接口)是UNIX SVR4.0SDI的超集,在其基础上进行了扩充和完善.适配卡公共程序模块作为不同适配卡驱动程序的抽象和公共部分独立成一个模块,供SCSI适配卡驱动程序调用. (2) SCSI适配卡接口函数族 此函数族的地位类似于SDI,只不过它不是针对目标设备,而是针对适配卡设备驱动设计的.对于不同SCSI适配卡,此函数族接口应是最优集合.也就是说,此函数族参与维护的逻辑数据结构数目最小,函数功能最为简单.这部分与不同的硬件结构紧密相关,必须手工干预,以实现其基本功能,并使整个SCSI驱动模块效率最高. (3) SCSI驱动程序生成及维护工具 在具备了上述(1)和(2)的基础上,生成器应能够:① 自动搜索目录结构,寻找适配器接口模块,并能最大限度地检测模块内部的合法性;② 自动生成SCSI驱动程序及系统核心,以便系统程序员分析调试用;③ 根据系统程序员需求,生成不同的打包文件,方便地生成系统安装盘;④ 交互地完成与系统有关的配置,有良好的用户界面,较强的容错性能. 由于不同的适配卡硬件差异很大,同时受到将来硬件升级扩展的约束,SCSI适配卡接口函数族的最优化设计很难100%地得以实现,但设计时将考虑各方面的要求,以实现某种平衡. 在此基础上,形成了生成器的驱动程序框架,并进一步提出了生成器的设计构想,如图1所示. 在图1中,SCSI驱动程序框架(1)内包含SCSI驱动程序公共模仿块.而已有的SCSI不同型号适配器有关函数库(2)中主要包含SCSI适配卡接口函数,这部分函数与各种不同的硬件结构紧密相关,但却是一个个独立的模块.对于(2)中没有而新增的SCSI适配器,只需提供相关的适配器函数(3).在必要的人工干预(5)下通过自动生成软件(4)最终生成所需的SCSI驱动程序(6),当然,生成的SCSI驱动程序还需经过测试打包等过程才能最终完成. 在图1中,生成器由Makefile,Shell命令和应用程序组成,程序员通过一种交互界面控制有关驱动程序生成绝大部分操作.系统中每一工具是交互界面下的子工具,同时又是一个能独立完成固定功能的模块. 1.2 系

文档评论(0)

139****9425 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档