Jerri1977

Jerri1977

на Пикабу
1917 рейтинг 2 подписчика 1841 комментарий 2 поста 0 в горячем
7

Почему на флешку в 16 Gb не получится записать файл такого же объема.

Покупая, например, флешку  неопытный пользователь с удивлением обнаруживает что на его честно купленной флешку вместо заявленных 16Gb после форматирования остается всего  14,9 Gb.


И сейчас на примере дискеты размером 720Kb отформатированной в системе FAT12 я объясню почему так.


Для начала почему дискета? Потому что на небольших цифрах это будет более наглядно и понятно, чем топить сразу в гигабайтах.


Итак дискета

Почему на флешку в 16 Gb не получится записать файл такого же объема. Килобайт, IT, Текст, Операционная система, Длиннопост

У нее две стороны и она отформатирована под ОС MS-Dos стандартной процедурой форматирования. У нее 2стороны*80треков*9секторов*512байт что дает 737 280 байт = 720 Kb в 1440 секторах.


Но для того чтобы использовать записывать данные на диск, нам необходимо как то сохранять информацию на этом же диске, куда и сколько данных мы записали. Минимальная единица записи на диск называется сектор и имеет длину 512 байт.


И мы выделяем самый первый сектор на диске для записи что и где находится.


Все записи на диск адресуются с помощью специальной таблицы, она называется FAT (Таблица Расположения Файлов). Осознавая важность этой таблицы мы её записываем дважды. Длина этих таблиц будет 3сектора*512 байт*2 копии.


Но для работы с диском этого недостаточно. Нам еще нужен самый первый список файлов записываемых на диск. Он называется корневой каталог и содержит всего 112 записей о файлах.


Мы еще ничего не записали, а уже потратили 1+3+3+7= 14 секторов на начальную разметку диска. Хотя для дискеты это всего лишь 1% данных.

Логическая единица записи на диск называется кластер и на нашем диске он состоит из двух секторов 2*512=1024. Создали мы каталог - его длина 1 кб, даже если он пуст. Записали мы  файл размером 1 байт - снова минус один кластер. А их на нашем диске всего 713 штук.


И одним из побочных эффектов такого подхода является перемешивание сохраняемых данных и создаваемых каталогов. Что самым пагубным образом сказывается на скорости доступа к данным.


Ну а теперь когда я немного рассказал о системной информации на диске, перейдем уже к нашей  флешке. При работе с большими объемами памяти проблемы у нас возникают тоже большие. 8Gb это  17 179 869 184 байт. Если использовать такие же мелкие кластеры как на диске то у нас для адресации кластеров понадобятся уже 32 битные числа и под служебную информацию нам понадобится около 8% объема диска.


Но прогресс не стоит на месте и для устройств большего объема были созданы более совершенные способы форматы хранения данных. Одним из них является NTFS.

Она сразу отбирает себе 12% доступного места под хранение служебной информации.

Поэтому на флешку в 16Gb влезает всего 14.9Gb данных.


Спасибо за внимание.

Показать полностью
Отличная работа, все прочитано!