imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 20.05.2009, 20:08     # 1
Sortudo
Guest
 
Сообщения: n/a

Как рассчитать размер кластера, при котором потери дискового пространства минимальны?

Как рассчитать размер кластера при котором потери дискового пространства будут минимальны?
Мои мысли:
Размер кластера зависит от размера файлов, хранящихся на диске.
То есть, если на диске в основном большие файлы, то кластеры, также должны иметь большой размер т.к. обращений к диску в этом случае будет меньше.
Если на диске маленькие файлы, то размер кластера нужно выбирать средний, иначе если кластер большой(допустим 64Кб) а на диске файлы маленькие(3 или 5 Кб), то получится что файл размерам 3 Кб будет занимать на диске 64 Кб, а если таких файлов много то потери дискового пространства будут очень велики.
Можно вычислить оптимальный размер так:
остаток(ср.размер файла/размер класт)=0, выражаем отсюда размер кластера и все.
Но этот способ не подходит, так как размер файлов может варьироваться в самых разных пределах. И величина "средний размер файла" не будет отражать реальной картины.
Вообще по идее, нужно задать функцию которая бы описывала "хвосты"(незаполненные участки кластера) и найти min[сумма(ф-ции описывающая хвосты)]. Но как эту функцию задать? Подскажите пожалуйста!
 
Старый 21.05.2009, 00:22     # 2
Borland
СуперМод
IMHO Консультант 2005-2009
 
Аватар для Borland
 
Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 383

Borland - Гад и сволочь
С точки зрения именно минимизации потерь дискового пространства оптимальным является минимально допустимый размер кластера (зависит от используемой файловой системы и размера раздела).

Цитата:
Сообщение от Sortudo Посмотреть сообщение
Но как эту функцию задать?
Для случайного набора файлов произвольного размера потери дискового пространства на неполном использовании кластеров могут быть грубо оценены как половина произведения количества файлов на размер кластера.
Значение этой функции для любой среднепотолочной ФС явно достигает минимума именно при мин. размере кластера...

Вообще говоря, размер кластеров увеличивается (в большинстве случаев) исключительно для повышения производительности дисковой системы (чем меньше кластеров занимает файл, тем быстрее он считывается; особенно заметно на сильно фрагментированных ФС). В случае с FAT, для дисков большого объёма вынужденно используются большие кластеры (в силу присущего этому семейству ФС ограничения на количество кластеров в пределах одного раздела, у фат16 меньше, у фат32 - больше).

Если хотите учитывать в оценке ещё и потери дискового пространства на служебные зоны раздела (та же таблица размещения файлов) - то оценку нужно делать применительно к особенностям используемой ФС. Для FAT/NTFS/ext3 значения получатся существенно разные в силу особенностей их структур.
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила!
Распространенье наше по планете
Особенно заметно вдалеке:
В общественном парижском туалете
Есть надписи на русском языке

В. Высоцкий

Borland вне форума  

Теги (метки)
ext2, ext3, fat, fat16, fat32, ntfs, кластер


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 17:36.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.