Сайт о сжатии  >>  ARCTEST

Сравнительные тесты
    Текстовые файлы
    Текстовые файлы (Mac)
    EXE-файлы
    EXE-файлы (Mac)
    Исполнимые EXE-сжатые
    Аудио: Wav-файлы
    Аудио: Wav-файлы (Mac)
    Графика: TIFF-файлы
    Графика: TIFF-файлы (Mac)
    Разноформатные файлы
    Разноформатные файлы (Mac)
    Файлы демо-игры
    Файлы демо-игры (Mac)
Альтернативные тесты
    Русский текст
    Английский текст
    Исходники
    WinWord-файл
    Excel-файл
    EXE-файл
    Новые тесты
Графические тесты
    Сжатие изображений без потерь
Новости
    Архив новостей
    Архив рассылки
Утилиты
    Просмотра-распаковки
    Идентификации-распаковки
    COM/EXE-распаковки, анализа
    Распаковки инсталляций
    Создания SFX-архивов/инсталляций
    Конвертирования
    Починки архивов
    Поиска
    Универсальные оболочки
    Управления баннерами
    Управления файлами
    Резервного копирования
    Тестирования
    Разные
Файл-менеджеры
    Файл-менеджеры
    Арх.-модули для FAR
    Арх.-модули для Win. Commander
Описания
    Статьи, интервью
    Теория, алгоритмы
    Self-описания архиваторов
    FAQ
    Разное
Линки
    Архиваторные
    COM/EXE/DLL-пакеров
Necromancer's DN
    О программе
    Новости свежих версий
    Архив новостей
Поддержка
   
    Подписка на рассылку новостей
    Архиваторные опросы
    Об авторе
Все о сжатии / arctest. Авторский проект.
---------------------------------------------------------

DoubleSpace оставляет жирный отпечаток на DOS

Те, кто инсталлировал программу MS-DOS 6 для сжатия данных DoubleSpace, знают, что у команды DBLSPACE целый вагон ключей, а это делает ее одной из самых сложных в DOS. Но задумывались ли вы о том, как влияет DoubleSpace на использование других частей DOS?

Если вы думаете, что DoubleSpace будет прозрачной по отношению к повседневной работе на вашем ПК, то вас ждут сюрпризы. DoubleSpace влияет на целый ряд команд и утилит MS-DOS 6, включая Microsoft Backup, Microsoft Antivirus, DEFRAG, SMARTDRV, CHKDSK и DIR. Из них лишь команда DIR имеет ключи, предусмотренные специально для программы DoubleSpace, но утилита эта очень тонко и порой существенно влияет на вашу работу с указанными командами и программами. Я покажу вам, каким образом можно выжать из них почти все, когда инсталлирована DoubleSpace.

SmartDrv работает лучше

Известно ли вам, что программа MS-DOS 6 для кэширования диска SMARTDRV получает дополнительный объем хранения от DoubleSpace? Так как SMARTDRV кэширует сжатые данные, DoubleSpace эффективно удваивает размер дискового кэш-буфеpа! Но, используя SMARTDRV совместно с DoubleSpace, нужно помнить, что SMARTDRV всегда кэширует хост-диск (диск, на котором инсталлирована DoubleSpace), а не диск, подвергаемый сжатию. Если ваш диск С: сжат, команда SMARTDRV C: не сработает; вместо него надо указать хост-диск, например SMARTDRV H:. 

Если в AUTOEXEC.BAT после команды SMARTDRV нет никаких обозначений дисков, SMARTDRV кэширует все диски, в том числе сжатые, через соответствующие им хост-диски. Однако, когда вы явно указываете обозначения дисков после команды SMARTDRV, необходимо помнить, что приводить сжатые диски нельзя. 

Многие проблемы, приписываемые пользователями DoubleSpace, в действительности объясняются способностью SMARTDRV кэшировать данные при записи. Использовать утилиту SMARTDRV DOS 6 само по себе рискованно, потому что в кэш-буфеpе данные хранятся еще целую секунду после того, как прикладным программам было сообщено, что данные успешно записаны на диск. Если в это время что-то произойдет, кэширование при записи может запросто испортить ваши файлы. Microsoft обещала устранить этот недостаток. 

