Страница Ивана Рощина > Статьи >

© Иван Рощин, Москва

ZXNet: 500:95/462.53
E-mail: bestview@mtu-net.ru
WWW: http://www.ivr.da.ru

О сокращении времени форматирования

(«ZX-Ревю» 1—2/1997)

Известно, что при копировании дисков с форматированием диска-копии обычно применяется следующий алгоритм: за один оборот диска происходит форматирование, а при следующем обороте происходит запись секторов. Я хочу показать, как можно осуществить форматирование и запись за один оборот диска.

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

Естественно, этот способ не позволяет записывать сектора, в которых встречаются служебные байты #F5, #F6 и #F7 (однако запись служебных байтов #FC и #FE возможна).

Для практического применения привожу пример алгоритма записи дорожки:

При практической проверке этого метода выяснилось, что общее время записи уменьшается не так значительно, как предполагалось (не в два раза). Чтобы понять, почему это происходит, подробно разберём, на что же уходит «лишнее» время:

Итак, мы видим, что после форматирования дорожки на одной стороне диска теряется целый оборот, прежде чем может начаться форматирование дорожки на другой стороне диска. Если две последовательно форматируемые дорожки относятся к одному физическому цилиндру, этот оборот диска теряется зря, и никакого уменьшения времени копирования не будет. Но если эти дорожки относятся к разным цилиндрам, время оборота диска можно использовать для того, чтобы передвинуть магнитные головки на следующий цилиндр, так что за счёт этого общее время копирования уменьшится.

Возникает вопрос: неужели нельзя избежать потери оборота диска при форматировании дорожки? Оказывается, можно. Для этого нужно заканчивать форматирование не по приходу индексного импульса, а немного раньше, использовав команду принудительного прерывания. Правда, я сам не проверял этот способ и не знаю, как его использование отразится на качестве разметки. Но при желании вы можете проверить это сами.

Другие мои статьи о TR-DOS:

1. 

«Доступ к порту #1F в TR-DOS 5.03». «ZX-Ревю» 1—2/1997.

2. 

«TR-DOS: как не допустить ошибки?». «ZX-Ревю» 5—6/1997.

3. 

«Работа с диском при включённых прерываниях». Adventurer #9, «Чёрная ворона» #3, «Радиолюбитель. Ваш компьютер» 6/2000 (дополненная версия).

4. 

«Вывод трёхсимвольных расширений файлов в операционной системе TR-DOS». «Радиолюбитель. Ваш компьютер» 7/2000.

5. 

«Усовершенствованный алгоритм определения смены диска». «Радиолюбитель. Ваш компьютер» 9/2000.

6. 

«Расширения файлов TR-DOS». «Радиолюбитель. Ваш компьютер» 12/2000, «Радиомир. Ваш компьютер» 9/2001 (под псевдонимом BV_Creator).

7. 

«Обрубаем файлам „хвост“». «Радиомир. Ваш компьютер» 4/2002.

8. 

«Использование избыточной информации для защиты файлов от повреждений». «Радиомир. Ваш компьютер» 11/2002.

9. 

«Проверка корректности файловой структуры дисков TR-DOS». «Радиомир. Ваш компьютер» 6/2004.

Страница Ивана Рощина > Статьи >