                                                Кепич Е.Т., Киев
                                                дом.тел.: 227-17-73


                 Некоторые размышления о программах
                    сжатия винчестера (real time)
                 ----------------------------------

  Дело в  том, что,  учитывая размеры  современного программного обес-
печения (тот же  Borland C, MS-Windows,  ...), работать с  винчестером
41 Мб (очень  популярный размер винчестера)  и при этом  все иметь под
рукой весьма затруднительно. Хранение  всего нужного в архивах  не мо-
жет  считаться  удовлетворительным  способом  решения  этой  проблемы.
Также можно  резидентно подвешивать  упаковщик DIET  (начиная с версии
1.20), однако скорость его работы оставляет желать лучшего; к тому  же
он  обладает  способностью   конфликтовать  со  многими   резидентными
программами.

  Сравнительно  недавно  появились  программы, позволяющие увеличивать
объем винчестера примерно  в два раза;  причем расход памяти  на рези-
дентную часть очень  невелик. Данные хранятся  на диске в  упакованном
виде;  при  операциях  ч/з  происходит их автоматическая упаковка/рас-
паковка (реальная  степень сжатия  зависит, естественно,  от типа дан-
ных: например, архивы и  Pklite-программы сохраняются один к  одному).
Установка  не  вызывает  трудностей  (требуется  лишь  1 Мб свободного
пространства на каждом сжимаемом разделе винчестера). Сжать можно либо
весь раздел, либо  некоторую его часть  (оставив место, например,  для
MS-Windows  SWAPFILE  (enhanced  mode)).  На разделе создается скрытый
файл, который  по сути  и является  новым (сжатым)  диском (compressed
partition), которому присваевается соответствующая новая буква.

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

   (1)  Stacker(tm) Real-time Data Compression - Version 1.11
        (c) Copyright 1990-91, Stac Electronics.

   (2)  SuperStor - Data Compression Utilities - DRI Version 1.05
        (c) Copyright 1991, Add Stor Inc. (поставляется с DR-DOS 6.0)
        (должна существовать также версия для MS-DOS)

  Оба продукта принадлежат к типу set-it-and-forget-it (установи и за-
будь) и обеспечивают увеличение объема диска в два раза, т.е. из 40 Мб
получается 80 (реально 70-75).

                         1. Скорость работы

  Наличие SuperStor практически не отражается на скорости дисковых опе-
раций. Stacker же  проигрывает ему примерно  на 6-8%, причем  особенно
трудно дается ему открытие/закрытие файлов, чтение/запись FAT, а также
создание/удаление подкаталогов (это может происходить из-за того,  что
Stacker пакует также и оглавления, а SuperStor сохраняет их 1:1).

                        2. Плотность упаковки

  Как уже отмечалось выше, реальная степень сжатия зависит от типа дан-
ных. Stacker тут обгоняет SuperStor и пакует немного плотнее (10-20%).

  Средние коэффициенты сжатия (*):  SuperStor  -  1:1.67
                                    Stacker    -  1:1.85

(*) - все тесты проводились на винчестере 41 Мб, разделы:
      C-3.9М(Boot DOS); D-6.1M(Compressed-12.2M); E-32M(Compressed-64M);
      на диске почти нет архивов, однако многие программы упакованы при
      помощи Pklite и DIET.

                     3. Размер резидентной части
          (зависит от количества и объема сжатых разделов)

                  DR-DOS 6.0       MS-DOS 5.0
  SuperStor        39.3 Kб          47.2 Кб
  Stacker          42.7 Кб          42.7 Кб  - без внутреннего Кэша

  Причем, что удивительно, в DR-DOS SuperStor занимает на 8 Кб  меньше
чем в MS-DOS. Видимо, он использует какие-то внутренние структуры дан-
ных, присущие лишь DR-DOS. --(?)

                      4. Disk Repair Utilities

  Все  мне  известные  утилиты  (NDD,  DiskFix, ChkDsk, Image, Mirror,
DiskMap,  Unerase,  Undelete)  прекрасно  работают  на  сжатых  дисках
(Stacker даже  "перенес" появление  физически плохого  сектора на раз-
деле, содержащем  сжатый диск,  реакция SuperStor  на появление  тако-
вого не тестировалась).
  Тем не менее, т.к. работа с каталогами, FAT и др. всего лишь  эмули-
