Изменится ли совокупная скорость чтения-записи с HDD-диска при условии работы нескольких процессов?
Доброго вечера.
Вопрос без практической цели, просто интересно. Допустим, имеется HDD, и с раздела А на раздел D что-то копируется. Очевидно, что тут все просто: головки находят нужные блоки и записывают их в указанное место, все это сдабривается технологиями временного кэширования данных в памяти.
А что, если процессов копирования несколько, и все они - с разными пакетами файлов и из разных разделов \ физически расположены на разных блинах? Как будет вести себя диск в данном случае? Будет ли он "метаться", поочередно удовлетворяя нужды каждого из процессов (в таком случае, совокупная скорость снизится из-за расходов на постоянные перемещения головок впустую), либо контроллер \ ОС оптимизирует все таким образом, чтобы считывание и запись происходили постоянно, с минимальными потерями эффективности (в таком случае, совокупная скорость либо не изменится, либо незначительно снизится)?
Естественно будет метаться по поверхности.
До разделов винту до лампочки он о них даже не знает.
Ему приходят команды прочитать блок отсюдава блок оттудава записать еще куда-либо, он их и исеолняет
Контроллер ничего не знает про файловую систему, ОС ничего не знает про физические "блины", поэтому потери будут не минимальные.
Контроллер диска будет пытаться оптимизировать запросы в меру своей разумности и размеров кэша самого диска, но все равно будет метаться.
адресация CHS (cylinder/head/sector) давным-давно умерла. теперь для ОС это только циферки .
сейчас блоки адресуются линейно LBA а уже контроллер диска их по своему алгоритму формирует в правильную очередь доступа к конкретным циилиндрам.
SyavaSyava, Может быть в каких-то старых системах было так, сейчас ОС полностью доверяет оптимизации микрокода контроллера, и не может знать какая информация считается с блина, какая с кэша контроллера диска, а какая с перемапленного бэд сектора.