Поскольку кэширование при записи является режимом SMARTDRV по умолчанию, возможно, вы захотите отменить его, исправив строку в AUTOEXEC.BAT. Для этого после команды SMARTDRV нужно перечислить все диски, которые вы хотите кэшировать, например: SMARTDRV A B H Здесь я указал диски А и В, а также хост-диск DoubleSpace - Н. 

Новое применение CHKDSK

Вы уже знаете, что для проверки целостности директорий и таблицы размещения файлов (FAT) диска следует периодически использовать команду CHKDSK. Это правило приобретает еще большую важность при использовании DoubleSpace, потому что кроме директорий и FAT она задействует дополнительные таблицы размещения. Они хранятся внутри сжатого файла-тома (CVF), который содержит сжатые данные для диска DoubleSpace. В DOS 6 у команды DBLSPACE есть ключ /CHKDSK, который проверяет внутреннюю структуру CVF. И хотя вы можете запустить /CHKDSK из меню DoubleSpace, не стоит беспокоиться: пользуйтесь собственной командой DOS CHKDSK. CHKDSK из командной строки сжатого диска автоматически вызывает команду DBLSPACE/CHKDSK.

Таким образом, CHKDSK DOS проверяет традиционную структуру директорий и FAT, а затем внутреннюю структуру CVF. Применяя DBLSPACE/CHKDSK, вы проверяете структуру CVF, но не структуру директорий и FAT. И еще: не забывайте, что сохранность сжатых данных зависит от целостности хост-диска. У большинства систем хост-диск - это диск Н, но буквенный символ, приданный хост-диску, может варьироваться в тех случаях, когда у вас больше одного жесткого диска, а также если у вас дисковод CD-ROM или же вы работаете в сети. Очень важно периодически запускать CHKDSK на хост-диске для проверки целостности структуры его директорий и FAT.

Если вы не знаете, какой из ваших дисков является хост-диском, напечатайте в командной строке DOS следующую команду: DBLSPACE /LIST Она выведет на экран перечень всех дисков на компьютере. Для сжатых дисков в перечне приведены имена CVF. Символ, обозначающий диск в этих именах, и есть хост-диск. 

Кстати, всякий раз, когда вы включаете компьютер, DoubleSpace производит на сжатых дисках действия, эквивалентные выполнению команды DBLSPACE /CHKDSK. Эта автоматическая проверка выявляет такие распространенные проблемы размещения, как потерянные кластеры или перекрестно связанные файлы. Однако эта проверка не столь тщательна по сравнению с CHKDSK, поэтому целостность хост-диска не контролируется. 

(Примечание: Microsoft готовит новую версию DOS, известную как MS-DOS 6.2. В ней функция /CHKDSK устранена из программы DBLSPACE и заменена новой утилитой ScanDisk. По сообщениям, появившимся в отраслевом журнале PC Week, ScanDisk будет ремонтной программой типа Norton Disk Doctor корпорации Symantec. ScanDisk исследует как сжатый диск, так и его хост-диск, поэтому проверять хост-диск отдельно не нужно.)

Дефрагментация диска DoubleSpace

В отличие от других новых утилит, поставляемых с MS-DOS 6, DEFRAG фирмы Microsoft "знает" о присутствии дисков DoubleSpace. Когда вы дефрагментируете сжатый диск, DEFRAG вызывает команду DBLSPACE /DEFRAG для дефрагментации внутренней структуры CVF DoubleSpace. Нужно иметь в виду, что дефрагментация CVF - процесс, требующий значительных затрат времени. Поэтому для выполнения работы DEFRAG потребуется несколько часов; можно оставить его включенным на ночь.

