Удалось ужать буфер fat в памяти до всего 1 сектора (256 байт). Производительность системы вернулась на прежний высокий уровень. Боттлнек был в загрузке всего fat и каталога целиком (а они раздулись до 7 КБ), а 16-бииная арифметика не влияет. Теперь fat грузится секторами по 256 байт по мере надобности. То же самое сделаю с буфером каталога. Для удобства и скорости это будет lru кэш на 1-2 КБ (правда, я пока не знаю, как фиксировать время доступа без часов или таймера... хм, а ведь таймер у нас есть!)
Какой формат дискет используется на Специалисте? Открыл odi образ дискеты от Рамфоса, увидел там знакомые D3 D3 D3 ИМЯ. Странное дело, неужели даже дискеты непрерывные, как рам-диск? Fifan, можешь прокомментировать, какой формат дискет поддерживает твой драйвер? (Я его ещё не изучал толком)
Думаю, стоит использовать формат IBM, чтобы можно было перекидывать файлы на ПК (в сообществе Орионщиков например все ещё много таких олдфагов, да). А это значит, что размер сектора надо увеличить до 512 байт.
А как дела обстоят с SD картой? Там сектора вообще огромные могут быть, а даже 4 КБ это уже много для Специалиста. Если сделать на уровне ОС максимальный размер сектора 1 КБ, это приведет к ограничению на способ форматирования SD карты. Это ок?
В принципе, ограничение можно обойти, если держать кэш в доп. странице ОЗУ. Хоть 32 КБ сектор можно поддерживать. Но это оверкилл для Специалиста, производительность будет очень низкой. Пока целюсь на кэш 1-2 КБ в основном ОЗУ.




Ответить с цитированием