1.硬盘了解
Posted xingyi123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.硬盘了解相关的知识,希望对你有一定的参考价值。
1.硬盘
1.1 分类
分类:根据存储数据的介质可以分为机械硬盘(HDD,Hard Disk Drive)和固态硬盘(SSD,Solid State Disk)。机械硬盘采用磁性碟片来存储数据,而固态硬盘通过闪存颗粒来存储数据。
1.2 接口类型
1.IDE接口(ATA)
传输慢,不支持热插拔
2.SATA接口硬盘(Serial ATA,串行ATA) 传输速度大约600M/S,支持热插拔,最大插拔次数仅约200次
3.SCSI接口硬盘(淘汰)
4.SAS接口硬盘(串行SCSI)
SCSI的升级版
1.3 机械硬盘原理
1.机械硬盘内部结构
2.机械硬盘存储原理:
机械硬盘主要由盘片、磁头、主轴与传动轴等组成。
数据存放在磁盘盘片中。
而硬盘是上下双磁头,盘片在两个磁头中间高速旋转,上下盘面同时进行数据读取。
信息通过离磁性表面很近的磁头,由电磁流来改变极性方式被电磁流写到磁盘上。
注意: 机械硬盘的常见转速是 7200 r/min,所以机械硬盘在读取或写入数据时非常害怕晃动和磕碰
1.4格式化
右键我的电脑,管理,设备管理器,磁盘驱动器,查看是否检测到磁盘
右键我的电脑,管理,设备管理器,磁盘管理,进行格式化
图吧工具箱,磁盘工具,HDTune,查看坏道。
在 Delphi 中了解硬盘驱动器的速度
【中文标题】在 Delphi 中了解硬盘驱动器的速度【英文标题】:Know how fast a Hard Drive is in Delphi 【发布时间】:2011-07-30 08:01:25 【问题描述】:我正在编写一个诊断程序(如 everest,但更简单),我需要知道硬盘驱动器的速度。我想知道诸如:
1 - 每秒字节数(读取) 2 - 每秒字节数(写入) 3 - S.M.A.R.T 数据
我想我可以使用 WMI 来查询这样的事情,但我不知道如何。我是否需要购买组件或获取开源组件都没有关系。我也知道 Windows Perfmoon 能够做到这一点,但我不能使用它。
【问题讨论】:
我不回答这个问题,但我认为大文件和小文件的硬盘读/写速度是不一样的。简单的逻辑表明,您应该从 HD 读取/写入一些数据,然后将数据大小除以操作结束和开始之间的时间差(以秒为单位),以分别获得适当的读/写速度。对于 S.M.A.R.T 数据,我不知道。 是的,这是一种简单的方法。但我猜windows有一些可以使用的东西。 Windows 没有任何可以从代码中使用的内置功能,AFAIK。它使用硬盘的性能来提供 Vista/Win7 上的 Windows 体验指数,但我不知道有任何 API 可以从您自己的应用程序连接到该指数。 【参考方案1】:Rafael 要获取 S.M.A.R.T 数据,您可以使用 WMI 或 Windows API。
使用 WMI
WMI classes to obtain S.M.A.R.T
数据是
所有都位于root\WMI
命名空间中。不幸的是,这些类没有很好的文档记录。
使用 WINAPI
要从 Windows API 访问 S.M.A.R.T 数据需要做更多的工作,您必须使用 DeviceIoControl
和 CreateFile
函数传递各自的结构来保存数据。你可以在net 上找到很多这样的示例。
计算硬盘的速度
没有直接公开此信息的 Windows api。所以你必须自己计算。例如,您可以查看此应用程序DISKSPEED
,其中包含 C++ 源代码。他们使用CreateFile
函数设置FILE_FLAG_NO_BUFFERING ($20000000)
标志,使对文件句柄的任何写入和读取都可以直接完成而不被缓冲。
【讨论】:
以上是关于1.硬盘了解的主要内容,如果未能解决你的问题,请参考以下文章