nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 25 Feb 2021 19:23



Reply to topic  [ 19 posts ]  Go to page Previous  1, 2
Математические функции 
Author Message
Maniac

Joined: 05 Oct 2009 20:44
Posts: 221
Location: 212.164.105.5
Reply with quote
Alekcandr wrote:
Странно, что FAT16 быстрее FAT12. По моим данным это не так. Ну да ладно.

Применительно к теме можно посмотреть исходники Nextor и как там реализуется математика применительно к FAT16. Функции деления 32/16 в чистом виде не нашел, может плохо искал.

не знаю как ты считал, но при работе с кластерами FAT12 расходов больше, т.к. требуется деление на 3 и умножение на 2, чтобы просто прочитать номер кластера. ВНЕЗАПНО, он занимает полтора байта. т.к. 12 бит. и ещё там есть понятие чётные и нечётные кластера (через маску высчитывают). а FA16 просто берут и 2 байта снимают из таблицы.


21 Feb 2021 07:29
Profile
Doomed

Joined: 01 Oct 2007 11:30
Posts: 610
Location: Ukraine
Reply with quote
Sayman wrote:
Alekcandr wrote:
Странно, что FAT16 быстрее FAT12. По моим данным это не так. Ну да ладно.

Применительно к теме можно посмотреть исходники Nextor и как там реализуется математика применительно к FAT16. Функции деления 32/16 в чистом виде не нашел, может плохо искал.

не знаю как ты считал, но при работе с кластерами FAT12 расходов больше, т.к. требуется деление на 3 и умножение на 2, чтобы просто прочитать номер кластера. ВНЕЗАПНО, он занимает полтора байта. т.к. 12 бит. и ещё там есть понятие чётные и нечётные кластера (через маску высчитывают). а FA16 просто берут и 2 байта снимают из таблицы.
Я не готов обсуждать тонкости математики у FAT12 и FAT16, поэтому и привел ссылку на исходники. Человек при желании, которой в теме, на мой взгляд, сможет найти там для себя полезности, в том числе и математические трюки (не взагали, а применительно к математике FAT).

А что до скорости все просто. У FAT16 кластеров намного больше, соответственно для конечного пользователя файловые операции (не все) и происходят медленней.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


21 Feb 2021 09:33
Profile
Maniac

Joined: 05 Oct 2009 20:44
Posts: 221
Location: 212.164.105.5
Reply with quote
Alekcandr wrote:
Я не готов обсуждать тонкости математики у FAT12 и FAT16, поэтому и привел ссылку на исходники. Человек при желании, которой в теме, на мой взгляд, сможет найти там для себя полезности, в том числе и математические трюки (не взагали, а применительно к математике FAT).

А что до скорости все просто. У FAT16 кластеров намного больше, соответственно для конечного пользователя файловые операции (не все) и происходят медленней.

Ну я с этими фатами давно уже работаю и знаю как это всё внутри выглядит. Да и msx-dos2/Nextor, тоже есть и видел их внутренности. Плюс ещё для Профи PQ-DOS тоже есть исходники.
Да и математика работы с кластерами довольно простая и базируется на битовых сдвигах, кроме фат12, сдвигами деление на 3 сложнее сделать. Учитывая, что для взятия 1 кластера, приходится читать 2 и в зависимости от чётности кластера искомый будет либо левые полтора байта, либо правые. в общем тот ещё гемор.
а на fat16 таких операций не требуется. берём 2 байта с кодом следующего кластера, номер кластера преобразовываем в номер сектора, прибавляем стартовый сектор раздела относительно начала hdd и читаем. кол-во кластеров диска и фата на скорость никак не влияют, влияет фрагментированность файла. но и тут тоже есть пара хинтов. в основном все тормоза возникают только на механических дисках. на твердотельных дисках даже фрагментированность не затормаживает доступ.
математика 32:16 которая мне нужна была, она для утилиты форматирования. ну и вообще, было бы неплохо старые процедуры поменять. раз они проблемные оказались.


21 Feb 2021 11:27
Profile
Doomed

Joined: 01 Oct 2007 11:30
Posts: 610
Location: Ukraine
Reply with quote
Все так с вычислением / путешествием по FAT.

Только влияет, влияет количество кластеров, что тянет за собой и размер таблицы FAT, и объем сканирования FAT для подсчет свободного дискового пространства в файловых операциях, и т.п.

Вот и выходит, что для конечного пользователя 8 битки MSX-DOS, или FAT подобная ОС с FAT12 самая шустрая.

Sayman wrote:
математика 32:16 которая мне нужна была, она для утилиты форматирования. ну и вообще, было бы неплохо старые процедуры поменять. раз они проблемные оказались.
Так может банально Си? Не так быстро, но и не часто оно нужно. Отформатировал и забыл.

_________________
Эмулятор OrionEXT:
http://www.orion-ext.narod.ru


22 Feb 2021 11:48
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 19 posts ]  Go to page Previous  1, 2

Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.