А как же хост-диск? Надо ли дефрагментировать его? Регулярно это делать необязательно. Хост-диск, как правило, не подвержен фрагментации. Однако вполне возможно, что сам CVF будет фрагментирован. Это произойдет, если вы инсталлируете DoubleSpace на сильно фрагментированный диск, не запустив предварительно DEFRAG, или если измените размер сжатого тома. Дефpагментиpовать хост-диск DoubleSpace непросто: пошаговое описание этого процесса приведено под заголовком "Дефpагментация хост-диска DoubleSpace".

Основы MSBackup

Перед тем, как запускать DEFRAG, вы должны произвести тщательное резервное копирование. У новой программы резервного копирования DOS 6, которая называется Microsoft Backup или MSBACKUP, отсутствуют специальные функции, имеющие отношение непосредственно к DoubleSpace, но проблема выбора правильных процедур резервного копирования становится весьма запутанной, когда дело касается DoubleSpace. Какой диск надо копировать: сжатый, хост-диск или оба? 

Чаще всего копировать надо только сжатый диск. Тогда вы сможете восстановить из резервной копии сжатого диска любой файл. Если вы копируете только хост-диск, все файлы сжатого диска будут сохранены как единый файл (CVF), поэтому выборочное восстановление станет невозможно. Большинство пользователей считают, что назначение хост-диска лишь одно: на нем располагается система DoubleSpace, включая и CVF. Для пользователей же Windows хост-диск - это еще и место расположения постоянного файла подкачки Windows. Когда существуют резервные копии файлов с вашего сжатого диска, все остальное на хост-диске очень легко воссоздать заново и нет нужды делать его резервную копию. 

Кстати, если у вас нет ленточного накопителя, пришло время приобрести его. Причина, по которой вы инсталлировали DoubleSpace, заключается, вероятно, в том, что вы хотите увеличить емкость жесткого диска. Когда диск с недавно удвоенной емкостью будет полон, вам не захочется копировать его на другие диски.

Вирусы играют в прядки

Microsoft AntiVirus, или MSAV, - новая утилита-антивиpус, поставляемая с MS-DOS 6. Как и у MSBACKUP, у нее отсутствуют опции и функции, характерные только для DoubleSpace. Однако вы должны осознать, что у вашего компьютера появилось еще одно место, где могут прятаться вирусы - это ваш хост-диск. Многие пользователи прилежно проверяют диск С: на вирусы, но при этом забывают о хост-дисках. 

DIR подбирает ключи

Команда DIR на сжатом диске работает почти так же, как и на несжатом. Разница в том, что Microsoft добавила тpи новых ключа: /С, /СН и /О:С. 

Ключ /С указывает на то, что DIR должна вывести на дисплей коэффициент сжатия для каждого файла. Например, команда C:\DOS>DIR E*.* /C выведет на дисплей коэффициенты сжатия для всех файлов в директории \DOS, имена которых начинаются с Е (см. пример листинга директории). 

Вы, возможно, решили, что /С вычисляет коэффициент сжатия, деля размер несжатого файла на размер сжатого. Тогда, если учесть, что для 413-байт файла EDIT.COM сообщается сжатие 16.0 к 1.0, DoubleSpace, должно быть, нашла способ сжать этот файл до 25,8 байт. Правильно? Нет, ключ /С вычисляет коэффициент сжатия, деля количество дискового пространства, которое потребовалось бы для хранения файла в несжатом виде, на количество дискового пространства, необходимое для хранения файла в сжатом виде. Вспомним, что DOS всегда предоставляет дисковое пространство цельными кластерами. Так что для EDIT.COM потребуется целый кластер, хотя размер файла - всего 413 байт. Ключ /С предполагает, что несжатый файл будет храниться на диске с размером кластера 8 Кбайт (16 секторов на кластер), поэтому для хранения EDIT.COM потребуется 8 Кбайт. 

Но DoubleSpace предоставляет место на диске не цельными кластерами, а по секторам. Поэтому программа дает EDIT.COM лишь один кластер размером 512 байт. Так как несжатому файлу EDIT.COM требуется 8192 байт, а сжатому - всего 512, коэффициент сжатия составит 8192/512 или 16.0 к 1.0. 

