Не так давно публиковался две статьи об устройствах хранения информации от перфокарт до SSD накопителей, включая статью об оперативной памяти. Вот ссылка
Во время работы над циклом не хотелось слишком уходить в сторону от исключительно аппаратной темы, поэтому многое осталось недосказанным. В основном это касается нюансов, а порой и курьёзов, которые опускались отчасти ещё и для того, чтобы статьи не были слишком длинными, но одну тему хочу рассмотреть отдельно, поэтому опять история начинается с перфокарт.
Простые аналоговые носители двоичного кода не были перезаписываемыми сами по себе, но поскольку, как правило, нужные данные состояли из целой колоды перфокарт, то в случае частичного изменения данных либо повреждения отдельных карт они заменялись, оставляя остальную часть колоды прежней. С некоторой натяжкой это можно назвать частичной перезаписью массива.
У следующего поколения накопителей проблем с перезаписью не было, те же кассеты и другие форм-факторы магнитной ленты являются многоразовыми, вот только скорость доступа к случайному месту у них очень низкая, поэтому перезаписывать приходилось всю кассету при необходимости. Ситуацию с перезаписью в корне изменили накопители на магнитных дисках!
Перезапись дискет и жёстких дисков целиком была нецелесообразна, к тому же не всегда возможна, ведь и сейчас нередки компьютеры с одним основным накопителем информации. Единственно верным решением стала перезапись отдельных файлов, и здесь нужно было решить сразу две проблемы. Во-первых, необходимо было знать, где именно на диске расположен конкретный файл. Обозначить вторую проблему помогла визуализация.
Для простоты представим фрагмент диска в виде знакомой всем таблицы Exсel.
Вторая строчка - прямое продолжение первой. Не имеет значения как представить на схеме поверхность диска одномерным, двух- или даже более мерным массивом. Разные цвета здесь символизируют различные файлы. Диск начинается с зелёного файла размером 3 ячейки, затем следует синий на 2 ячейки и так далее. В конце же одна ячейка - это свободное пространство. Допустим, требуется удалить синий файл. Удаляем:
Теперь четыре файла и три свободных ячейки. На диск поместится ещё трёхячеечный файл. Вот только как его записать, не перезаписывая весь диск? Возможен лишь один вариант:
Был записан чёрный файл длиной три ячейки и размещён одновременно в двух местах диска. Теперь весь диск занят, а чёрный файл находится одновременно в двух местах. Проблемы обозначены, будем решать их в следующей части.
Для организации хранения и доступа к файлам, которые могут находится не просто в произвольном месте диска, а даже состоять из нескольких частей, были разработаны файловые системы. По сути, это набор правил или стандарт, описывающий, как следует записывать и читать информацию. На данный момент существуют десятки файловых систем для различных нужд, хотя в быту мы часто сталкиваемся лишь с несколькими - это в первую очередь NTFS на компьютерах, разновидности FAT на носимых устройствах и флешках и разновидности EXT на внутренней памяти смартфонов и на компьютерах под управлением ОС Linux.
Первые файловые системы были значительно проще современных, им достаточно было уметь располагать и читать файлы, а также их атрибуты, включая имя, дату создания и т.п. Кроме файлов тогда были такие объекты, как каталоги (папки). Сегодня как таковых папок в физическом плане не существует, а то, что мы видим, является лишь отображением специальных записей в базах путей файлов или в реесте. Иногда это можно даже увидеть. Если убрать всё содержимое из папки на домашнем экране Android или в плиточном меню Windows 10, то такая папка исчезнет.
Проблема же разделения файлов на части оказалась серьёзнее, и универсального решения для неё не существует до сих пор, хотя её актуальность сейчас всё меньше, и, скорее всего, наших потомков она не будет волновать, хоть и останется нерешённой никогда.
Суть этой проблемы в скорости доступа к разным частям файла. В нашем примере "чёрный файл" был разбит на два фрагмента:
В реальной жизни крупные файлы порой разбиваются на сотни, а то и тысячи фрагментов, расположенных в разных местах диска, и во время работы с ними приходится постоянно перемещаться между кластерами, что вызывает определённые задержки. Эти задержки особенно заметны при работе с дискетами, но и жёсткий диск со временем значительно замедляется.
Данная проблема получила название фрагментации, и для её решения был предложен грубый, но единственный тогда выход. Обратный процесс назвали дефрагментацией. Суть процесса состоит в перезаписи всего диска с временным размещением перезаписываемых файлов на этом же диске. Обычно в конце. Процесс визуализировали для пользователей. Когда-то им можно было любоваться часами.
Во время первых версий дефрагментации не рекомендовалось использовать компьютер для тяжёлых задач, чтобы избежать записи на диск хоть чего-то, поскольку в этом случае дефрагментация начиналась заново.
Время шло. Совершенствовались методы дефрагментации, совершенствовались файловые системы. Когда была представлена файловая система NTFS, её разработчики заявили, что данному стандарту не страшна фрагментация файлов. По факту оказалась страшна, разве что чуть меньше, чем FAT.
Усовершенствованные алгоритмы дефрагментации сделали возможным совместить этот процесс с работой с диском. Фоновая дефрагментация стала в своё время прорывом и не важно, что могла длиться сутками, главное, что не останавливала работу.
Производители жёстких дисков увеличивали их оперативную память, используемую для предварительного кеширования, скорости доступа, прередачи данных. Всё это в некотором смысле смягчило последствия фрагментации дисков, а потом пришли SSD и поставили точку а данном вопросе.
Твердотелые накопители не имеют подвижных частей. Им буквально всё равно откуда читать данные, поэтому проблема дефрагментации в принципе канула в лету. Да, бывают случаи, когда для определённых задач требуется дефрагментация SSD, кроме того, если вы работаете с задачами, требующими даже по современным меркам сверхбыстрых скоростей чтения / записи, то можете столкнуться с этой проблемой на самых быстрых SSD, потому что всё равно им не абсолютно, будут микросекунды задержки. В системах же для дома, равно как и для малого и среднего бизнеса, даже функция дефрагментации SSD не предусмотрена.
Если понравилась статья, то ставьте ЛАЙК 👍, делитесь в социальных сетях, ПОДПИСЫВАЙТЕСЬ на канал, оставляйте комментарии.