他们特别强调  是 测 。想了很久不清楚。请帮我一下,谢谢。

解决方案 »

  1.   

    我的想法是,写一个高优先级的线程(比如是实时级的),拿到大部分的CPU时间,然后在一个比较长的时间里面反复读写硬盘的某些特定的 磁道 ,这样就不会有太多的误差。可是怎么才能够读写
    特定的磁道呢?
      

  2.   


    我觉得snowroad(雪程)的办法更可行一些。当然了,为了确保独占硬盘,可以适当提高线程优先级,但是,实时级好像有点太高。
      

  3.   

    胡说几句:
        原来写过硬盘的软件故障修复程序(5年前),思路是这样的:我们现在的硬盘接口是IDE或EIDE,其实硬盘有一个单片机,在盘体上,这个单片机是可以编程的,也就是说我们可以不用os和BIOS(大概是int40h)提供的控制代码,而直接象控制一般端口那样,来直接对这个单片机编程,接口地址好像是1f7h开始的一组。
        我原来写过,通过一系列out后,可以读出整个磁道的信息,除了一般所谓的数据(扇区中)外,还有磁道记录格式等等。<-以上我做过,肯定可以,以下我没做过,想来应该也可以->通过对磁道信息的分析,可以知道一个磁道内扇区排列的方式,比如扇区排列顺序是:1、3、5根据这些信息,可以推出交错因子,进而也可以推导出,硬盘控制器(单片机)在读出一个磁道时,要求硬盘转几圈。通过计时器,可以知道硬盘在读出一个磁道数据的准确时间,又知道了硬盘读一个扇区需要转几圈,当然可以大致估计出硬盘的转速了。
        或者通过硬盘控制器,还有更简单的指令可以利用也说不定,忘光了
        说的很简单,其实做起来非常难,当年眼睛都快做瞎了咳
      

  4.   

    谢谢  CaptainIII(山上人) 我可不知道这道题会这么难,看来是豪杰的人对我印象不好,故意不给我机会吧?
    谢谢大家参与,觉得分少了,不好意思啊!!