Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Программирование (http://zx-pk.ru/forumdisplay.php?f=14)
-   -   Функционал TR-DOS (http://zx-pk.ru/showthread.php?t=4988)

Vitamin 21st March 2007 10:30

Функционал TR-DOS
 
Перечитывал не так давно спектрумовские газеты/журналы и чуть ли не в каждом втором в статьях, посвященных TRDOS присутствуют жалобы на сокращенный функционал сей системы- типа это просто перенесенная на дискеты ленточная система.
И возникла у меня, в общем-то, до безобразия простая и понятная идея небольшого расширения возможностей сабжа безо всякой потери совместимости.
Имеется проблема удаленных файлов- они занимают ячейки в далеко не резиновой структуре каталога и занимают место на диске (тоже далеко не безграничное). Можно этот процесс соптимизировать- использовать для записи новых файлов место под удаленными. Это не приведет ни к какой потере совместимости или особо большим сложностям.
Имеем две операции, которые можно проделать с диском:
1) оптимизация каталога. Рядомлежащие удаленные записи в каталоге склеиваются в минимум записей (а-ля сателлиты), суммарная мнимая длина которых будет равна суммарной мнимой длине удаленных записей
2) запись файлов заранее известной длины (а в 99% так всегда) поверх удаленых файлов. Здесь, думаю, все ясно и понятно- добавляем запись в каталог, отрезаем от свободного места сколько заняли, возможно создаем новую запись (если "удаленная" запись одна). Возможно, придется делать еще раз оптимизацию.

Если каталог заполнен не сильно, то оптимизацию можно делать упрощенную- не сокращать число удаленных записей, но распределять размеры между ними- максимум первым и минимум (1 сектор) последним. Это создаст своеобразный пул свободных записей, которые можно быстро использовать для записи.

Думаю, такой функционал вполне можно поддержать (хотя бы опционально) в дисковых коммандерах или других программах. Кто что думает?

GriV 21st March 2007 10:57

А чем с этой точки зрения DirSys не устраивает?

Vitamin 21st March 2007 11:27

Ты бы еще спросил "а как ты относишься к популяции нигерийских тушканчиков".
DirSys никоим боком не относится к вопросу- про директории я ни слова не говорил, только про использование свободного места на диске. DirSys имеет отношение к этому такое же, как и к команде MOVE, ибо изменяется порядок записей в каталоге.

GriV 21st March 2007 21:11

Ты просто подумай, а то любишь торопиться. DirSys относится прямым образом, поскольку позволяет некоторые косяки тырдоса обходить. С другой стороны, в ОСях пример был NKDOS там вообще использовался подход, который я сам в своё время планировал - каждый файл может быть одинаково файлом или каталогом (если имеет длину 8 секторов). В таком случае в нём можно хранить дополнительно ещё 128 файлов, т.о. можно безболезненно создавать сколько угодно файлов, т.к. уже в корне есть по меньшей мере 128 каталогов, и так далее плоди сколько хочешь.
Ты выставил две проблемы: мало файлов и нерациональное использование свободного места. Эти проблемы можно решить только изменением файловой структуры (смотри выше). Сам же тырдос никто переделывать не будет, практика показала что ничего хорошего с этого не выходит.

Vitamin 21st March 2007 22:03

1) DirSys позволяет без большого геморроя обойти только один косяк трдоса- отсутствие каталоговой системы
2) Выставленные мною две проблемы можно если не решить, то облегчить (особенно вторую) предлагаемым способом (кстати никоим образом не переделывая трдос, это просто расширение функционала прикладных программ, никоим образом не затрагивающее ядро).

Evgeny Muchkin 22nd March 2007 10:44

Quote:

Originally Posted by Vitamin (Post 82294)
Выставленные мною две проблемы

Ну я бы не говорил про проблемы ;) Наверное, правильнее сказать предложенные идеи :)

А вообще здравая мысль, почему бы и да, как говориться. :)

Grand 23rd March 2007 04:59

Quote:

Originally Posted by Vitamin
И возникла у меня, в общем-то, до безобразия простая и понятная идея... Имеется проблема удаленных файлов ... Можно этот процесс соптимизировать- использовать для записи новых файлов место под удаленными.

Действительно, очень просто и логично. Такие же мысли приходили и мне в голову еще много лет назад. Жаль только, что ни в одной своей программе я еще не реализовал эту идею. Хотелось бы, чтобы другие кодеры воплотили это...

CityAceE 23rd March 2007 05:31

Quote:

Originally Posted by Grand (Post 82500)
Жаль только, что ни в одной своей программе я еще не реализовал эту идею. Хотелось бы, чтобы другие кодеры воплотили это...

TRDN - хороший полигон для испытаний :)

Vitamin 23rd March 2007 10:44

Quote:

Originally Posted by CityAceE (Post 82502)
TRDN - хороший полигон для испытаний

Ну дык и карты в руки :)
Имхо такой функционал нужен как раз коммандерам. Остальным приложениям он не особо нужен (но и не помешает). Если есть место в коде- можно и вставить.

CityAceE 23rd March 2007 11:09

Я это Grand'у и предлагаю. Правда там с местом для кода напряг жуткий.


All times are GMT +4. The time now is 21:01.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.