Можно ли считать, что размер кластера для несжатых файлов - 8 Кбайт? Да, если размер вашего сжатого диска превышает 256 Мбайт, поскольку для поддержания дисков такой величины требуются 8-Кбайт кластеры. Если ваш сжатый диск меньше 256 Мбайт, подумайте об использовании ключа /СН вместо /С. 

/СН вычисляет размер несжатого файла, используя размер кластера хост-диска DoubleSpace. Перед тем как я установил DoubleSpace на свою систему, на моем 170-Мбайт жестком диске использовались 4-Кбайт кластеры. И, если я воспользуюсь ключом /СН, коэффициент сжатия для EDIT.COM составит 8.0 к 1.0 вместо 16.0 к 1.0. Ключ /О:С позволяет выводить на дисплей листинги директорий с файлами, отсортированными в порядке возрастания коэффициентов сжатия. Если вы дадите ключ /О:-С, файлы отсортируются в порядке убывания коэффициента сжатия. (Чтобы исключить из листинга поддиректории, добавьте ключ /А:-D, без него листинг директорий будет засорен поддиректориями.)

Если вы хотите всегда видеть коэффициенты сжатия для ваших файлов, можно добавить следующую команду в файл AUTOEXEC.BAT: SET DIRCMD=/C. Таким образом создается переменная среды окружения DIRCMD, которую использует команда DIR, чтобы определить свой формат по умолчанию для вывода листингов директорий на дисплей. 

Жизнь С DoubleSpace

DoubleSpace не такая уж прозрачная программа, как это пытается изобразить Microsoft. Последствия использования DoubleSpace весьма разнообразны: от появления новых ключей у знакомой команды (такой, как DIR) до необходимости выполнения неясной и устрашающей процедуры дефрагментации хост-диска. Необходимость изучать все тонкости использования команд DOS при работе с DoubleSpace - это лишь часть той цены, которую мы должны заплатить за удвоенную емкость жестких дисков.

Дефрагментация хост-диска DoubleSpace

Если вы считаете, что риск - благородное дело, то вероятно, получите удовольствие от дефрагментации хост-диска. Это - опасная процедура, поэтому перед тем, как к ней приступить, необходимо понять значение каждого шага.

  1. Скопируйте файлы ATTRIB.EXE и DEFRAG.* из директории \DOS на хост-диск (они вам понадобятся позже). загрузитесь с диска, на котором не установлена DoubleSpace. Чтобы создать такой диск, воспользуйтесь командой FORMAT A: /S, затем удалите скрытый файл DBLSPACE.BIN с дискеты при помощи следующей команды: DELTREE A:DBLSPACE.BIN (В отличие от DEL команда DELTREE может удалять скрытые файлы.)
  2. Сделайте С: текущим диском и выполните команду DIR /AH: убедитесь, что DoubleSpace отключена. Эта разновидность команды DIR должна вывести на дисплей системные файлы DoubleSpace, включая DBLSPACE.BIN, DBLSPACE.INI и DBLSPACE.000. Если вы не увидели этих файлов, значит DoubleSpace не отключена. А если DoubleSpace активна, то, дефрагментируя CVF, вы разрушите сжатый диск!
  3. Снимите атрибуты "скрытый", "системный" и "только для чтения" с сжатого файла-тома (CVF), используя следующую команду: ATTRIB -H -S -R DBLSPACE.000
  4. Запустите DEFRAG для дефрагментации диска.
  5. Когда работа DEFRAG закончится, восстановите атрибуты CVF с помощью следующей команды: ATTRIB +H +S +R DBLSPACE.000 6. Удалите из дисковода системную дискету, на которой отсутствует DoubleSpace, и перезагрузите свой компьютер.
Способна ли DoubleSpace сжать 1-байт файл?

