同时对硬盘进行 2 个或更多读取/写入

标签 simultaneous read-write

据说硬盘中只有一个主轴负责向硬盘读取或写入数据,怎么可能同时向硬盘写入或读取2个或更多数据呢?使用的操作系统是Windows XP。例如,我需要将两部不同的电影从笔式驱动器复制到硬盘,所以我单击两部电影从笔式驱动器复制它们并将它们粘贴到磁盘分区中,将两部电影复制到硬盘的过程同时发生。这是怎么发生的?

最佳答案

这些操作根本不是同时进行的,但操作系统同时管理这两个操作。

发生的情况是文件管理器(例如,Windows 资源管理器)告诉操作系统将文件从一个位置复制到另一个位置,两次复制操作各复制一次。

操作系统将此命令分解到其自身系统的两个部分:“文件系统”和“磁盘驱动程序”。文件系统计算出哪个磁盘上的哪些 block 与相关的特定文件相关联,并告诉磁盘驱动程序读取或写入这些 block 。

磁盘驱动程序建立一个读取和写入队列,并找出满足它们的最有效方法。桌面操作系统通常会尝试快速处理这些请求,以使系统尽可能响应,但服务器操作系统会尽可能长时间地对 block 操作进行排队,以便能够按照允许的顺序处理它们最有效地利用 block 排序。

一旦磁盘驱动程序决定执行 block 操作,它就会告诉磁盘移动其磁头并读取或写入一些数据。然后操作的结果被传回文件系统,并最终传回用户应用程序。

操作同时出现的事实只是操作系统的多任务处理功能的幻觉。这很容易辨别,因为多个文件副本比单个副本花费的时间要长一些(或者有时很多更长,如果您试图同时做一堆文件。)

当然,如果两个单独的驱动器确实是不同的磁盘,操作系统仍然能够同时移动它们。

关于同时对硬盘进行 2 个或更多读取/写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6834724/

相关文章:

matlab - 如何在Matlab上同时运行两个程序?

Python 同时变量递增

ios - 使用 gestureRecognizer : shouldRecognizeSimultaneouslyWithGestureRecognizer

php - 问题让读/写拆分与 PHP mysqlnd_ms 一起使用

python - 如何将 pandas 数据帧逐行写入 CSV 文件,一次一行?

Python:从文本文件读取的打印行之间的空间太大

python - 在另一个文件中搜索一个文件的行并在python中打印适当的行

c - 将二进制文件写入文件会从 C 中先前不相关的 popen 命令中提取不正确的数据

actionscript-3 - Soundchannel的AS3限制?

c++ - 为什么不使用只读 [] 运算符?