руются, и SuperStor, и Stacker имеют собственные утилиты  проверки/ис-
правления целостности своих внутренних  таблиц: SuperStor - CHKDSK  из
DR-DOS 6.0, Stacker - программу SCHECK.
  Ошибки на уровне внутренних таблиц у SuperStor возникают чрезвычайно
редко; со Stacker-ом ситуация обстоит сложнее: время от времени SCHECK
сообщает о непонятно откуда взявшихся потерянных цепочках (lost chains)
и "хочет их лечить" (NDD говорит, что все OK).

                        5. Оптимизаторы диска

  Вопрос оптимизации сжатого диска рано или поздно возникает перед поль-
зователем. Т.к. SuperStor и Stacker "обманывают" DOS о настоящем  (физи-
ческом) порядке следования кластеров/секторов, то  надежда  на действен-
ность оптимизации диска при помощи одной из популярных утилит (SPEEDISK,
SD, Optune, Compress и др.) становится весьма хрупкой. Так оно в конеч-
ном счете и есть.

  а). Stacker совершенно несовместим ни с одним известным мне оптимиза-
тором - после "оптимизации" содержимое диска становится совершенно нена-
дежным: программы зависают, SCHECK читает свои таблицы по 5-10 минут и
после исправления всех найденных ошибок пользоваться винчестером стано-
вится совершенно невозможно. Программа Optune и вовсе отказывается опти-
мизировать Stacker-диск, заявляя, что найден физически плохой сектор (че-
го на самом деле нет).
  Странно то, что Stac Electronics никак не упомянула об этом в  своих
Compatibility Notes (или, может, до нас просто не дошел специальный оп-
тимизатор "от Stac Electronics" --(?)).

  б). Вместе с DR-DOS поставляется утилита DiskOpt, умеющая  оптимизи-
ровать SuperStor Volume.  Однако при более  близком знакомстве с  этой
"уникальной"  программой  было  замечено,  что  DiskOpt занимается чем
угодно, но только не дефрагментацией файлов и свободного  пространства
(причем даже на обычном DOS-разделе он умудряется "портить"  непрерыв-
ные файлы). Как установлено, DiskOpt делает следующее:

   - расставляет оглавления по диску (туда, где они начинаются):
     --(?) очень сомнительно, оптимизация это или нет (Optune, напри-
     мер, всегда двигает оглавления в начало диска);
   - как-то --(?) оптимизирует внутренние таблицы SuperStor;
   - сортирует содержимое оглавлений (optional).

Однако "физической" дефрагментации файлов после всего этого не проис-
ходит (возможно ли это вообще --(?)).

  Экспериментально  установлено,  что  используя  SPEEDISK (Unfragment
files only, Unfragment free space,  Full with DIR's first) или  Optune
(Normal, Packed), а потом "напуская" DiskOpt, можно добиться  довольно
хороших результатов.

  После использования других методов оптимизации (SPEEDISK - Full  op-
timisation, Full with file reorder; Optune - File realignment)  значи-
тельно замедляется работа  с диском, не  помогает и DiskOpt  (в MS-DOS
после SPEEDISK (Full optimisation, Full with file reorder)  содержимое
винчестера оказывается испорченным;  вообще, использовать SuperStor  с
MS-DOS довольно опасно).

                               Резюме
                               ------

  Недавно, после очередного сбоя питания, с SuperStor произошла  такая
штука: при загрузке он начал выдавать следующее сообщение

           Drive structure error - mounting readonly.

  CHKDSK сообщал о найденных плохих кластерах, однако "лечить" отказы-
вался ввиду наличия защиты от  записи. И, что самое обидное,  доверять
содержимому файлов уже было нельзя. Противоядия так и не было найдено,
спасла лишь Backup-копия винчестера, "случайно" сделанная сразу  после
установки на него SuperStor.

  Так что, "думайте сами, решайте сами - иметь или не иметь".


P.S.  В декабрьском номере журнала PC WORLD появилось интересное сооб-
щение: Stac Electronics объявила  о выпуске новой версии  Stacker 2.0.
Как утверждает фирма, Stacker 2.0 на 25-30% быстрее предыдущих версий,
между тем средний коэффициент сжатия уже перевалил за 2.
