豪杰面试:如何在WINDOWS下 测 出本机硬盘的转速? 他们特别强调 是 测 。想了很久不清楚。请帮我一下,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的想法是,写一个高优先级的线程(比如是实时级的),拿到大部分的CPU时间,然后在一个比较长的时间里面反复读写硬盘的某些特定的 磁道 ,这样就不会有太多的误差。可是怎么才能够读写特定的磁道呢? 我觉得snowroad(雪程)的办法更可行一些。当然了,为了确保独占硬盘,可以适当提高线程优先级,但是,实时级好像有点太高。 胡说几句: 原来写过硬盘的软件故障修复程序(5年前),思路是这样的:我们现在的硬盘接口是IDE或EIDE,其实硬盘有一个单片机,在盘体上,这个单片机是可以编程的,也就是说我们可以不用os和BIOS(大概是int40h)提供的控制代码,而直接象控制一般端口那样,来直接对这个单片机编程,接口地址好像是1f7h开始的一组。 我原来写过,通过一系列out后,可以读出整个磁道的信息,除了一般所谓的数据(扇区中)外,还有磁道记录格式等等。<-以上我做过,肯定可以,以下我没做过,想来应该也可以->通过对磁道信息的分析,可以知道一个磁道内扇区排列的方式,比如扇区排列顺序是:1、3、5根据这些信息,可以推出交错因子,进而也可以推导出,硬盘控制器(单片机)在读出一个磁道时,要求硬盘转几圈。通过计时器,可以知道硬盘在读出一个磁道数据的准确时间,又知道了硬盘读一个扇区需要转几圈,当然可以大致估计出硬盘的转速了。 或者通过硬盘控制器,还有更简单的指令可以利用也说不定,忘光了 说的很简单,其实做起来非常难,当年眼睛都快做瞎了咳 谢谢 CaptainIII(山上人) 我可不知道这道题会这么难,看来是豪杰的人对我印象不好,故意不给我机会吧?谢谢大家参与,觉得分少了,不好意思啊!! 如何使win32程序既有图行界面又有控制台界面 MFC单文档应用程序,我这个需要用到多线程吗? 程序中的线程启动顺序 创建几个DLL 释放申请的内存出错 从广域网中如何定位局域网中的机器 发布两个Macro,定义你的注释快捷键 100分买帮助,求哪位好心人帮我看看这段24bitBMP转8bit的程序,有不解的地方! 哪里有摩记的手机铃声格式文档。都不知道在哪里发问,唯有在这里 ? 请问为什么OWC控件画到窗体上一运行就没有响应? 怎样在win32 dll中使用MFC的部分类 请帮我看看这三个错误,关于MCI的
特定的磁道呢?
我觉得snowroad(雪程)的办法更可行一些。当然了,为了确保独占硬盘,可以适当提高线程优先级,但是,实时级好像有点太高。
原来写过硬盘的软件故障修复程序(5年前),思路是这样的:我们现在的硬盘接口是IDE或EIDE,其实硬盘有一个单片机,在盘体上,这个单片机是可以编程的,也就是说我们可以不用os和BIOS(大概是int40h)提供的控制代码,而直接象控制一般端口那样,来直接对这个单片机编程,接口地址好像是1f7h开始的一组。
我原来写过,通过一系列out后,可以读出整个磁道的信息,除了一般所谓的数据(扇区中)外,还有磁道记录格式等等。<-以上我做过,肯定可以,以下我没做过,想来应该也可以->通过对磁道信息的分析,可以知道一个磁道内扇区排列的方式,比如扇区排列顺序是:1、3、5根据这些信息,可以推出交错因子,进而也可以推导出,硬盘控制器(单片机)在读出一个磁道时,要求硬盘转几圈。通过计时器,可以知道硬盘在读出一个磁道数据的准确时间,又知道了硬盘读一个扇区需要转几圈,当然可以大致估计出硬盘的转速了。
或者通过硬盘控制器,还有更简单的指令可以利用也说不定,忘光了
说的很简单,其实做起来非常难,当年眼睛都快做瞎了咳
谢谢大家参与,觉得分少了,不好意思啊!!