分析minix磁盘驱动程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分析minix磁盘驱动程序.doc

目录 摘要 1 1 引言 1 1.1 研究背景 1 1.2 研究目的和意义 2 1.3 主要研究工作 2 2 MINIX硬盘驱动程序 2 2.1 MINIX硬盘驱动程序原理 2 2.2 MINIX硬盘驱动程序实现 4 2.2.1 主要数据结构分析 4 2.2.2 主要操作实现 5 3 总结 7 致谢 8 参考文献 8 MINIX磁盘驱动程序研究 摘要 本文对I/O设备及驱动程序进行了分析,主要研究了MINIX硬盘驱动程序的基本原理,通过阅读代码,分析了MINIX硬盘驱动程序所用的主要数据结构及主要函数的实现。 关键词:MINIX,I/O设备,磁盘驱动程序 1 引言 1.1 研究背景 I/O设备作为计算机的一个重要组成部分占据整个操作系统的相当部分,对计算机的整体性能有很大影响。操作系统的主要功能之一是控制所有输入输出设备,它必须向设备发出命令,捕获中断并进行错误处理,还必须提供一个设备与系统其余部分之间的简单易用的接口。设备管理的一个基本特征是设备处理的抽象性,即所有硬件设备都被看成普通文件,可以通过与操纵普通文件相同的系统调用来打开、关闭、读取和写入设备。图1表示了设备访问的层次关系。 图1 设备访问层次图 I/O设备大致可以分为两类:块设备和字符设备。块设备将信息存储在固定大小的块中,每个块都有自己的地址。块设备的基本特征是每个块都能够独立于其他块而读写。磁盘是最常见的块设备。 块设备和字符设备的模型具有足够的一般性,可以作为使处理不同I/O设备的操作系统软件具有设备无关性的基础。例如,文件系统仅仅控制抽象的块设备,而把与设备有关的部分留给较低层软件,即设备驱动程序去处理。 设备驱动程序是操作系统内核和机器硬件之间的接口,设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作,设备驱动程序是内核的一部分,它完成以下的功能:对设备初始化和释放;数据从内核传送到硬件和从硬件读取数据;读取应用程序传送给设备文件的数据和回送应用程序请求的数据;检测和处理设备出现的错误。 1.2 研究目的和意义 计算机CPU的处理速度越来越快,内存和硬盘的容量也越来越大,但是相对于CPU处理速度的增长,硬盘的读写速度增长缓慢,计算机的I/O速度成了计算机系统性能提高的瓶颈。本文主要研究MINIX操作系统的硬盘驱动程序,通过分析MINIX的驱动程序,了解MINIX硬盘驱动的基本原理和设计模式,掌握MINIX的硬盘驱动的实现,加深了对操作系统的理解。 1.3 主要研究工作 本文主要研究了MINIX硬盘驱动程序的基本原理,并对MINIX硬盘驱动程序的实现进行了分析。 2 MINIX硬盘驱动程序 2.1 MINIX硬盘驱动程序原理 不同计算机家族成员使用的处理器不同,而且基本硬件也有很大区别。比较老的奔腾系列使用16位的AT总线,而最新的设计仅仅提供PCI总线。对每一类总线,都有一个与之对应的I/O适配器系列,为了达到这样的可伸缩性,操作系统不应限制只能够使用一种适配器。与总线设计同时配套的还有BIOS中的固件。 为了更好地利用以前的硬件,同时使MINIX能够运行在以前老版本的硬件环境下,则存在至少四种基本类型的硬盘控制器最初的8位XT类型控制器、16位AT类型控制器,以及IBM PS/2系列计算机中两种不同类型的控制器。MINIX主要采用这一方法:在内核中编译几个不同的硬盘驱动程序,提供一种方法使用户决定使用哪一个。这样MINIX引导监控程序允许在启动时读各种引导参数,可以手工输入这些参数,也可以将其永久存放于磁盘上。在启动时如果发现引导参数格式为 label = AT 则在MINIX启动时强制使用IDE硬盘驱动程序(at_wini)。这依赖于at_wini驱动程序分配了这个标号。标号在引导映像编译阶段被分配。 为了减少支持多个硬盘驱动程序所导致的问题,MINIX还做了其他两件事。第一是提供了一个支持在MINIX和ROM BIOS硬盘之间接口的驱动程序,这个驱动程序几乎可以保证在所有的系统下都可以工作,通过使用引导参数 label = BIOS 来选择,不过一般这是可求助的最后一种办法。MINIX处理驱动程序的另一策略是尽可能推迟初始化工作。这样,如果在某些硬件配置中没有硬盘驱动程序可用,则仍然可以从软盘启动,以完成一些有用的工作,只要不访问硬盘,MINIX就不会有任何问题。 硬盘任务的主循环可以执行9种标准请求。因为在硬盘上总有分区和子分区,所以DEV_OPEN请求需要执行大量的工作。当打开设备时,必须首先读入这些代码。 每一个DEV_READ请求、DEV_WRITE请求、DEV_GATHER请求和DEV_SCATTER请求都分成两个阶段来处理:准

文档评论(0)

000 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档