Чтобы узнать, можно ли сжать файл размером в 1 байт, создайте такой файл, начав с командной строки: COPY CON ONEBYTE.TXT. После этого один раз нажмите на пробел, затем на Ctrl-Z и Enter. Введите команду для проверки размера файла: DIR ONEBYTE.TXT. Команда DIR должна вывести на дисплей размер файла в 1 байт. А теперь следующая команда: DIR ONEBYTE.TXT /C. Как может DIR указать для этого файла степень сжатия 16.0 к 1.0?

Благодаря какому волшебству DoubleSpace может сжать 8 бит этого файла всего в 0,5 бит? Никаких чудес - это всего лишь предельный случай того, как DoubleSpace учитывает кластерное распределение, когда сообщает о степенях сжатия. Хотя файл ONEBYTE.TXT содержит только 1 байт данных, ему все же нужен целый кластер для хранения в несжатой форме. DoubleSpace, напротив, требует для хранения этого файла всего лишь один 512-байт сектор, отсюда и степень сжатия 16.0 к 1.0. DoubleSpace напрасно тратит 511 байт (или 99,8%) сектора, нужного для хранения этого файла. Но это - лучший показатель, чем 8191 байт (99,99%) впустую потраченного места на диске для несжатого файла.

Маленькие хитрости SmartDrv

Версия программы кэширования диска SMARTDRV из DOS 6 дополнена новой особенностью, называемой кэшированием с записью, что значительно ускоряет запись на диск. К сожалению, в ее использовании есть элемент риска: если в определенный момент произойдет сбой в сети питания или перезагрузка системы, ваши файлы превратятся в кучу мусора. 

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

Для того чтобы кэшировать диски A, B и С, команда должна выглядеть следующим образом: SMARTDRV A B C. Если указать буквенные обозначения дисководов в команде SMARTDRV, то кэширование при чтении активизируется, а опасное кэширование при записи - нет. Оно активизируется только тогда, когда вы опускаете буквенные обозначения дисководов в строке файла AUTOEXEC.BAT, из которой вызывается SMARTDRV, или предваряете их знаком +: SMARTDRV +A +B +C.

Запомните: при работе с DBLSPACE нужно указывать букву для хост-диска, а не для сжатого диска. Например, если ваш хост-диск - диск Н, строка SMARTDRV должна выглядеть следующим образом: SMARTDRV A B H. Если у вас нет уверенности в том, что вы используете именно DBLSPACE или какой диск у вас задействован в качестве хост-диска, наберите в строке DOS команду DBLSPACE /LIST. Она сообщит вам, какие диски сжаты, и укажет, какими буквами они обозначены. 

Журнал "Рынок программных средств"
1994
Последнее обновление: 11-October-2021

Сайт о сжатии  >>  ARCTEST  >>  Сравнительные тесты  |  Альтернативные тесты  |  Графические тесты  |  Новости  |  Утилиты  |  Файл'менеджеры  |  Описания  |  Линки  |  Necromancer's DN  |  Поддержка

Поиск:
Справка Детальный запрос

Сайт о сжатии >>
  Новинки | О сервере | Статистика

  Книга "Методы сжатия данных" >>
     Универсальные | Изображений | Видео

  Разделы >> Download (статьи+исходники) | Ссылки | Ru.compress | Arctest | Видео | Каталог ссылок | Форум
  Проекты >> Д.Ватолина | А.Ратушняка | М.Смирнова | В.Юкина | Е.Шелвина | А.Филинского | Д.Шкарина | С.Оснача

  Оставьте ваши замечания, предложения, мнения!
  О найденных ошибках пишите на compression_на_graphicon.ru
  © Д.Ватолин, А.Ратушняк, М.Смирнов, В.Юкин и др., текст, состав., 2001-2003
    Project supported by Graphics & Media Lab

   ЭТОТ ДОКУМЕНТ МОЖНО СКАЧАТЬ C http://www.compression.ru/compression.ru/arctest/descript/dblspc-trace.htm

Rambler's Top100 Рейтинг@Mail.ru