Тонкая настройка и оптимизация MS-DOS

         

Архиваторы


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

создавать архивы из отдельных или всех файлов, находящихся в каталоге и его подкаталогах;

добавлять в архив, извлекать или удалять из архива отдельные файлы или группы файлов;

просматривать содержимое архивов.

Наиболее развитые архиваторы дополнительно обладают следующими возможностями:

защита создаваемых архивов паролем;

создание самораскрывающихся архивов в виде EXE- или COM-программ;

создание многотомных архивов, располагающихся на нескольких дискетах.

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

создание архивов из всех файлов, находящихся в каталоге, т.е. "схлопывание" каталога;

то же самое, но в архив должны быть включены файлы из всех подкаталогов обрабатываемого каталога;

восстановление файлов из архива вместе со всеми подкаталогами, т.е. "разархивирование";

выгрузка каталогов вместе с подкаталогами на несколько дискет, т.е. создание многотомных архивов и восстановление разгруженных каталогов.

Решение вышеперечисленных задач доступно любому пользователю персонального компьютера, умеющему вводить команды MS-DOS.

Из всего многообразия имеющихся архиваторов мы выбрали архиватор .i.ARJ.EXE;. Этот архиватор способен выполнять все перечисленные выше функции, он работает достаточно быстро и эффективно. Всё, что вам нужно для его использования, это сам файл ARJ.EXE.

Если вы пользуетесь несколькими архиваторами, то для них лучше всего создать на каком-нибудь диске каталог с именем ARC. В этот каталог вы будете помещать все используемые вами средства архивации. Каталог ARC должен быть описан в файле AUTOEXEC.BAT при определении переменной среды PATH:

PATH = c:\;c:\norton;c:\dos;c:\arc

Архиватор ARJ.EXE используется следующим образом:

ARJ <команда> [-<sw> [-<sw>...]] <имя_архива> [<имена_файлов>...]


Команда должна быть первым параметром при запуске архиватора. Она определяет выполняемую функцию. Приведём таблицу наиболее часто используемых команд:

a Добавление файлов в архив.
M Перенос файлов в архив, т.е. файлы записываются в архив и затем удаляются с диска.
E Извлечение файлов из архива.
X Извлечение файлов из архива с подкаталогами, т.е. восстанавление полных имён архивированных файлов.
L Просмотр содержимого архива.
Вслед за командой могут следовать необязательные опции -<sw>. Эти опции должны выделяться символом "-", они задают модификацию выполняемой команды. Приведём таблицу наиболее важных опций архиватора ARJ.EXE:

r Используется с командами "a" или "m" для указания того, что в архив должны войти файлы из текущего каталога и всех его подкаталогов.
g Защита создаваемого архива паролем.
v Создание многотомных архивов, расположенных на нескольких дискетах.
Остальные команды и опции приведены в документации на архиватор ARJ.EXE.

Вслед за именем обрабатываемого архива могут идти имена извлекаемых, добавляемых или удаляемых файлов.

Приведём примеры использования архиватора ARJ.EXE для решения наиболее важных задач.

Создание архивов из всех файлов, находящихся в текущем каталоге.

arj a !collaps

По этой команде в текущем каталоге будет создан архив из всех имеющихся там файлов. Имя архива будет !collaps.arj.

Создание архивов из всех файлов, находящихся в текущем каталоге с удалением файлов, записанных в архив.

arj m !collaps

Так же, как и в предыдущем случае, будет создан архив с именем !collaps.arj, но все включённые в него файлы будут удалены из текущего каталога.

Создание архивов из всех файлов, находящихся в текущем каталоге и в подкаталогах с удалением файлов, записанных в архив.

arj m -r !collaps

Архив !collaps.arj будет содержать полные имена файлов, впоследствии можно будет восстановить файлы вместе со всей структурой подкаталогов.

Восстановление файлов из архива.



arj e !collaps

По этой команде из архива !collaps.arj, который в данном случае должен находится в текущем каталоге, будут извлечены все имеющиеся там файлы. Эти файлы будут помещены в текущий каталог, причём содержимое архива не изменится.

Восстановление файлов из архива с подкаталогами.

arj x !collaps

По этой команде из архива !collaps.arj, который в данном случае должен находится в текущем каталоге, будут извлечены все имеющиеся там файлы вместе с подкаталогами.

Если вы используете оболочку Norton Commander, для упрощения процедуры архивирования и разархивирования содержимого каталогов можно использовать пользовательское меню, вызываемое при нажатии клавиши F2 и закрепить за расширением .ARJ процедуру разархивирования с подкаталогами.

Для этого в файле NC.MNU должны находиться, например, такие строки:

C:Collapse by ARJ arj m !collaps

В файл NC.EXT поместите строку:

arj arj x !.!

Теперь для того, чтобы создать архив из файлов, находящихся в каталоге, перейдите в этот каталог, нажмите F2 и затем клавишу "C". В текущем каталоге будет создан архив с именем !collaps.arj, все файлы будут переписаны в архив и удалены из каталога.

Когда впоследствии вам потребуется восстановить содержимое каталога, просто выберите нужный архив и нажмите клавишу <Enter>. Каталог будет восстановлен.

Если на диске мало места, вы можете хранить почти все программы в виде архивов. Следите только за тем, чтобы на диске было достаточно свободного места для восстановления каталогов. И не архивируйте каталоги, содержащие программы или драйверы, необходимые для загрузки операционной системы MS-DOS.

А что делать, если вам надо извлечь только один файл из архива, или все файлы, имеющие расширение .DOC? В этом случае вам надо в командной строке указать имя извлекаемого файла:

arj e !collaps my.exe

При указании имени можно использовать символ "*":

arj e !collaps *.doc

В данном случае из архива будут извлечены все файлы с расширением .DOC.

Разумеется, вам не обязательно всегда использовать в качестве имени архива !collaps.arj, вы можете выбрать имя, отражающее содержимое архива.


Буферизация


Ещё один путь к увеличению быстродействия дисковой подсистемы лежит в использовании буферизации ввода/вывода. Что здесь имеется в виду?

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

Как можно копировать файл?

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

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

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

Чем больше будет размер буфера, тем меньше будет затрачено времени на перемещение головок и тем быстрее будет копироваться файл.

Операционная система MS-DOS имеет средства (правда, весьма ограниченные) для управления процессом буферизации ввода/вывода. Мы расскажем о них в практическом разделе этой главы.



Буферизация ввода/вывода


Операционная система MS-DOS имеет средства буферизации, которые можно подключить при помощи команды .i.BUFFERS;. Эту команду необходимо поместить в файл CONFIG.SYS.

Для MS-DOS более ранних версий, чем 4.0, команда BUFFERS имеет следующий формат:

BUFFERS=n

В этой строке n задаёт количество буферов, которые MS-DOS использует для ввода/вывода. Если файл CONFIG.SYS отсуствует, или в нём нет команды BUFFERS, по умолчанию MS-DOS создает два буфера.

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

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

Максимально можно создать 255 буферов, однако реально имеет смысл создавать их не более 30-50, т.к. при большом количестве буферов, помимо уменьшения доступной оперативной памяти, происходит замедление работы MS-DOS из-за накладных расходов на управление буферами. Приведем таблицу, которая поможет вам определить оптимальное количество дисковых буферов:

Размер диска Количество буферов
меньше 40 Мбайт 20
от 40 до 80 Мбайт 30
от 80 до 120 Мбайт 40
больше 120 Мбайт 50

Операционная система MS-DOS версий 4.0, 4.01 и 5.0 имеет несколько расширенный синтаксис оператора BUFFERS:

BUFFERS=n,m[/x]

Параметр m задаёт количество буферов предварительной выборки. Предварительная выборка означает, что в буфер записывается не только затребованный программой сектор, но и некоторое количество следующих за ним секторов. Это повышает скорость работы таких программ, как компиляторы и системы управления базами данных. Можно задать от 1 до 8 буферов предварительной выборки.

Параметр n может принимать значения от 1 до 10000.

Однако самое важное новшество - ключ /x. Если он задан, все буфера располагаются в дополнительной памяти (expanded memory). Эта память (если она есть в компьютере) обычно располагается на отдельной плате и требует наличия специального драйвера. Подробнее о расширенной памяти вы можете узнать в главе, посвящённой увеличению объёма доступной оперативной памяти.

Кроме того, MS-DOS версии 5.0 располагает буфера в области памяти HMA, которая находится выше границы 1 Мбайт (при условии, что в файле CONFIG.SYS имеется строка DOS=HIGH и не задан ключ /x). Это позволяет экономить стандартную оперативную память для обычных программ.

Несмотря на простоту оператора BUFFERS, большей эффективности можно достичь при использовании кэширования дисковой памяти. Однако следует отметить, что оператор BUFFERS увеличивает производительность флоппи-дисков, в то время как программы кэширования обычно используются только для HDD.

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

В любом случае имеет смысл провести эксперименты и подобрать оптимальное количество буферов для повышения производительности используемого вами программного обеспечения. Обычно в документации на программы содержатся рекомендации по выбору количества буферов.



БЫСТРОДЕЙСТВИЕ ДИСКОВОЙ ПАМЯТИ


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

2.1.

2.2.

2.3.



Быстродействие оперативной памяти


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

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

Разумеется, вы не сможете повлиять на быстродействие установленной в вашем компьютере оперативной памяти, не заменив микросхемы памяти на более быстрые. Но в некоторых компьютерах предусмотрена возможность работы как с быстрой памятью, так и с медленной. Для этого в CMOS-памяти необходимо задать количество используемых при работе с памятью тактов ожидания.

Мы уже говорили, что в CMOS-памяти хранится конфигурация аппаратных средств компьютера. После изменения конфигурации компьютера необходимо обновить содержимое CMOS-памяти. Для этого предназначена специальная программа, часто называемая SETUP-программой или программой установки конфигурации.

SETUP-программа может запускаться при включении компьютера (если нажать определённую клавишу, обычно Del), либо эта программа может поставляться на дискете вместе с компьютером.

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

Это особенно необходимо, если в вашем компьютере установлен процессор 80386 или 80486. Такие компьютеры обычно комплектуются быстрой памятью. И если в CMOS-памяти указано, что надо вставлять циклы ожидания при работе с памятью, компьютер не будет работать с максимальной производительностью.

Другая возможность повышения скорости работы с памятью, но на этот раз с постоянной памятью (BIOS), часто имеется в компьютерах, выполненных на процессорах 80386 или 80486. Эта возможность заключается в копировании содержимого относительно медленной постоянной памяти в специальную область быстродействующей оперативной памяти с последующим преобразованием адресов. Используемая область памяти имеет специальное название - теневая память.


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

Будет выполняться копирование BIOS в теневую память или нет - зависит от установки определённой ячейки CMOS-памяти. Для выбора правильного режима вам необходимо воспользоваться SETUP-программой.

Если у вас компьютер, имеющий процессор 80386 или 80486 и набор управляющих микросхем фирмы Chips & Technology, при запуске SETUP-программы на экране появляется меню:



В этом меню вам необходимо выбрать выделенную строку. При этом вам будет предоставлена возможность выполнить упрощённую процедуру установки конфигурации компьютера.

После выбора первой строки на экран будет выдано предупреждение о том, что неправильная установка конфигурации может привести к зависанию компьютера:



В этом случае необходимо нажать клавишу INS, затем, не отпуская её, выключить питание компьютера и включить его заново. Клавишу INS следует отпустить только после прохождения теста оперативной памяти. После выполнения такой операции в CMOS-память будет записана конфигурация из BIOS.

На этом этапе вы можете отказаться от изменения конфигурации, если нажмёте клавишу ESC.

Если же вы решили изменить конфигурацию, нажмите клавишу ENTER. Вы увидите на экране следующее меню:



Здесь можно задать конфигурацию памяти (Memory Configuration), параметры тактового генератора (Clock Source), режим теневой памяти и использование чередования при работе с памятью (Shadow RAM/Memory Interleave).

С помощью клавиш перемещения курсора вы можете переключаться с одной области параметров на другую. Изменение значения параметров выполняется клавишами PgUp и PgDn. Когда вы будете нажимать на эти клавиши, в выбранной области будет происходить циклическое изменение значений параметров.

Выберите область Waitstate. В этой области задаётся количество тактов ожидания при работе с оперативной памятью. Для увеличения скорости работы установите режим "0 WAIT STATE", при котором такты ожидания не используются.



Затем с помощью клавиш перемещения курсора перейдите в область Shadow RAM/Memory Interleave. Установите режим использования теневой памяти ENABLED, как это показано на предыдущем рисунке.

После изменения конфигурации нажмите клавишу ESC и выберите в появившемся меню строку "WRITE CMOS REGISTERS AND EXIT". Произойдёт перезгрузка компьютера. Обратите внимание на скорость тестирования оперативной памяти - после изменения её режима работы она может заметно возрасти.

Описанная только что SETUP-программа - не единственная. Вместе с вашим компьютером может продаваться другая, имеющая больше или меньше возможностей. Как правило, SETUP-программа описывается в документации на материнскую плату компьютера (Motherboard). Возможность изменения количества тактов ожидания и режим теневой памяти обычно имеются только в компьютерах, выполненных на процессорах 80386 и 80486. однако бывают и исключения - например, модели компьютеров фирмы SUMMIT, выполненные на основе процессора 80286, могут работать без тактов ожидания. В них также имеется возможность использования теневой памяти.


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


Для дефрагментации файлов на диске у вас есть две альтернативы:

"ручная" дефрагментация;

дефрагментация при помощи специально предназначенных для этого утилит.

Процедура "ручной" дефрагментации заключается в том, что вы выгружаете диск на магнитную ленту (стример) или дискеты, форматируете диск утилитой MS-DOS FORMAT, и восстанавливаете содержимое диска с магнитной ленты или дискет.

После форматирования на диске имеется один непрерывный свободный участок. При восстановлении файлов с ленты или дискет они записываются на диск по одному, причём каждый файл занимает некоторое количество расположенных рядом свободных кластеров.

Очевидный недостаток "ручной" фрагментации - большая трудоёмкость и значительная продолжительность процесса. Кроме того, для выполнения операции вам потребуется много дискет или стример.

Гораздо лучше воспользоваться утилитой SPEEDISK из пакета Norton Utilities. Эта утилита выполнит дефрагментацию диска "по месту", как бы переставляя кластеры.

Запустите утилиту SPEEDISK (иногда используется сокращенное имя SD). На экране появится меню, необходимо выбрать оптимизируемый диск. На рисунке мы выбрали диск F:

Утилита SPEEDISK оптимизирует диск несколькими методами: она может, например, просто сделать все файлы на диске расположенными в непрерывных областях, либо полностью оптимизировать расположение файлов на диске. В случае полной оптимизации все свободные кластеры собираются в один непрерывный блок.

После выбора диска SPEEDISK анализирует расположение файлов и предлагает наиболее подходящий с её точки зрения метод оптимизации:

На этом рисунке утилита сообщает, что 98% файлов на диске не фрагментированы. Предлагается такой метод оптимизации, при котором выполняется только дефрагментация файлов.

Вы можете согласиться использовать предложенный метод, либо задать свой, воспользовавшись полем "Optimization Method" из меню "Optimize":

На следующем рисунке показано меню выбора методов оптимизации:




Первый метод - полная оптимизация (Full Optimization). Утилита выполняет все действия по оптимизации диска, не меняя содержимое каталогов и порядок расположения файлов. Это наиболее подходящий метод для большинства случаев.

Второй метод - Full with DIR's first - выполняет оптимизацию диска с переносом каталогов в начало.

Третий метод - Full with File reorder - кроме дефрагментации выполняет группировку файлов вблизи каталогов, в которых они описаны.

Для второго и третьего методов требуется несколько больше времени, чем для первого.

Четвёртый метод - Unfragment Files Only - выполняет дефрагментацию файлов без изменения каталогов или изменения порядка расположения файлов. При использовании этого метода свободное пространство на диске остается фрагментированным.

Пятый метод - Unfragment Free Space - дефрагментация свободного пространства. Все свободные кластеры собираются вместе в одной непрерывной области диска.

Во время работы программа показывает на экране все свои действия по перемещению кластеров. Стоит посмотреть на это захватывающее зрелище!

В конце работы программы вы можете увидеть результат - распределение занятых и свободных кластеров на диске:



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


Динамический компрессор диска STACKER


Существует другой способ сжатия данных на диске, более удобный, чем использование архиваторов. Этот способ основан на динамическом сжатии данных драйвером Stacker.

На одном из логических дисков компьютера создаётся файл Stacker-диска, имеющий атрибуты "скрытый" и "системный". Специальный драйвер, подключённый в файле CONFIG.SYS, делает из него ещё один логический диск. За счёт устранения избыточности информации при записи размер этого логического диска получается в два раза больше, чем размер использованного для него файла.

То есть, если ваш компьютер имеет жёсткий диск ёмкостью 40 мегабайт, вы можете разместить на нём файл Stacker-диска размером 30 мегабайт. При этом у вас останется 10 мегабайт на жёстком диске, и ещё прибавится 60 мегабайт - это размер созданного логического диска.

Принцип работы Stacker-диска прост: при записи файлов на этот диск они сжимаются, при чтении - восстанавливаются. Разумеется, сжатие несколько замедляет процесс записи, однако замедление небольшое и незаметно в большинстве случаев.

Вместе с динамическим компрессором диска Stacker продаётся специальная плата, вставляемая в слот расширения материнской платы. Она выполняет аппаратную компрессию данных, причём делает это очень быстро. Вы можете не использовать аппаратную компрессию и, соответственно, не покупать эту плату. Программная компрессия выполняется также достаточно быстро.

Нет смысла хранить на Stacker-диске архивы, созданные программами-архиваторами. Файлы архивов не содержат избыточной информации и практически не сжимаются. Не рекомендуется также использовать Stacker-диск для создания временных и рабочих файлов, для организации виртуальной памяти в среде Windows. В последнем случае замедление ввода/вывода может отрицательно сказаться на производительности системы.

Больше всего Stacker-диск подходит для хранения редко используемых программ, текстов, справочных баз данных. Вы можете перенести на него большинство утилит MS-DOS, но будьте осторожны с драйверами и резидентными программами, которые используются на этапе загрузки операционной системы. Их лучше хранить на обычном диске.


Перед установкой Stacker- диска удалите все резидентные программы из файла AUTOEXEC.BAT. Затем вставьте дистрибутивный диск Stacker в дисковод A:, сделайте диск A: текущим и введите команду:

a:\>install

На экране появится заставка:



Выберите строку "Continue with installation" и нажмите клавишу <Enter>.

После этого вам будет предложено выбрать диск и каталог, в котором будут находиться файлы драйвера Stacker-диска и обслуживающие утилиты:



Вы можете согласиться с предложенным каталогом C:\STACKER или выбрать любой другой. После определения каталога нажмите клавишу <Enter>.

Начнётся процесс копирования всех файлов с дистрибутивной дискеты в указанный вами на предыдущем этапе каталог. При копировании на экране будут отображаться имена переносимых на диск файлов:



Вы можете прервать процесс копирования, нажав клавишу <Esc> или <F10>.

После копирования вам будет предложено автоматически изменить файл AUTOEXEC.BAT для добавления к определению переменной среды PATH пути к созданному каталогу:



Вам надо выбрать строку, выделенную на этом рисунке.

После этого программа установки Stacker-диска предложит вам автоматически удалить все резидентные программы из файла AUTOEXEC.BAT и перезагрузиться:



Если вы уже удалили резидентные программы раньше, выберите строку, выделенную на этом рисунке и нажмите клавишу <Enter>.

Далее у вас будет выбор - создать пустой Stacker-диск или сразу перенести на Stacker-диск имеющиеся на обычном диске файлы:



Мы настоятельно рекомендуем вам при первой установке Stacker-диска создавать пустой диск и затем вручную переносить на него файлы. Для этого выберите строку "Build an empty Stacker drive".

На следующем этапе вам необходимо выбрать диск для размещения файла Stacker-диска. Т.е. необходимо выбрать диск, на котором будет создан скрытый системный файл Stacker-диска:



Выберите диск, содержащий достаточно свободного места или, что ещё лучше, пустой диск.

Программа-инсталлятор определит размер свободного пространства на выбранном вами диске и предложит размер создаваемого файла Stacker-диска:





Вы можете согласиться с предложенным размером диска и нажать <Enter>. В этом случае всё свободное пространство на выбранном вами диске будет распределено файлу Stacker-диска. Вы можете также уменьшить предложенную величину.

После определения размера диска вам будет предложено три возможности:

создать Stacker-диск;

изменить заданные параметры;

изменить настройку драйвера Stacker-диска.

Если вы всё задали правильно, выберите строку, выделенную на рисунке:



Вы можете поэкспериментировать с параметрами драйвера Stacker-диска, задавая различные значения для размера кластера и максимального коэффициента компрессии:



Однако при первой установке Stacker-диска мы рекомендуем вам использовать значения, принятые по умолчанию.

После выполнения всех описанных выше процедур необходимо перезагрузить операционную систему, после чего вам станет доступен новый Stacker-диск:



Вы также можете создать сразу несколько Stacker-дисков, выбрав в меню строку "Create another Stacker drive". После того, как все Stacker-диски созданы, необходимо перезагрузиться, выбрав строку "Reboot to access Stacker drive(s)".

После установки Stacker-диска в файл CONFIG.SYS будет добавлена строка типа:

DEVICE=C:\STACKER\STACKER.COM G:\STACVOL.000 G:\STACVOL.001

В этой строке после имени драйвера .i.STACKER.COM; следуют параметры - пути доступа к файлам Stacker-дисков.


Дополнительная память


Эта память расположена на отдельной плате, вставляемой в слот расширения материнской платы компьютера. Для её использования необходимо установить специальный драйвер, поставляющийся вместе с платой памяти. В стандартную конфигурацию компьютера плата дополнительной памяти не входит, она продается отдельно.

Дополнительную память, в отличие от расширенной, можно установить в любой компьютер, даже в IBMPC или IBM XT. Расширенная память может быть только в таком компьютере, который использует процессоры 80286, 80386 или 80486.



Драйвер HyperDisk


Драйвер HyperDisk - одно из самых мощных и быстродействующих средств кэширования дисковой памяти. Он работает как с флоппи-дисками, так и с жёсткими дисками. Этот драйвер может располагать кэш в обычной, расширенной или дополнительной памяти компьютера. При использовании драйвера HyperDisk производительность дисковой системы может увеличиться в несколько раз. За счет сокращения объёма физического ввода/вывода и существенного уменьшения перемещений блока головок увеличивается срок службы дисководов.

Для установки драйвера HyperDisk версии 4.30 вам достаточно скопировать в корневой каталог диска C: (или в любой другой каталог любого другого диска) все файлы с расширением exe. Затем надо убедиться в том, что вы не используете другие средства кэширования дисковой памяти, такие как драйвер SMARTDRV.SYS.

На дистрибутивной дискете драйвера HyperDisk находятся следующие файлы: HYPER286.EXE, HYPER386.EXE, HYPERDKX.EXE, HYPERDKE.EXE, HYPERDKC.EXE, HYPERDK.EXE. Все эти файлы (за исключением HYPERDK.EXE) представляют собой различные варианты драйвера HyperDisk. Файл HYPERDK.EXE предназначен для динамического изменения параметров драйвера HyperDisk.

Если ваш компьютер не оборудован расширенной или дополнительной памятью (IBMPC или IBM XT), вы должны использовать файл HYPERDKC.EXE. При этом кэш будет распологаться в стандартной памяти, сильно сокращая доступное другим программам пространство. Для подключения драйвера поместите в файл CONFIG.SYS следующую строку (мы предполагаем, что вы скопировали все файлы драйвера HyperDisk в корневой каталог диска C:):

device=c:\hyperdkc.exe C:100

Параметр C:100 указывает, что кэш должен иметь размер 100 килобайт. Если этот параметр не указывать, то по умолчанию для кэша, расположенного в основной памяти, будет отведено 128 килобайт.

При использовании драйвера HyperDisk параметр BUFFERS в файле CONFIG.SYS должен быть равен 5:

BUFFERS=5

Кроме того, в файл AUTOEXEC.BAT следует добавить строку:

VERIFY=OFF

Если вы - обладатель компьютера, выполненного на базе процессора 80286 (IBM AT), то обычно вам доступно по крайней мере 384 килобайта расширенной памяти. В этом случае используйте следующий вариант подключения драйвера:


device=c:\hyper286.exe

Если вы не укажите параметр C:, для кэша будет отведена вся имеющаяся расширенная память.

Для компьютеров IBM AT, выполненных на базе процессора 80386, используйте файл HYPER386.EXE:

device=c:\hyper386.exe C:2048

В данном случае для кэша отводится два мегабайта расширенной памяти.

Обычно набора описанных только что файлов достаточно для организации кэша практически на любых компьютерах. Однако если у вас возникли проблемы совместимости драйвера HyperDisk с другим используемым программным обеспечением, вы можете попробовать установить драйверы HYPERDKX.EXE или HYPERDKE.EXE. Первый драйвер предназначен для использования расширенной памяти в компьютерах, выполненных на базе процессоров 80286 или 80386, а второй - для использования дополнительной памяти. Эти драйверы используются аналогично только что описанным, например:

device=c:\hyperdke.exe C:2048

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


Драйвер SMARTDRV.SYS


Самый простой (но не самый эффективный) способ организации кэширования дисковой памяти - использование драйвера SMARTDRV.SYS. Обычно он располагается в каталоге DOS на диске c:. Для подключения кэша в файле CONFIG.SYS должна находиться строка:

device=c:\dos\smartdrv.sys [Размер] [МинРазмер] [/A]

Параметр /A, если он задан, указывает, что кэш должен быть расположен в дополнительной (expanded) памяти. В противном случае кэш будет находится в расширенной (extended) памяти.

Если вы решили использовать расширенную память, в файле CONFIG.SYS перед вышеприведённой строкой должна находиться строка:

device=c:\dos\himem.sys

Эта строка нужна для подключения драйвера расширенной памяти HIMEM.SYS.

Необязательный параметр [Размер] задаёт размер области оперативной памяти в килобайтах, отводимой под кэш. Если он не задан, для кэша отводится 256 килобайт памяти. (В том случае, когда задан параметр /A и не указан параметр [Размер], для кэша отводится вся имеющаяся дополнительная память.)

Параметр [МинРазмер] (также необязательный) задаёт минимальный размер кэша в килобайтах. Этот параметр обычно используют при работе с такими программами, которые умеют уменьшать размер кэша и использовать освободившуюся память для своих нужд. Например, MicrosoftWindows может уменьшить размер кэша до нуля.

Приведём рекомендации по выбору параметров в зависимости от типа компьютера и наличия расширенной или дополнительной памяти.



Драйверы кэша и Microsoft Windows


Так как Windows может сам уменьшать размер кэша, созданного драйверами кэширования (вплоть до нуля), не забудьте указать минимальный размер используемого кэша. Для драйвера SMARTDRV.SYS это можно сделать, например, так:

device=c:\dos\himem.sys device=c:\dos\smartdrv.sys 2048 1024

В этом случае, когда программы работают непосредственно в среде MS-DOS, размер кэша составляет 2048 килобайта. Если же используется Windows, размер кэша может уменьшиться до 1024 килобайт.

Аналогично при определении размера кэша в драйвере HyperDisk размер кэша, использующегося при работе с Windows, указывается при помощи параметра CW:, например,

device=c:\hyper386.exe C:2048 CW:1024 H S

Можно использовать и такой способ:

device=c:\hyper386.exe C:2048:1024 H S

При работе драйвера HyperDisk вместе с Microsoft Windows для переключения режимов работы драйвера рекомендуется следующая последовательность действий:

нажмите клавишу <Pause> или <Ctrl><Num Lock>;

нажмите необходимую для выбора нового режима работы драйвера HyperDisk комбинацию клавиш.



Ещё о драйвере HyperDisk


В отличие от драйвера SMARTDRV.SYS, который немедленно записывает все изменения в кэше на диск, HyperDisk может "накапливать" изменения в оперативной памяти и сбрасывать их на диск позже, во время простоев компьютера или через заданный промежуток времени. Это увеличивает производительность при записи данных на диск (а не только при повторном обращении к одним и тем же данным, как это было для драйвера SMARTDRV.SYS). Кроме того, драйвер HyperDisk может оптимизировать последовательность записываемых секторов с целью сокращения перемещений блока головок.

Однако такая задержка во времени опасна, так как если произойдет, например, внезапное отключение питающей сети, драйвер HyperDisk может не успеть записать все изменения в кэше на диск. Это может привести к логическому разрушению файловой системы на кэшируемом диске.

Возможности драйвера HyperDisk реализуются необязательными параметрами. Эти параметры могут задаваться в файле CONFIG.SYS:

device=c:\hyperdke.exe C:2048 H V

Кроме того, некоторые параметры можно изменять во время работы операционной системы при помощи программы HYPERDK.EXE. Для этого надо запустить эту программу с новыми параметрами для драйвера HyperDisk:

hyperdk H V

Приведем список некоторых, наиболее полезных на наш взгляд, параметров:

H Если задан этот параметр, кэшируются только накопители на жёстких магнитных дисках.
F Кэшируются также и накопители на гибких магнитных дисках. Этот режим включён по умолчанию.
V Включение проверки записываемых данных. Этот параметр используется вместо команды MS-DOS VERIFY. Команда VERIFY не должна использоваться вместе с драйвером HyperDisk.
N Не выполнять проверку записываемых данных. Отменяет действие параметра V.
C:nn Параметр определяет количество памяти, используемой драйвером для организации кэша, nn задаёт размер кэша в килобайтах.
W Режим немедленной записи данных на диск сразу после их обновления в кэше. Этот режим включён по умолчанию.
Q Аналогично W, но для флоппи-дисков.
S Запись данных на диск откладывается до тех пор, пока компьютер не перейдет в состояние ожидания.
A Аналогично S, но для флоппи-дисков.
XU Отключение кэша. Вся память, котрая использовалась для кэша, освобождается и становится доступна другим программам.
<
Полный список команд приведен в документации на драйвер HyperDisk.

Приведем комбинацию параметров для кэширования только накопителей на жёстких дисках с отложенной записью измененных данных:

device=c:\hyper386.exe C:2048 H S

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

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

Приведём описание некоторых наиболее важных комбинаций клавиш, управляющих работой драйвера HyperDisk.

Ctrl-Alt-D Отключение драйвера HyperDisk. Эту команду целесообразно использовать при проверке нового программного обеспечения, либо при установке программ, защищенных от копирования.
Ctrl-Alt-E Включение драйвера HyperDisk в работу, используется после ввода предыдущей команды для возобновления кэширования.
Ctrl-Alt-S Включение режима отложенной записи.
Ctrl-Alt-W Выключение режима отложенной записи. Используйте эту команду при выполнении "рискованных" операций, которые могут привести к зависанию компьютера.
Ctrl-Alt-F Команда вызывает принудительную запись содержимого кэша на диск перед запуском каждой новой программы. Эту команду удобно использовать при отладке нового программного обеспечения.
Ctrl-Alt-R Отмена предыдущего режима.
Ctrl-Alt-Del Перезагрузка операционной системы. При нажатии этой комбинации клавиш драйвер HyperDisk запишет содержимое кэша на диск. Когда начнется запись данных, вы услышите два звуковых сигнала. После завершения записи для выполнения перезагрузки операционной системы нажмите Ctrl-Alt-Del ещё раз. Если вы используете какие-либо драйверы или резидентные программы, которые при нажатии указанной комбинации клавиш выполняют немедленную перезагрузку MS-DOS, используйте перед перезагрузкой команду Ctrl-Alt-D для сброса содержимого кэша на диск.

Ещё об оперативной памяти


Для более эффективного использования памяти в компьютерах на базе процессоров 80386 или 80486 необходимо полное понимание механизма, позволяющего загружать драйверы и резидентные программы в расширенную память. Для этого мы вновь вернёмся к карте распределения памяти. Расскажем подробнее об использовании различных участков оперативной памяти операционной системой MS-DOS версии 5.0 при её загрузке в старшие адреса памяти указанием DOS=HIGH в файле CONFIG.SYS.



Фактор чередования


Первое, что вам следует сделать с жёсткими магнитными дисками нового компьютера (или с новыми дисками, установленными в старом компьютере) - выполнить низкоуровневую инициализацию или, другими словами, низкоуровневое форматирование.

Для выполнения низкоуровневой инициализации вы должны запустить специальную программу, находящуюся на дискете, поставляющейся вместе с вашим жёстким диском, или соответствующий модуль базовой системы ввода/вывода BIOS.

Ни одна из команд операционной системы MS-DOS не может выполнить низкоуровневую инициализацию жёсткого диска. Даже программа FORMAT не поможет вам в этом. Вам не обойтись без специальных программ низкоуровневой инициализации жёсткого диска.

Что делает программа низкоуровневой инициализации?

Для того, чтобы это понять, вспомним, как устроен жёсткий диск ("винчестер").

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

На рисунке изображен HDD с открытой крышкой, вы можете увидеть диски и головки:

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

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


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

Блоки обычно называют секторами дорожки. Эти секторы идентифицируются своим порядковым номером относительно начала дорожки. Начало дорожки отмечается специальной меткой - маркером дорожки.

На рисунке показано расположение дорожек и секторов на поверхности одной пластины магнитного диска.



Сказанное выше касается накопителей на жёстких магнитных дисках (HDD). Гибкие диски (флоппи-диски) имеют только две рабочие поверхности. Соответственно, накопитель на гибких магнитных дисках (FDD) имеет только две магнитные головки. Информация записывается на гибкие диски также по дорожкам и секторам.

Для наглядности приведем в отдельной таблице способ нумерации дорожек, головок и секторов:

Дорожки от 0 до максимального значения

Головки от 0 до максимального значения

Сектора от 1 до максимального значения

Секторы нумеруются начиная с первого, а дорожки и головки - начиная с нулевой.

Максимальное значение для дорожек, головок и секторов сильно зависит от типа HDD и магнитного носителя, а также от способа форматирования и некоторых других причин, о которых мы расскажем позже.

Как мы уже говорили, блоки данных, записанные на дорожках, содержат служебную информацию. Например, для каждого блока в области служебной информации записывается его порядковый номер, равный номеру соответствующего сектора данных.

Когда формируется структура магнитной дорожки и записываются области служебной информации?

Во время процедуры низкоуровневого форматирования.

Обратите внимание:

Низкоуровневое форматирование (или низкоуровневая инициализация, что одно и то же) формирует логическую структуру дорожки. Дорожка разделяется на сектора, для каждого сектора записывается служебная информация. Область данных размером 512 байт обычно заполняется значением 0E6h. Низкоуровневое форматирование выполняется для всех имеющихся дорожек.



Дискеты инициализируются утилитой MS- DOS FORMAT. Эта утилита выполняет низкоуровневое форматирование только для дискет. Накопители на жёстких магнитных дисках форматируются на низком уровне при помощи специальных программ.

Будьте внимательны при выполнении этой операции:

Низкоуровневое форматирование уничтожает всю информацию, записанную на магнитном носителе!

Мы долго рассказывали вам о том, как информация хранится на дисках, но пока ещё ничего не сказали о факторе чередования (Interleave Factor). Теперь, когда мы познакомились с дорожками и секторами, можно перейти к этому таинственному фактору, так сильно влияющему на быстродействие диска.

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

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

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

Однако пока контроллер записывал данные в память компьютера, пока компьютер выдавал команду на чтение следующего сектора, диск, разумеется, продолжал вращаться! И если производительность контроллера диска недостаточна, к моменту начала чтения второго сектора головка уже может проскочить управляющую запись второго сектора. Поэтому следующий сектор, который обнаружит контроллер, будет иметь номер три.

Теперь контроллер будет ждать, пока диск повернётся на один оборот, и только затем он сможет прочитать второй сектор. Таким образом, если программа будет читать несколько секторов с последовательными номерами (а она обычно так и делает) на чтение каждого сектора будет затрачено время, равное времени оборота диска!



Например, если дорожка диска содержит 17 секторов, для чтения всей дорожки потребуется 17 оборотов диска вместо одного.

Как можно улучшить временные характеристики?

Например, можно располагать секторы через один (см. рисунок):



Когда секторы располагаются последовательно в порядке возрастания их номеров, фактор чередования секторов равен 1. Когда чередуются через один - фактор чередования равен 2.

В таком случае после чтения одного сектора будет достаточно времени для чтения следующего, и вся дорожка может быть считана за 2 оборота диска. Это уже намного лучше.

Описанная выше ситуация встречается особенно часто на малопроизводительных машинах XT и AT, использующих дисковый контроллер ST506/412. Поэтому если вы пользуетесь такой машиной, не упускайте случая увеличить производительность диска в несколько раз.

Модели персональных компьютеров

В настоящее время существуют три главных направления развития персональных компьютеров и, соответственно, три преобладающих на рынке типа персональных компьютеров:

компьютеры, которые произошли от первой разработки фирмы IBM - компьютера IBMPC;

компьютеры фирмы APPLE;

рабочие станции фирм HEWLETT PACKARD и SUN.

Первый персональный компьютер фирмы IBM - IBM PC - использовал процессор 8088, работающий с тактовой частотой 4,75 мегагерц. Он не имел жёсткого диска, вся его дисковая память ограничивалась двумя дисководами для флоппи-дисков. Кроме того, в первых моделях был установлен монохромный видеоадаптер, который не мог работать в графическом режиме.

Но тем не менее этот первый компьютер во многом определил направления развития всех персональных компьютеров и стал первым мировым стандартом для персональных компьютеров.

Следующая модель компьютера фирмы IBM называлась IBM XT. От IBM PC его отличало прежде всего наличие жёсткого диска объёмом 10 мегабайт (по тем временам это был диск огромной ёмкости).

Но самую большую популярность получила следующая модель компьютера фирмы IBM - IBM AT. В этом компьютере был установлен новый процессор фирмы Intel 80286, использовался жёсткий диск объёмом 20 мегабайт, появилась расширенная память, часы реального времени, работающие от аккумулятора и многие другие новшества.



У IBM появилось много подражателей. Разные фирмы выбросили на рынок огромное количество моделей компьютеров, совместимых с моделями IBM XT и IBM AT. Эти копии отличались от оригиналов более низкой стоимостью и иногда более высоким быстродействием. К сожалению, надежность IBM-совместимых компьютеров была не очень высока (по сравнению с надёжностью компьютеров, выпускаемых самой фирмой IBM), а IBM-совместимость не всегда была полной.

После появления 32-разрядного процессора Intel 80386 фирма IBM выпустила серию компьютеров PS/2. Было разработано несколько моделей, имеющих разные номера, разные процессоры и разные возможности. Модель 30 была во многом похожа на IBM AT, модель 80 была сделана на базе процессора 80386 и обладала высокой производительностью.

В настоящее время многие фирмы выпускают персональные компьютеры на базе процессоров 80386 и 80486. Такие компьютеры часто называют супер-AT, хотя, конечно, все они имеют свои названия. Например, один из самых быстродействующих и надёжных компьютеров называется COMPAQ-386. Как следует из названия, он создан фирмой Compaq.

Компьютеры фирмы APPLE мало распространены в странах СНГ, в основном из-за их высокой стоимости. Мы не будем подробно останавливаться на них, отметим только, что эти компьютеры обладают большой производительностью и имеют отличные видеомониторы с высокой разрешающей способностью. Компьютеры фирмы APPLE программно несовместимы с серией IBM PC, так как они используют процессоры серии 68XXX фирмы Motorola.

Рабочие станции фирм HEWLETT PACKARD и SUN являются лидерами по производительности среди всех типов персональных компьютеров. Это стало возможным благодаря использованию в них процессоров с новой архитектурой - RISC и SPARC.

Архитектура RISC (Reduced Instruction Set Computer - компьютеры с сокращенным набором команд) предполагает не только сокращение до минимума количества используемых команд, но и выполнение практически всех команд за 1-2 машинных такта. Благодаря этому RISC-процессоры обладают громадным быстродействием.



Ещё большее быстродействие имеют процессоры с архитектурой SPARC (Scalable Processor Architecture - масштабируемая архитектура процессора).

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

Современные дисковые контроллеры IDE, ESDI и SCSI содержат, как правило, быстродействующий электронный буфер, в который синхронно с вращением диска копируется информация, прочитанная с дорожки. Запись информации на диск также выполняется с использованием промежуточного буфера. Поэтому в таких случаях при низкоуровневом форматировании необходимо задавать фактор чередования равным единице - такой контроллер всегда успеет прочитать или записать всю дорожку за один оборот диска.

Все программы низкоуровневого форматирования дисков запрашивают у оператора фактор чередования. Смысл фактора чередования очень прост - он равен количеству оборотов диска, за которое можно последовательно в порядке возрастания номеров секторов прочитать одну дорожку. Если секторы расположены подряд в порядке возрастания номеров, при достаточном быстродействии контроллера диска можно прочитать дорожку за один оборот диска. Если фактор чередования равен двум, потребуется два оборота (даже при высоком быстродействии контроллера диска).

А что делать, если HDD вашего компьютера уже используется и содержит важные данные, которые вам не хотелось бы терять в результате выполнения низкоуровневого форматирования? Есть выход и из этой ситуации. Существуют программы, позволяющие изменить фактор чередования диска без потерь записанной на нём информации. Это такие программы, как CALIBRAT из пакета Norton Utilities и утилита SPINRITE.

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


Фрагментация файлов


Для того чтобы понять причины появления фрагментированных файлов, нам необходимо вспомнить основы логической структуры файловой системы MS-DOS. Мы не будем углубляться в подробности, основное внимание сосредоточим на том, как хранятся файлы на диске.

Если вы работали с персональным компьютером, вам должно быть известно, что файловая система MS-DOS имеет иерархическую структуру. Каждый логический диск имеет корневой каталог, в котором описаны файлы и другие каталоги, которые, в свою очередь, также могут описывать файлы и каталоги. Что значит "описаны"? Это означает, что для каждого файла в каталоге хранится отдельная запись, описывающая файл (или другой каталог). Эту запись мы будем называть дескриптором файла (или, соответственно, дескриптором каталога).

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

Мы уже говорили о том, что физически информация на диске храниться в секторах, которые для MS-DOS имеют размер 512 байт. Сектор - минимальный элемент данных, читаемый с диска или записываемый на диск. Для работы с файлами операционная система MS-DOS пользуется элементами данных, называемых кластерами. Кластер - это просто совокупность секторов, имеющих смежные номера. Кластер может состоять из одного сектора (для дискет) или содержать несколько секторов (для жёсткого диска).

Операционная система выделяет для записываемых на диск файлов некоторое количество кластеров, в зависимости от размера файла. Если файл маленький (например, в нём всего один или два байта), выделяется один кластер. Это, в частности, означает, что при размере кластера, равном 8 секторам, для хранения файла размером в один байт используется 4 килобайта дисковой памяти.

Где же располагаются кластеры, выделяемые файлу?

Номер первого выделенного файлу кластера хранится в дескрипторе файла, т.е. в каталоге. Для выделения остальных кластеров можно использовать две стратегии.


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

В этом случае можно говорить о сильной фрагментации свободного пространства на диске. Получается ситуация, когда на диске есть много свободного места, но оно разделено на много участков маленького размера.

Операционная система MS-DOS поступает по-другому. Для нового файла распределяются любые свободные кластеры, даже если они расположены в разных местах диска. Для каждого файла MS-DOS хранит номера всех занимаемых им кластеров в специальной таблице - таблице размещения файлов. Обычно эту таблицу называют FAT (File Allocation Table).

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

После форматирования диска утилитой MS-DOS FORMAT все кластеры, предназначенные для хранения файлов, помечаются в FAT как свободные. В процессе записи на диск нового файла в FAT записываются номера всех кластеров, распределенных данному файлу. Эти номера хранятся в виде односвязного списка.

Список строится следующим образом. Перед началом записи нового файла на диск MS-DOS просматривает FAT и находит первый свободный кластер. Номер этого кластера записывается в дескриптор файла. Далее в сектора этого кластера записываются данные. Если файл короткий и помещается целиком в один кластер, после записи данных в элементе FAT, соответствующий первому кластеру записывается специальное число, означающее конец цепочки кластеров (0FFFFh или 0FFFh в зависимости от типа FAT).



Если же длина файла больше размера одного кластера, MS-DOS ищет следующий свободный кластер, который может оказаться в любом месте диска. Номер найденного свободного кластера записывается в элемент FAT для первого кластера, распределенного файлу. Таким образом, элемент FAT, соответствующий первому кластеру будет содержать ссылку на второй кластер, распределенный файлу. Ссылка представляет собой просто порядковый номер следующего кластера.

По мере того, как файл записывается на диск, MS-DOS формирует в FAT список кластеров, распределённых файлу. В элементе FAT, соответствующему последнему кластеру, распределённому файлу, записывается число, означающее конец цепочки кластеров.

При удалении файла все кластеры, принадлежащие файлу, помечаются как свободные - в соответствующие элементы FAT записывается нулевое значение. В каталоге первая буква имени файла заменяется на русскую букву "х" (в альтернативной кодировке символов). Это означает, что файл удалён. Те кластеры, которые раньше занимал удалённый файл, становятся доступными для записи новых файлов.

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

Однако при использовании описанного выше метода файл становится фрагментированным - он как бы "размазан" по диску. К чему это может привести?

К тому, что для доступа к файлу необходимо перемещать магнитные головки от одного участка файла к другому. А на это требуется время, и весьма значительное.

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

Существуют различные методы дефрагментации диска. Наиболее очевидный и наименее удобный - выгрузка всего диска на дискеты или стример, форматирование диска и восстановление всех файлов, соответственно, с дискет или стримера. Лучше всего использовать специальные программы, такие как Norton SPEEDISK. Во второй части главы мы подробно расскажем вам об использовании этой программы.


Электронный диск


Если в вашем компьютере имеется расширенная или дополнительная память, вы можете организовать так называемый электронный диск. Подключив в файле CONFIG.SYS драйвер RAMDRIVE.SYS, поставляемый вместе с операционной системой MS-DOS, вы получите дополнительный псевдо-диск, организованный в оперативной памяти. От обычного диска он будет отличаться значительно более высоким быстродействием. Кроме того, так как данные, записанные на электронный диск, хранятся в оперативной памяти, при выключении питания компьютера содержимое электронного диска будет потеряно.

Электронный диск больше всего подходит для хранения временных и рабочих файлов, так как после выключения питания компьютера (в том числе после аварийного отключения питающей сети) содержимое этих дисков пропадает.

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



Калейдоскоп архиваторов


Мы рассказали вам только об одном архиваторе - arj.exe. Существуют ещё несколько популярных программ архивации. Лучше всего выбрать для себя один, самый удобный с вашей точки зрения архиватор, и пользоваться им для сжатия файлов на диске. Однако вам могут принести архивы программ, подготовленные другими архиваторами. Поэтому полезно иметь полный набор самых популярных архиваторов и уметь по крайней мере восстанавливать содержимое архивов, созданных этими архиваторами.

Каждый архиватор создаёт файл архива со своим расширением имени. Архиватор arj.exe, в частности, создаёт архивы с расширением имени arj, например !collaps.arj. Поэтому вы можете не указывать расширение обрабатываемого архива.

Приведём таблицу расширений имени для некоторых архиваторов:

Архиватор Расширение имени архива
arj.exe .arj
pkzip.exe .zip
lharc.exe .lzh
lha.exe .lzh
ice.exe .ice
pak.exe .pak
zoo.exe .zoo
pkarc.exe .arc
pkpak.exe .arc

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

Все архиваторы имеют примерно один и тот же формат параметров:

[имя архиватора] [команда] [опции] [имя архива] [имена файлов]

Некоторые архиваторы состоят из нескольких программ, выполняющих различные функции. Например PKZIP.EXE создаёт архивы (архивирует), а PKUNZIP.EXE - восстанавливает файлы из архива (разархивирует). Каждый архиватор использует свои команды и опции для выполнения одних и тех же операций.

Мы не будем детально описывать команды и опции для всех архиваторов, такое описание займет слишком много места. Вместо этого мы сведем в таблицы основные команды и опции для самых распространенных архиваторов.

В следующей таблице мы приведём команды для создания архива с именем !collaps из файлов текущего каталога (вы можете использовать любое другое имя).

Архиватор Команда Имя архива
arj.exe arj a !collaps !collaps.arj
pkzip.exe pkzip !collaps !collaps.zip
lharc.exe lharc a !collaps !collaps.lzh
lha.exe lha a !collaps !collaps.lzh
ice.exe ice a !collaps !collaps.ice
pak.exe pak a !collaps !collaps.pak
zoo.exe zoo a !collaps *.* !collaps.zoo
pkarc.exe pkarc a !collaps !collaps.arc
pkpak.exe pkpak a !collaps !collaps.arc
<
Если вам нужно удалить из текущего каталога файлы, записанные в архив, вместо команды "a" используйте "m".

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

Архиватор Команда Имя архива
arj.exe arj a -r !collaps !collaps.arj
pkzip.exe pkzip -rp !collaps !collaps.zip
lharc.exe lharc a -r !collaps !collaps.lzh
lha.exe lha a -r !collaps !collaps.lzh
ice.exe ice a -r !collaps !collaps.ice
pak.exe pak a /i !collaps !collaps.pak
Для извлечения содержимого архива вместе со всеми подкаталогами можно использовать следующие команды:

Архиватор Команда Имя архива
arj.exe arj x !collaps !collaps.arj
pkunzip.exe pkunzip -d !collaps !collaps.zip
lharc.exe lharc e -x !collaps !collaps.lzh
lha.exe lha e -x !collaps !collaps.lzh
ice.exe ice e -x !collaps !collaps.ice
pak.exe pak e /path !collaps !collaps.pak
Некоторые архиваторы предоставляют возможность создания многотомных архивов, расположенных на нескольких дискетах. В отличие от утилиты MS-DOS BACKUP одновременно с выгрузкой содержимого каталогов и подкаталогов архиваторы выполняют сжатие файлов.

Очень удобно создавать многотомные архивы программой ARJ.EXE. Для этого ей надо задать опцию -vnnnn, где nnnn - ёмкость используемых для архива дискет: 360, 720, 1200, 1440. Например, для выгрузки на дискеты высокой плотности (1,2 мегабайта) каталога BORLANDC со всеми подкаталогами можно использовать следующую команду:

arj a -r -v1200 a:\borlandc c:\borlandc

Предполагается, что каталог BORLANDC находится на диске C:, а многотомный архив будет создаваться на дискетах, вставляемых в дисковод a:.

Если BORLANDC - текущий каталог, команда будет выглядеть более просто:

arj a -r -v1200 a:\borlandc

В процессе создания архива утилита ARJ будет просить вас устанавливать всё новые и новые дискеты, до тех пор, пока все файлы не будут выгружены.

Для восстановления каталога BORLANDC лучше всего создать этот каталог командой MD или при помощи оболочки Norton Commander и сделать его текущим. Затем установите в дисковод первую дискету и выдайте следующую команду:



arj x -v a:\borlandc

Другая интересная возможность, предоставляемая многими архиваторами - защита создаваемого архива паролем для предотвращения несанкционированного доступа к хранящимся в нём файлам. Пароль должен указываться как при создании архива, так и при извлечения из него файлов.

Для задания пароля архиватор ARJ использует опцию -g. Пароль должен следовать сразу за этой опцией. Например, пусть нам требуется перенести все файлы из текущего каталога в архив и защитить архив паролем "pwd". Для этого можно использовать следующую команду:

arj m -r -gpwd !collaps

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

arj x -gpwd !collaps

Приведём таблицу опций, используемых различными архиваторами для защиты архива паролем:

Архиватор Опция задания пароля
arj.exe -g
pkzip.exe -s
pak.exe -g
pkarc.exe -g
pkpak.exe -g

Кэширование дисковой памяти


Во время работы операционная система и прикладные программы часто обращаются к одним и тем же файлам или к одним и тем же областям диска. Например, практически постоянно происходит обращение к таблице размещения файлов FAT, к каталогам используемых дисков. Системы управления базами данных могут часто обращаться к одним и тем же записям базы данных, к словарям или вспомогательным рабочим файлам. Отладчик Microsoft Code View версии 3.00 в пошаговом режиме после трассировки каждой строки отлаживаемой программы записывает своё текущее состояние в специальный файл на диске.

Отладчики программ

Один из необходимых этапов в разработке программного обеспечения - отладка программ. Она выполняется с помощью специальных отладочных средств - программ-отладчиков, позволяющих проследить ход выполнения программы.

Существуют несколько известных программ-отладчиков, отличающихся своими возможностями. Самые мощные из них - Turbo Debugger фирмы Borland и Code View фирмы Microsoft.

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

Можно привести много примеров, когда в процессе работы программы происходит частое обращение к одним и тем же областям диска. Или даже к одним и тем же секторам диска.

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

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


Описанный выше механизм хранения в оперативной памяти наиболее часто используемых секторов диска называется кэшированием дисковой памяти или просто кэшированием диска. Существуют различные способы организации кэширования диска в MS-DOS. Все они реализуются специальными драйверами, которые необходимо подключать в файле CONFIG.SYS.

Схематически реальный алгоритм кэширования дисковой памяти выглядит так.

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

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

Кэширование диска для некоторых программ дает увеличение быстродействия в несколько раз! Иногда с программой просто невозможно работать без кэша. Например, отладчик Microsoft Code View версии 3.00. Попробуйте с его помощью трассировать программу по командам на компьютере с медленным диском - на трассировку каждой команды уйдет 15-20 секунд! Если же вы воспользуетесь кэшем, время, затраченное на трассировку команды, сократится практически до нуля.

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

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


Оптимизируйте характеристики дисковой подсистемы: подберите


Оптимизируйте характеристики дисковой подсистемы: подберите оптимальный фактор чередования, выполните дефрагментацию диска (глава 2).

Используйте расширенную память для организации кэширования дисковой памяти и электронного диска (глава 2).

Используйте программы-архиваторы, средства динамического сжатия информации на диске, форматирование дискет на повышенную ёмкость (глава 3).

Выполните рекомендации по оптимальному использованию оперативной памяти. Обновите версию MS-DOS до 5.00, расположите ядро MS-DOS в верхней памяти (глава 4).



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

Ядро операционной системы MS-DOS версии 5.0, её буфера и рабочие области можно перенести в область адресов, лежащую выше границы 1024 килобайт. При этом доступная для программ область оперативной памяти увеличится на несколько десятков килобайт.

Стандартная IBM AT с процессором 80286 обычно имеет по крайней мере 384 килобайта расширенной памяти. Эту память лучше всего задействовать для организации кэширования дисков. Кэширование дисков кардинальным образом улучшит производительность дисковой подсистемы компьютера.

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

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



Первое, что необходимо сделать - перенести ядро операционной системы MS-DOS, её буфера и рабочие области в область адресов, лежащую выше границы 1024 килобайт. Эта возможность появилась в MS-DOS начиная с версии 5.0, поэтому если вы пользуетесь более ранними версиями, сейчас самое время обновить MS-DOS до версии 5.0.

После установки MS-DOS версии 5.0 на компьютере IBM AT файл CONFIG.SYS будет содержать следующие две строки:

DEVICE=C:\DOS\HIMEM.SYS DOS=HIGH

Первая строка нужна для подключения драйвера HIMEM.SYS, управляющего расширенной памятью. Этот драйвер необходим для размещения MS-DOS выше границы 1024 килобайт.

Вторая строка указывает, что MS-DOS и все её рабочие области должны быть размещены в расширенной памяти.

Как вы можете убедиться сами, для увеличения размера доступной программам оперативной памяти на несколько десятков килобайт вам достаточно сделать две вещи:

обновить версию MS-DOS до 5.0;

поместить в файл CONFIG.SYS приведенные выше две строки.

Учтите, что эти две строки должны располагаться в файле CONFIG.SYS именно в том порядке, в котором они были приведены выше - вначале необходимо подключить драйвер HIMEM.SYS, а затем указать MS-DOS о необходимости загрузки её ядра и областей данных в старшие адреса памяти строкой DOS=HIGH.

После того, как вы переместили операционную систему в область адресов выше 1024 килобайт, займитесь размещением кэша дисковой подсистемы и электронного диска. Здесь всё зависит от того, сколько и какой памяти установлено в вашем компьютере. Вам необходимо найти компромисс между размером кэша и дополнительной или расширенной памятью, отведённой используемому программному обеспечению. При этом вы можете воспользоваться рекомендациями, приведёнными в главе, посвящённой настройке дисковой подсистемы компьютера.


Компьютер IBMPC или IBM XT


Оптимизируйте характеристики дисковой подсистемы: подберите оптимальный фактор чередования, выполните дефрагментацию диска (глава 2).

Если ваш компьютер оборудован дополнительной памятью, рассмотрите возможность организации кэширования дисковой памяти (глава 2).

Используйте программы-архиваторы, средства динамического сжатия информации на диске, форматирование дискет на повышенную ёмкость (глава 3).


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




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

В этом случае всё что вы можете сделать для увеличения объёма доступной программам оперативной памяти - это сократить до минимума количество используемых драйверов и резидентных программ.

В следующей таблице мы перечислим драйверы, входящие в состав MS-DOS версии 5.0. Пользуясь этой таблицей, вы сможете принять решение о необходимости включения того или иного драйвера в состав вашей конфигурации операционной системы.

Драйвер Назначение драйвера и рекомендации по использованию
EGA SYS Сохранение текущего состояния видеоадаптера EGA. Этот драйвер вам нужен только в том случае, если вы работаете с оболочкой DOSSHELL или WINDOWS и ваш компьютер оснащён видеоадаптером EGA.
COUNTRY SYS Этот драйвер нужен вам только в одном случае - если вы используете интернациональную поддержку, встроенную в MS-DOS, например, работаете с французским или немецким языками. Возможно использование файлов COUNTRY.SYS и EGA.CPI от русифицированной MS-DOS версии 4.01.
DISPLAY SYS Аналогично предыдущему драйверу.
KEYBOARD SYS Аналогично предыдущему драйверу.
PRINTER SYS Аналогично предыдущему драйверу.
HIMEM SYS Драйвер предназначен для управления расширенной памятью. Он бесполезен на тех компьютерах, в которых отсутствует расширенная память. В частности, на компьютерах IBM PC и IBM XT.
ANSI SYS Драйвер обеспечивает расширенное управление консолью. Этот драйвер используется достаточно редко. Подключайте его только в том случае, если он действительно необходим для правильной работы используемых вами программ, о чём можно узнать в документации на эти программы.
RAMDRIVE SYS Этот драйвер предназначен для организации электронного диска в оперативной памяти. Используйте его только в том случае, когда в компьютере имеется расширенная или дополнительная память достаточного объёма. Учтите, что более предпочтительным способом увеличения быстродействия дисковой подсистемы является кэширование дисковой памяти.
SMARTDRV SYS Драйвер используется для организации кэширования дисковой памяти. Его использование оправдано только на тех компьютерах, которые имеют расширенную или дополнительную память.
DRIVER SYS Этот редко используемый драйвер предназначен для поддержки нестандартных или внешних накопителей на флоппи-дисках.
SETVER EXE Драйвер позволяет "обмануть" программы, не рассчитанные на использование MS-DOS версии 5.0. Когда такие программы пытаются определить версию MS-DOS, драйвер SETVER.EXE возвращает заранее оговорённое для каждой программы значение, например, 3.30. Если вы не запускаете программы, рассчитанные на конкретную версию MS-DOS, у вас нет необходимости использовать этот драйвер.
EMM386 EXE Этот драйвер используется для управления расширенной памятью в компьютерах, выполненных на базе процессоров 80386 или 80486. Он совершенно бесполезен, если ваш компьютер содержит процессоры 8086, 8088, NEC20 или 80286.



Компьютеры IBM PC и IBM XT


Если у вас компьютер IBM PC или IBM XT, вам недоступна расширенная память (потому что в этих моделях её нет). Если у вас есть плата дополнительной памяти, вы можете воспользоваться параметром /A:

device=c:\dos\smartdrv.sys /A

В данном случае для кэша будет отведена вся имеющаяся дополнительная память. Для того, чтобы оставшаяся дополнительная память могла быть использована другими программами, укажите явно размер кэша. Если дополнительной памяти мало, задайте размер кэша порядка 300-500 килобайт:

device=c:\dos\smartdrv.sys 320 /A

В большинстве случаев этого будет достаточно для ускорения работы многих программ. Вы можете сами провести эксперименты с размером кэша и выбрать значение, соответствующее используемому вами программному обеспечению. Чем больше размер кэша, тем лучше! Оптимальный размер составляет 2 мегабайта. Но помните и о других программах, которые тоже используют дополнительную память.



Эти компьютеры могут быть оборудованы


Эти компьютеры могут быть оборудованы как расширенной, так и дополнительной памятью. Обычно имеется по крайней мере 384 килобайта расширенной памяти, которую вы можете использовать для организации дискового кэша:

device=c:\dos\himem.sys device=c:\dos\smartdrv.sys 384

Если у вас наряду с расширенной памятью имеется дополнительная, вы также можете её использовать, указав параметр /A:

device=c:\dos\smartdrv.sys 2000 /A

Команда FASTOPEN

Команда FASTOPEN - ещё одно средство кэширования, предоставляемое операционной системой MS-DOS. Это резидентная программа, запоминающая в оперативной памяти расположение файлов и каталогов на диске. При её использовании сильно уменьшается время доступа к файлам.

Однако драйвер SMARTDRV.SYS обеспечивает большую эффективность, так как он может хранить в оперативной памяти не только расположение файлов и каталогов, но и любые часто используемые файлы или участки файлов. Поэтому мы не рекомендуем вам использовать FASTOPEN.


Используйте расширенную память для организации


Выполните дефрагментацию диска (глава 2).

  Используйте расширенную память для организации кэширования дисковой памяти и электронного диска (глава 2).

Используйте программы-архиваторы, средства динамического сжатия информации на диске, форматирование дискет на повышенную ёмкость (глава 3).

Выполните рекомендации по оптимальному использованию оперативной памяти. Обновите версию MS-DOS до 5.00, расположите ядро MS-DOS в верхней памяти. Расположите драйверы и резидентные программы в расширенной памяти (глава 4).

Расположите в теневой памяти содержимое BIOS (глава 4).



Последние две строки - пример размещения драйверов в расширенной памяти.

Для загрузки в расширенную память резидентных программ воспользуйтесь командой LOADHIGH или LH. Приведём фрагмент файла AUTOEXEC.BAT, в котором используется загрузка резидентных программ в расширенную память:

LOADHIGH c:\cyryllic\cyrkeyb c LH c:\mouse.com

Первая строка демонстрирует загрузку в расширенную память драйвера клавиатуры, вторая - драйвера мыши.

Если вам не нужна эмуляция дополнительной памяти, вы можете увеличить размер области расширенной памяти, доступной для загрузки драйверов и резидантных программ на 64 килобайта. Для этого при подключении драйвера EMM386.exe вам необходимо воспльзоваться параметром /I:

device=c:\dos\emm386.exe noems /Ie000-efff

Из-за ограниченного объёма книги мы не можем рассказать вам о всех возможностях драйвера emm386.exe. Для получения дополнительной информации обратитесь к документации по операционной системе MS-DOS версии 5.0.


Метод подбора


При использовании этого метода вам предлагается попробовать по очереди все значения фактора чередования с измерением производительности диска.

Преимущество метода: не требуются специальные программы оптимизации фактора чередования.

Недостатки:

значительная продолжительность процесса;

необходимость полной предварительной выгрузки содержимого оптимизируемого HDD.

Рекомендуемая последовательность действий:

Убедитесь в том, что ваш диск подключен без использования контроллеров типов IDE, ESDI или SCSI, так как в этом случае должно всегда использоваться значение фактора чередования, равное 1. (Задание других значений для фактора чередования в этом случае возможно, однако это не приведёт к увеличению производительности дисковой подсистемы и вы только зря потратите время). Такие дисковые контроллеры обычно установлены на высокопроизводительных компьютерах AT/386 и AT/486. Тип контроллера вы можете узнать из документации, поставляемой вместе с компьютером или с контроллером диска.

Выгрузите оптимизируемый диск на магнитную ленту (стример), на дискеты или скопируйте его содержимое на другой физический диск (если в компьютере установлено два физических диска, т.е. два винчестера).

Запустите программу низкоуровневого форматирования. Задайте значение фактора чередования (Interleave Factor), равное 1, и выполните низкоуровневое форматирование диска.

Запустите утилиту MS-DOS FDISK, создайте на отформатированном диске небольшой раздел (порядка 3-5 мегабайт) и отформатируйте его утилитой MS-DOS FORMAT.

Для проверки быстродействия HDD измерьте время, затраченное на форматирование диска утилитой FORMAT с данным значением фактора чередования.

Вернитесь снова к этапу низкоуровневого форматирования, задав значение фактора чередования, равное 2. Выполните действия по созданию раздела утилитой FDISK и форматирования его утилитой FORMAT с замером времени, затраченного на форматирование.

Проверьте все значения фактора чередования от 1 до 17 (17 - количество секторов на дорожке HDD), записывая время форматирования при каждом значении фактора чередования в таблицу:


Фактор Время форматирования, сек.

1

2

.........

16

17

Выберите из полученной таблицы значение фактора чередования, при котором форматирование выполняется за минимальное время. Выполните низкоуровневое форматирование с найденным оптимальным значением фактора чередования.

Создайте на диске все необходимые вам для работы разделы и выполните их форматирование утилитой MS-DOS FORMAT.

Восстановите на диск выгруженные вами перед началом оптимизации файлы.

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

Мы не будем подробно останавливаться на процедуре выгрузки содержимого диска перед низкоуровневым форматированием - об этом вы сможете прочитать в документации на операционную систему. Расскажем подробнее о низкоуровневом форматировании.

Существует два способа выполнить низкоуровневое форматирование HDD.

Первый способ предполагает использование специальных программ форматирования. Вместе с компьютером всегда продаётся дискета, содержащая средства инициализации HDD и описание к ней. Самое лучшее - воспользоваться такой дискетой и следовать инструкции по форматированию, приведенной в описании.

Второй способ основан на использовании процедуры инициализации диска, записанной в микросхеме постоянного запоминающего устройства ROM (Read Only Memory - только читаемая память), располагающейся в контроллере диска. Этот способ пригоден не для всех контроллеров, так как не все контроллеры содержат ROM. Подробности вы сможете узнать из документации на ваш дисковый контроллер, там же приведены все необходимые сведения о работе с программой форматирования, записанной в ROM.

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

Напомним вам, что низкоуровневое форматирование жёсткого диска невозможно выполнить с помощью команд или утилит MS-DOS, в том числе с помощью команды FORMAT.


Приведём таблицу некоторых, самых важных


Приведём таблицу некоторых, самых важных на наш взгляд, параметров драйвера QEMM.SYS:

RAM Этот параметр указывается в тех случаях, когда необходимо выполнить отображение расширенной памяти на свободные участки зарезервированной памяти. Используйте этот параметр, если вы решили переместить драйверы и резидентные программы в расширенную память.
ROM Параметр указывает на то, что содержимое BIOS должно быть скопировано в расширенную память. Используется для увеличения скорости выполнения программ, активно использующих BIOS.
NOEMS Если задан этот параметр, драйвер QEMM.SYS не будет выполнять эмуляцию дополнительной памяти. В этом случае освобождается дополнительно 64 килобайта зарезервированной памяти, в которой могут разместиться драйверы и резидентные программы. Вам следует указать этот параметр в том случае, если ни одна из используемых вами программ не нуждается в дополнительной памяти.
Всего же драйверу QEMM.SYS можно указывать десятки параметров, с помощью которых можно выполнить тонкую настройку драйвера практически для любой конфигурации программных и аппаратных средств. Мы научим вас использовать только основные возможности драйвера QEMM.SYS, остальные сведения вы сможете найти в документации на драйвер.

Начните с того, что поместите в самое начало файла CONFIG.SYS следующую строку:

device=c:\qemm\qemm.sys RAM NOEMS

В этом случае драйвер QEMM.SYS будет использоваться только для управления областью старшей памяти HMA и размещения драйверов и резидентных программ в расширенной памяти. Эмуляция дополнительной памяти выполняться не будет.

Далее запустите программу QEMM.COM, которая находится в каталоге QEMM и входит в состав дистрибутивной дискеты. Эта программа нужна для правильной настройки параметров драйвера QEMM-386.

После запуска программа QEMM.COM выведет на экран карту использования оперативной памяти:

Current Mode = ON Expanded Memory Available = 0K Page Frame Address = None

Expanded memory is being used.

г===================================¬ ¦ Area Size Status ¦ ¦ 0000 - 0FFF 64K Excluded ¦ ¦ 1000 - 9FFF 576K Mappable ¦ ¦ A000 - AFFF 64K Video ¦ ¦ B000 - B7FF 32K High RAM ¦ ¦ B800 - BFFF 32K Video ¦ ¦ C000 - C7FF 32K ROM ¦ ¦ C800 - C9FF 8K High RAM ¦ ¦ CA00 - CAFF 4K ROM ¦ ¦ CB00 - CBFF 4K Split ROM ¦ ¦ CC00 - CFFF 16K Adapter RAM ¦ ¦ D000 - EFFF 128K High RAM ¦ ¦ F000 - F7FF 32K ROM ¦ ¦ F800 - F8FF 4K Mapped ROM ¦ ¦ F900 - FFFF 28K ROM ¦ L===================================-



Области памяти, отмеченные как "High RAM", доступны для размещения в них драйверов и резидентных программ. Оказывается, у вас есть 168 килобайт памяти для драйверов и резидентных программ!

Теперь о том, как же эту память использовать. Запустите другую программу, входящую в состав пакета QEMM-386 - программу LOADHI.COM. На экран будет выведена таблица областей зарезервированной памяти, доступных для загрузки драйверов и резидентных программ:

г=============================================¬ ¦ Region Area Size Status ¦ ¦ 1 B001 - B7FD 31K Available ¦ ¦ 2 C801 - C9FD 7.7K Available ¦ ¦ 3 D001 - EFFF 133K Available ¦ L=============================================-

В данном случае имеется три доступные области с номерами 1, 2 и 3. Эти области имеют размер, соответственно, 31, 7.7 и 133 килобайта.

Для загрузки драйверов в одну из областей используйте драйвер LOADHI.SYS, указав ему в качестве параметра путь загружаемого драйвера и параметры этого драйвера, например:

device=c:\qemm\loadhi.sys c:\dos\ansi.sys

Для загрузки в расширенную память резидентных программ используйте программу LOADHI.COM. Для этого расположите её в файле AUTOEXEC.BAT и укажите ей путь загружаемой резидентной программы и её параметры:

c:\qemm\loadhi cyrkeyb c

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

После запуска программы OPTIMIZE запустите программу LOADHI ещё раз. Вы увидите, что драйверы и резидентные программы разместились в разных областях зарезервированной памяти:

г=============================================¬ ¦ Region Area Size Status ¦ ¦ 1 B001 - B207 8.1K Used (DISPLAY) ¦ ¦ 1 B208 - B30E 4.1K Used (ANSI) ¦ ¦ 1 B30F - B370 1.5K Available ¦ ¦ 1 B371 - B57A 8.1K Used (EP) ¦ ¦ 1 B57B - B7FD 10K Available ¦ ¦ 2 C801 - C848 1.1K Used (RAMDRIVE) ¦ ¦ 2 C849 - C8AD 1.5K Used (SJDRIVER) ¦ ¦ 2 C8AE - C8F3 1K Used (SWAKEYB) ¦ ¦ 2 C8F4 - C9FD 4.1K Available ¦ ¦ 3 D001 - DBE7 47K Used (STACKER) ¦ ¦ 3 DBE8 - E78F 46K Used (DISKREET) ¦ ¦ 3 E790 - E7A1 0.2K Available ¦ ¦ 3 E7A2 - EB4A 14K Used (MOUSE) ¦ ¦ 3 EB4B - EFFF 18K Available ¦ L=============================================-



Во всех областях имеется свободное пространство, в которое можно загрузить драйверы или резидентные программы (свободные области отмечены словом Available).

Для оптимального использования свободных областей зарезервированной памяти вы должны знать, сколько памяти требует каждый используемый вами драйвер или резидентная программа. Как это определить?

Запустите программу MFT.COM, которая находится в каталоге QEMM. С её помощью вы можете определить размер памяти, нужный для резидентных программ и драйверов. Выберите из меню "First Meg" слово "Programs". На экран будет выведен список всех загруженных программ с указанием в столбце Size требуемой для них памяти:



Аналогично для драйверов выберите из меню "DOS" слово "DRIVERS". На экран будет выведен список всех загруженных драйверов с указанием в столбце Size требуемой для них памяти:



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

Программа LOADHI и драйвер LOADHI.SYS допускают явное указание номера области, в которую необходимо загрузить, соответственно, резидентную программу и драйвер. Номер области указывается с помощью параметра /r:.

Например, для загрузки драйвера мыши в область с номером 3 в файле AUTOEXEC.BAT используйте такую строку:

c:\qemm\loadhi /r:3 c:\mouse\mouse

Аналогично для загрузки драйвера ANSI.SYS в первую область в файл CONFIG.SYS необходимо поместить следующую строку:

device=c:\qemm\loadhi.sys /r:1 c:\dos\ansi.sys

Программа OPTIMIZE сама определяет требуемый для используемых резидентных программ и драйверов размер оперативной памяти и сама располагает их оптимальным способом в имеющихся свободных областях. При этом для указания номера области она использует параметр /r:.


Ненужные файлы


Прежде всего, удалите редко используемые или вовсе ненужные вам файлы операционной системы MS-DOS. Приведём список редко используемых файлов MS-DOS версии 5.0 с указанием их размера и назначения:

4201 CPI 6404 Кодовые страницы для принтеров, 4208 CPI 720 можно удалять, так как в них нет 5202 CPI 395 русских букв.

ANSI SYS 9029 Редко используемый драйвер консоли, его лучше оставить, так как он используется некоторыми программами.

APPNOTES TXT 9701 Это замечания о совместимости MS-DOS с другим программным обеспечением, можно прочитать, а затем удалить.

BACKUP EXE 36092 Неудобная утилита выгрузки диска лучше удалить и использовать другие средства, например Norton Backup или архиваторы.

DOSHELP HLP 8065 Справочник по командам MS-DOS на английском языке.

DOSSHELL COM 4623 Диалоговая оболочка DOSSHELL. DOSSHELL EXE 235484 Если вы её не используете, DOSSHELL GRB 3260 можете удалить все эти файлы. DOSSHELL HLP 161763 DOSSHELL INI 17048 DOSSHELL VID 9003 DOSSWAP EXE 18756

DRIVER SYS 5409 Этот драйвер нужен только для поддержки дополнительных FDD ёмкостью 720 килобайт.

EDIT COM 413 Это экранный редактор текста, он EDIT HLP 17898 работает не самостоятельно, а через QBASIC. Если вы решили удалить QBASIC, имеет смысл удалить и эти файлы.

EDLIN EXE 12642 Очень неудобный строчный редактор текста, удаляйте смело!

EMM386 EXE 91742 Драйвер дополнительной памяти, его можно использовать только на компьютерах, использующих процессор 80386.

FASTOPEN EXE 12050 Утилита буферизации ввода/вывода для системных областей диска. Если вы используете кэширование, она вам не нужна.

* BAS Все файлы с расширением BAS можно удалять, так как это примеры программ, составленных на языке QBASIC.

HELP EXE 11473 Утилита для справочника по командам. Если вы удалили справочник, удалите и эту утилиту.

KEYBOARD SYS 34697 Драйвер клавиатуры, обычно никогда не используется.

LCD CPI 10753 Кодовая страница для жидкокристаллических дисплеев, без русских букв.

MSHERC COM 6934 Драйвер дисплея Hercules, можно удалять.


PRINTER SYS 18804 Драйвер принтера, обычно не содержит средств для работы с русской кодовой таблицей, можно удалять.

QBASIC EXE 254799 Бэйсик, если вы его не используете, QBASIC HLP 130810 удалите эти два файла, а также все файлы с расширением BAS и файлы EDIT.COM, EDIT.HLP.

README TXT 33655 Этот текст надо прочитать и удалить.

RESTORE EXE 38294 Утилита восстановления каталогов, выгруженных BACKUP.EXE. Можно удалять.

Если на вашем диске совсем мало места, установите минимальный вариант MS-DOS, например, такой:

системные файлы IO.SYS, MSDOS.SYS COMMAND.COM PRINT.COM XCOPY.EXE FORMAT.COM HIMEM.SYS SMARTDRV.SYS

Остальные файлы храните на дискетах.

Многие текстовые процессоры и другие программы создают файлы резервных копий. Эти файлы имеют расширение, начинающееся с символов $, {, или расширения .BAK, .TMP, .SYD, .SVD и некоторые другие. Если по какой-либо причине компьютер "завис", временные файлы, созданные, например, текстовым процессором Microsoft Word или оболочкой Microsoft Windows остаются на диске и засоряют его. Размеры таких файлов могут быть весьма значительны - порядка нескольких мегабайт! Поэтому в случае зависания операционной системы удалите сами все временные файлы с расширением .TMP.


Нестандартное форматирование дискет


Вам, наверное, известно, что наиболее распространены дискеты с двойной (Double Density - DD) и высокой (High Density - HD) плотностью, имеющие диаметр 5,25 и 3,5 дюйма.

Утилита MS-DOS FORMAT может отформатировать эти дискеты следующим образом.

Для дискет диаметром 5.25 дюйма:

Плотность Ёмкость отформатированной дискеты
Двойная - DD 360 килобайт
Высокая - HD 1,2 мегабайта

Для дискет диаметром 3,5 дюйма:

Плотность Ёмкость отформатированной дискеты
Двойная - DD 720 килобайт
Высокая - HD 1,44 мегабайта

В документации по операционной системе MS-DOS подробно описано, как форматировать дискеты двойной и высокой плотности.

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

Мы уже рассказывали вам о том, что на дисках (и на дискетах) информация записывается на дорожках. Каждая дорожка делится на сектора. В следующей таблице мы приведём количество используемых дорожек и секторов для дискет, отформатированных стандартным образом:

5,25 DD, 360 К 40 дорожек, 9 секторов
5,25 HD, 1,2 М 80 дорожек, 15 секторов
3,5 DD, 720 К 40 дорожек, 9 секторов
3,5 HD, 1,44 М 80 дорожек, 18 секторов

Оказывается, на дискетах как двойной, так и высокой плотности можно расположить большее по сравнению с приведённым в этой таблице количество дорожек и секторов!

При этом ёмкость дискеты увеличится. Например, очень распространено форматирование дискет DD диаметром 5.25 дюйма на ёмкость 800 килобайт (стандартная ёмкость такой дискеты - 360 килобайт). Дискета, отформатированная на 800 килобайт, имеет 80 дорожек и 10 секторов.

Для нестандартного форматирования вам потребуются специальные программы. Наиболее распространены программы 800.COM, 900.COM, FDFORMAT.EXE. Кроме того, вы можете воспользоваться утилитой PU_1700.COM, созданной Ю.И. Панковым. Эта утилита работает более корректно с MS-DOS версии 5.0, учитывая все её особенности.


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

Например, поместите в AUTOEXEC.BAT такую строку:

c:\utility\800.com

Здесь мы предположили, что вы записали программу 800.COM в каталог UTILITY, расположенный на диске C:.

Если программа 800 запущена, вы можете форматировать дискеты обычной утилитой FORMAT, задавая при помощи параметров /T: и /N: требуемое количество дорожек и количество секторов на дорожке, соответственно. Например:

FORMAT A: /T:80/N:10

В данном случае дискета, вставленная в дисковод A:, будет форматироваться на ёмкость 800 килобайт.

Обратите внимание - вы сможете пользоваться дискетой, отформатированной на повышенную ёмкость, только в том случае, если была запущена программа 800.COM или аналогичная.

Какие параметры можно задавать утилите FORMAT? Это зависит от типа установленного в вашем компьютере дисковода для флоппи-дисков. Распространены 4 типа таких дисководов:

дисковод для дискет двойной плотности диаметром 5,25 дюйма, это дисковод для дискет, отформатированных на 360 килобайт;

дисковод для дискет высокой плотности диаметром 5,25 дюйма, это дисковод для дискет, отформатированных на 1,2 мегабайта;

дисковод для дискет двойной плотности диаметром 3,5 дюйма, это дисковод для дискет, отформатированных на 720 килобайт;

дисковод для дискет высокой плотности диаметром 3,5 дюйма, это дисковод для дискет, отформатированных на 1,44 мегабайта.

При использовании программы 800.COM вместе с дисководом для дискет двойной плотности диаметром 5,25 или 3,5 дюйма утилите FORMAT можно указывать следующие параметры:

Ёмкость дискеты Параметры команды FORMAT
360KB FORMAT a: /T:40/N:9
400KB FORMAT a: /T:40/N:10
Если у вас дисковод высокой плотности, вам также доступны и другие параметры:

Ёмкость дискеты Параметры команды FORMAT
720KB FORMAT a: /T:80/N:9
800KB FORMAT a: /T:80/N:10
1200KB FORMAT a: /T:80/N:15
1360KB FORMAT a: /T:80/N:17
1440KB FORMAT a: /T:80/N:18
1600KB FORMAT a: /T:80/N:20
<


Последние две строки таблицы описывают параметры, доступные только для дисководов высокой плотности для дискет диаметром 3,5 дюйма.

Программа PU_1700.COM - является аналогом 800.COM, но обладает большими возможностями. После запуска программы PU_1700 вы можете задавть утилите FORMAT следующие парметры:

FORMAT drv:[/T:tt][/N:nn][другие параметры]

Здесь:

drv - имя дисковода, использующегося для форматировния (A или B);

tt  - число форматируемых цилиндров;

nn - число секторов на дорожке.

Приведём таблицу значений объёмов отформатированной дискеты в зависимости от типа дисковода, типа дискеты и параметров форматирования tt и nn:

-------------T--------------------T-----------------------¬ ¦ Опции ¦ Допустимый ¦ Объём отформатирован- ¦ ¦ FORMATа ¦ тип дисковода ¦ ной дискеты в байтах ¦ +-------T----+----T----T----T-----+-----------------------+ ¦ tt ¦ nn ¦360к¦720к¦1.2м¦1.44м¦ норма - максимум ¦ +-------+----+----+----+----+-----+-----------------------+ ¦ 40-41 ¦ 9 ¦ + ¦ + ¦ + ¦ + ¦ 362.496 - 371.712 ¦ ¦ 40-41 ¦ 10 ¦ + ¦ + ¦ + ¦ + ¦ 398.848 - 409.086 ¦ ¦ 80-83 ¦ 9 ¦ ¦ + ¦ + ¦ + ¦ 724.480 - 752.168 ¦ ¦ 80-83 ¦ 10 ¦ ¦ + ¦ + ¦ + ¦ 806.460 - 837.120 ¦ ¦ 80-83 ¦ 15 ¦ ¦ ¦ + ¦ + ¦ 1.212.928 - 1.259.008 ¦ ¦ 80-83 ¦ 16 ¦ ¦ ¦ + ¦ + ¦ 1.294.848 - 1.344.000 ¦ ¦ 80-83 ¦ 17 ¦ ¦ ¦ + ¦ + ¦ 1.376.768 - 1.427.968 ¦ ¦ 80-83 ¦ 18 ¦ ¦ ¦ + ¦ + ¦ 1.457.664 - 1.512.960 ¦ ¦ 80-83 ¦ 19 ¦ ¦ ¦ ¦ + ¦ 1.539.584 - 1.596.928 ¦ ¦ 80-83 ¦ 20 ¦ ¦ ¦ ¦ + ¦ 1.620.480 - 1.681.920 ¦ ¦ 80-83 ¦ 21 ¦ ¦ ¦ ¦ + ¦ 1.702.400 - 1.765.888 ¦ L-------+----+----+----+----------+------------------------

PU_1700, в отличие от драйвера 800, имеет два дополнительных формата большого объёма:

1.44 MB для HD 5" (1.2 MB)

1.68 MB для HD 3" (1.44 MB)

Приведём пример задания на форматирование дискеты HD на дисководе 1.44 MB (3,5 дюйма) на объём 1.702.400 байт в среде операционной системы MS-DOS версии 5.0:

FORMAT a:/t:80/n:21 /u

Параметр /u необходим для того, чтобы утилита FORMAT не делала попыток сохранения на форматируемой дискете данных, используемых утилитой UNFORMAT, восстанавливающей содержимое дискеты после ошибочного форматирования.



В документации на программу PU_1700 рекомендуется использовать следующие значения параметров (для MS-DOS версии 5.0):

г====================================================¬ ¦ FORMAT a:/t:81/n:10/u - на объём .816.640 байт ¦ ¦ FORMAT a:/t:81/n:18/u - на объём 1.476.096 байт ¦ ¦ FORMAT b:/t:81/n:21/u - на объём 1.723.904 байт ¦ L====================================================-

Программу PU_1700 следует запускать из файла AUTOEXEC.BAT в следующем формате:

PU_1700 [/параметр] или PU_1700 [/параметр ... /параметр]

Приведём некоторые параметры программы PU_1700 (полностью параметры описаны в документации к программе PU_1700, составленной на русском языке и распространяемой в файле PU_1700.DOC).

/cfat контроль FAT при форматировании (необходим для корректной работы утилиты FORMAT MS-DOS версии 5.0.

Этот параметр допустим только при первом запуске программы.

Следующие параметры можно указывать как при первом запуске программы, так и при последующих её перезапусках:

/off отключение программы PU_1700;

/on активизация отключенной программы PU_1700;

/A=off дисковод A не обслуживается (не установлен);

/B=off дисковод B не обслуживается (не установлен);

/A=360 параметр указывает, что тип установленного дисковода A - дисковод двойной плотности (DD), рассчитан на дискеты диаметром 5,25 дюймов и на стандартную ёмкость 360 килобайт;

/B=360 дисковод 360 KB, 5" (DD);

/A=1.2 дисковод 1.2 MB, 5" (HD);

/B=1.2 дисковод 1.2 MB, 5" (HD);

/A=720 дисковод 720 KB, 3" (DD);

/B=720 дисковод 720 KB, 3" (DD);

/A=1.44 дисковод 1.44 MB, 3" (HD);

/B=1.44 дисковод 1.44 MB, 3" (HD);

/? вызов подсказки;

/sm=1 оптимальное расположение секторов при форматировании для увеличения производительности дисковода;

/sm=2 другой способ оптимального расположения секторов при форматировании для увеличения производительности дисковода;

/sm=off отключение оптимизации расположения секторов при форматировании.

В заключение несколько советов относительно использования нестандартно отформатированных дискет.

Не используйте нестандартно отформатированные дискеты для резервного копирования дистрибутивных дискет программного обеспечения, особенно операционных систем. У вас могут появиться проблемы с установкой программного обеспечения с нестандартных дискет. В крайнем случае воспользуйтесь программой PU_1700. Дискеты, подготовленные этой программой, могут быть загрузочными (системными).

Лучшее применение для программ нестандартного форматирования - форматирование дискет двойной плотности диаметром 5,25 дюйма (360 килобайт) на ёмкость 800 килобайт. Такие дискеты вы можете использовать для хранения архивов, документации, другого программного обеспечения, не критичного к структуре дорожки используемой дискеты.


Низкоуровневое форматирование


Самая простая утилита низкоуровневого форматирования - hdinit. Запустите её (предварительно выгрузив диск) с параметром C: для первого HDD или с параметром D: для второго HDD. Например:

hdinit c:

На экране вы увидите следующее:

Программа hdinit сообщит вам имя и физический адрес инициализируемого HDD (в нашем случае инициализируется диск drive c:, его адрес - 80H), количество цилиндров (cylinders), головок (heads), секторов на трек (sector/track) и другие параметры. Далее программа сообщит вам, что она уничтожит все данные, находящиеся на диске и спросит, желаете ли вы продолжить работу. На этот вопрос вы отвечаете нажатием клавиши "y", если вы желаете инициализировать диск и "n" в противном случае.

На второй вопрос - Scan for existing defective tracks (y/n) (желаете ли вы просмотреть существующие дефектные дорожки) - ответьте "n".

Продолжение диалога можно увидеть на следующем рисунке:

Сперва программа выведет на экран список дефектных дорожек диска в формате цилиндр/головка (если на диске имеются дефектные дорожки). Вы сможете пополнить список дефектных дорожек, введя их номера в аналогичном формате, или исключить дорожки из списка дефектных, если укажите адрес дорожки в формате "-цилиндр/головка". Если дефектных дорожек нет, просто нажмите клавишу <Enter>.

На следующий вопрос (Is the list OK?) надо ответить"y".

Далее программа спросит вас, использовать ли при форматировании значение фактора чередования, равное трем (Use interleave factor of 3 (y/n)? ). На этот вопрос надо ответить "n", если, конечно, вы и в самом деле решили использовать другой фактор чередования.

После этого программа попросит вас ввести новое значение для фактора чередования (ENTER new interleave factor (2...8)). На рисунке было введено значение 4. Для подтверждения на следующий вопрос (Use interleave factor of .. (y/n)?) необходимо ответить "y".

Последний вопрос - это самое последнее предупреждение, которое программа выдает перед тем, как начать форматировать диск (LAST CHANCE: Continue with initialization (y/n)?). Мы ответили на этот вопрос "n", и на этом работа программы закончилась. Если же вам надо начать инициализацию, ответьте "y". На экране будет отображаться процесс форматирования. Он может продолжаться несколько десятков минут.


Рассмотрим теперь способ низкоуровневого форматирования HDD при помощи программы, записанной в ROM дискового контроллера, т.е. .i.форматирование при помощи BIOS;. Мы уже говорили о том, что этот способ будет работать не для всех типов контроллеров.

Вначале запустите программу-отладчик DEBUG, входящую в стандартно поставляемую конфигурацию MS-DOS:

c:\>debug

В ответ на приглашение отладчика введите:

g=c800:5

Запустится программа низкоуровневого форматирования. Она задаст вам вопросы, аналогичные тем, что задаёт утилита hdinit. Вам необходимо установить правильное значение для фактора чередования (Interleave Factor).

Если программа форматирования не запустилась, попробуйте вместо адреса c800:5 ввести c800:6 (работает на компьютере Bondwell B-300) или d800:5. Правильное значение адреса запуска программы можно узнать только из документации на используемый контроллер диска.

Что вы увидите на экране после запуска описанным только что способом программы низкоуровневого форматирования? Это зависит от типа используемого контроллера и от фирмы, изготовившей контроллер. Поэтому мы не будем приводить копии экранов для одного отдельного случая. Вместо этого перечислим возможные вопросы, которые может задать утилита низкоуровневого форматирования.

В начале работы программа определяет физические параметры установленных HDD и выводит их на экран. Затем вам может быть предложено меню. В этом меню обычно находятся:

функция форматирования (Format);

функция проверки (Verify);

функция анализа поверхности (Surface Analysis).

Для выполнения низкоуровневого форматирования выберите функцию Format или Format/Verify. Вам будет нужно указать требуемый фактор чередования (Interleave) и другие параметры, для которых лучше использовать те значения, которые предложит сама программа форматирования.

Обычно контроллер сам определяет оптимальные значения для сдвига цилиндров (Cylinder Skew) и сдвига головок (Head Skew). Если ваша утилита не может сама определить оптимальное значение для сдвига цилиндров, используйте величину, равную одной трети от общего количества секторов на дорожке. Аналогично, для сдвига головок используйте значение 1.

Некоторые HDD используют резервирование секторов (Sector Sparing). При этом на каждой дорожке резервируется один сектор для замены дефектного. Резервирование секторов заметно сокращает общую ёмкость HDD, поэтому используйте резервирование только для дисков, имеющих значительное количество дефектов.

После низкоуровневого форматирования не забудьте запустить утилиту FDISK, создать с её помощью разделы на диске и отформатировать их утилитой FORMAT.


Область от 0 до 640 килобайт


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



Область от 640 до 1024 килобайт


Эта область зарезервирована фирмой IBM для аппаратного обеспечения. В ней находятся:

память видеоадаптера (адреса от A000:0000 до BFFF:FFFF);

ROM для обслуживания видеоадаптеров, дисков и другой аппаратуры (адреса от C000:0000 до EFFF:FFFF);

системный BIOS (адреса от F000:0000 до FFFF:000F).

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

Как правило, зарезервированная память задействована не полностью, в ней есть свободные области. Эти свободные области и используются при работе с расширенной или дополнительной памятью.

Драйвер EMM386.EXE отображает свободные области на расширенную память, пользуясь виртуальным режимом работы процессоров 80386 или 80486 (.i.режим виртуального процессора 8086;). К сожалению, в этой книге нет места для детального описания виртуального режима работы. Для нас важно, что процессор, находясь в виртуальном режиме при использовании драйвера EMM386.EXE адресуется к свободным областям зарезервированной памяти. При этом процессор использует механизм адресации, соответствующий реальному режиму работы. Однако на эти свободные области зарезервированной памяти отображаются участки расширенной памяти, находящиеся выше границы 1024 килобайта.

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

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

Разумеется, программы могут передвигать окно, адресуя через него по частям всю дополнительную память.



Область от 1024 килобайт и выше


Это расширенная память. Её начальный участок от 1024 до 1088 килобайт - область старшей памяти (High Memory Area - HMA). Именно в эту область MS-DOS версии 5.0 может помещать значительную часть своего ядра и области данных. Интересной особенностью области HMA является то, что она доступна для процессора, работающего в реальном режиме, то есть как раз в том режиме, который использует MS-DOS.

Как такое может быть? Для того, чтобы это понять, необходимо вспомнить механизм сегментной адресации памяти, используемый всеми процессорами серии Intel 80XXX. Физический адрес получается из двух компонент - сегментного адреса и смещения. Каждая компонента - двухбайтовая. Для вычисления адреса в реальном режиме работы процессора к сегментной компоненте, сдвинутой влево на четыре бита, прибавляется компонента смещения.

Например, пусть у нас имеется логический адрес 1234:0005 (при работе с адресами обычно используются шестнадцатеричные числа). Сегментный адрес равен 1234, а смещение - 0005. Сдвигаем сегментный адрес влево на четыре бита, получаем 12340. Затем прибавляем смещение 0005 и получаем физический адрес 12345.

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

А что получится, если задать сегментный адрес FFFF, то есть самое большое значение для сегментного адреса?

Очевидно, что конец области оперативной памяти, простирающейся от 0 до 1024 килобайт, имеет адрес FFFF:000F, так как этому логическому адресу соответствует физический адрес FFFFF. Адрес FFFFF - это самый большой адрес, который может быть задан при использовании 20-разрядной адресации. А реальный режим работы процессора использует именно 20-разрядную адресацию.

Зададим себе вопрос: что произойдёт, если, например, при записи в память будет указан логический адрес FFFF:0010?

Если в вашем компьютере установлен процессор 8086 или 8088, то произойдет запись в самую первую ячейку оперативной памяти, имеющую физический адрес 00000, так как перенос из 19-го разряда в двадцатый будет игнорирован (адресные разряды в процессоре 8086 или 8088 нумеруются от 0 до 19).


Процессоры 80286, 80386 и 80486 имеют большее количество адресных линий, поэтому перенос в 20-й разряд не будет потерян. Произойдет адресация памяти за пределами первого мегабайта!

За счёт двадцатого разряда адресной шины процессор в реальном режиме получает доступ к памяти в диапазоне адресов от FFFF:0010 до FFFF:FFFF. Это почти 64 килобайта (без шестнадцати байт). Именно эти 64 килобайта MS-DOS версии 5.0 может использовать для размещения своего ядра и областей данных. Всё что вам нужно для того чтобы использовать таким образом область старшей памяти HMA - это две строки в файле CONFIG.SYS:

DEVICE=C:\DOS\HIMEM.SYS DOS=HIGH

Драйвер расширенной памяти QEMM-386

Для тех, кто желает использовать все возможности по оптимизации использования памяти в компьютерах с процессорами 80386 и 80486, мы расскажем о драйвере расширенной памяти QEMM-386 фирмы Quarterdeck. Мы рассмотрим версию 6.0. Этот драйвер выполняет все функции драйвера EMM386.EXE, но делает это лучше и быстрее. Вы можете использовать QEMM-386 для решения следующих задач.

Отображение расширенной памяти на свободные участки зарезервированной памяти компьютера, лежащие в диапазоне адресов от 640 килобайт до 1024 килобайт. Драйвер QEMM-386 выделяет из зарезервированной памяти участки размером 4 килобайта. Расположенные рядом участки объединяются в области. Эти области впоследствии могут быть использованы для загрузки драйверов и резидентных программ.

Эмуляция дополнительной памяти с использованием расширенной памяти. Для эмуляции используется участок зарезервированной памяти размером 64 килобайта. Быстродействие дополнительной памяти, созданной драйвером QEMM-386, больше, чем созданной драйвером EMM386.EXE.

Драйвер QEMM-386 может переписать содержимое медленной памяти BIOS в область быстродействующей расширенной памяти. Драйвер выполняет отображение этого участка быстродействующей памяти в диапазон адресов BIOS. При этом значительно возрастает скорость выполнения программ, активно использующих BIOS.

Если в вашем компьютере установлен видеоадаптер EGA или VGA, и вы не используете графические режимы работы видеоадаптера, драйвер QEMM-386 выделит вашим программам дополнительно 96 килобайт видеопамяти.

Мы опишем только основные возможности драйвера QEMM-386. Тех, кто хочет использовать все возможности QEMM-386, мы адресуем к документации, поставляющейся вместе с этим драйвером.


Оболочка Microsoft Windows


Оболочка Microsoft Windows - самое удобное и мощное средство организации как переключения задач, так и мультизадачности. Windows может выступать в качестве интегратора практически любых программных средств, используя как программы, специально созданные для работы в среде Windows, так и программы, рассчитанные на MS-DOS.

Своё название Windows (окна) получил из-за того, что для каждой из работающих программ выделяется свой участок экрана - окно:

Разумеется, при необходимости программа может использовать экран целиком.

В среде Windows вы сможете легко переключаться от одной программы к другой, причём возможно параллельное выполнение программ.

Но это ещё не всё.

Вы также сможете переносить информацию из одной программы в другую! Например, вы можете сделать копию экрана справочной базы данных, работающей в текстовом режиме, и затем вставить полученный текст в документ, подготавливаемый в текстовом процессоре WORD. Вы сможете сфотографировать экран программы, работающей в графическом режиме, и отредактировать полученное изображение графическим редактором Paint Brush, входящим в состав Windows. Затем вы сможете вставить отредактированное изображение в документ, подготовленный при помощи текстового процессора WORD.

Наконец, если ваша машина оборудована процессором 80386 или 80486, вам доступна мультизадачность. Когда она нужна?

Например, вам необходимо распечатать большой текст, подготовленный текстовым процессором WORD. Вы можете запустить WORD и начать печать. После запуска печати отключитесь от текстового процессора, нажав комбинацию клавиш <Alt-Tab>. Теперь можно запустить любую другую программу (даже ещё один текстовый процессор WORD) и продолжить работу. Процессорное время будет распределяться между всеми запущенными программами, причём вы сами сможете установить приоритеты программ.

Для эффективной работы Windows вам нужен компьютер с процессором 80286, оборудованный по крайней мере двумя мегабайтами расширенной памяти. В крайнем случае можно ограничиться и стандартными 384 килобайтами расширенной памяти, однако при этом желательно иметь быстродействующий жёсткий диск и тактовую частоту процессора не менее 12-16 мегагерц.

К сожалению, в книге такого объёма мы не можем описать подробно оболочку Windows. Вам необходимо обратиться к специальной литературе. Мы рекомендуем вам обязательно попробовать Windows - вы не пожалеете о затраченном времени.



ОПЕРАТИВНАЯ ПАМЯТЬ


4.1.

4.2.

4.3.

Если вы помните историю появления персональных компьютеров, то наверное знаете, что объём оперативной памяти в них был порядка сотни-двух килобайт. В то время этого было достаточно для всех имеющихся тогда программ.

Фирма IBM в своем первом персональном компьютере IBMPC использовала процессор Intel 8086, способный непосредственно адресовать 1024 килобайта оперативной памяти. Из этого адресного пространства фирма IBM использовала для операционной системы и программ 640 килобайт памяти, зарезервировав оставшиеся 384 килобайта для системного постоянного запоминающего устройства, дисплейного адаптера и другой аппаратуры.

Однако по мере того, как компьютеры становились всё мощнее и мощнее, для них находились новые задачи, требующие всё большего объёма оперативной памяти. Первоначально заложенного в архитектуру IBM PC объёма памяти программ (640 килобайт) стало недостаточно для решения сложных задач.

С появлением процессора Intel 80286, способного адресовать до 16 мегабайт оперативной памяти, возникли предпосылки для расширения доступного программам адресного пространства. Архитектура компьютера IBM AT позволяет использовать для программ все 16 мегабайт памяти.

Казалось бы, всё хорошо, однако даже если ваш компьютер содержит 16 мегабайт оперативной памяти, операционная система MS-DOS может использовать для себя и программ только первые 640 килобайт. При этом самим программам достаётся обычно не более 500 - 550 килобайт основной оперативной памяти, остальная память используется MS-DOS для своих собственных нужд.

Это связано с тем, что MS-DOS использует так называемый реальный режим работы процессора 80286. В реальном режиме процессор 80286 становится несколько улучшенным аналогом старого процессора 8086, и может адресовать только первые 1024 килобайта памяти.

Возникает несколько странная ситуация - память есть, но пользоваться ей нельзя!



Определение конфигурации


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

В составе аппаратных средств обычно имеются:

процессор 8086, 8088, 80286, 80386 или 80486;

стандартная оперативная память (Conventional Memory), обычно её размер составляет 640 килобайт;

расширенная память (Extended Memory), установленная на материнской плате компьютера или на отдельной плате;

дополнительная память (Expanded Memory), расположена на отдельной плате;

дисковод для жёсткого магнитного диска (HDD - Hard Disk Drive) с контроллером;

один или два дисковода для флоппи-дисков (FDD - Floppy Disk Drive)

В зависимости от наличия и типа имеющегося оборудования из числа перечисленного выше вам будет необходимо выбрать те или иные процедуры оптимизации.

Вам потребуется определить:

тип контроллера дисковода для жёсткого магнитного диска (HDD);

тип установленного в компьютере центрального процессора (8086, 8088, 80286, 80386, 80486);

наличие и объём имеющейся расширенной оперативной памяти;

наличие и объём установленной в компьютере дополнительной оперативной памяти;

версию используемой операционной системы.



Оптимизация фактора чередования


Реально можно использовать два метода выбора правильного значения для фактора чередования:

метод подбора;

метод, основанный на использовании специальных утилит.



Одно из существенных дополнений, отличающих


Одно из существенных дополнений, отличающих версию MS-DOS 5.0 от предыдущей, является переключатель задач. С его помощью вы можете запустить на выполнение несколько программ, рассчитанных на операционную систему MS-DOS.

Например, вы можете запустить одновременно текстовый процессор WORD, интегрированную среду разработки программ BORLAND C, оболочку Norton Commander и пару справочных баз данных, таких как TechHelp. С помощью комбинации клавиш <Alt/Tab> вы сможете легко переключаться с одной программы на другую.

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

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

Но не все программы можно сделать резидентными. Попробуйте поискать резидентный редактор текста, аналогичный текстовому процессору WORD или резидентную систему разработки программного обеспечения, аналогичную Microsoft Quick C или BORLAND C.

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

Мультизадачность в MS-DOS реализуется при помощи таких систем, как DESKVIEW или Microsoft Windows (версии 3.0 или более поздних версий). Как правило, мультизадачные оболочки или операционные системы требуют как минимум процессора 80386 и несколько мегабайт расширенной памяти. Если у вас имеется стандартный компьютер IBMAT с расширенной памятью размером 384 килобайта, то переключатель задач MS-DOS версии 5.0 - единственный для вас способ организации "мультизадачности".



Для разрешения работы переключателя задач MS-DOS запустите оболочку DOSSHELL (выдав из системного приглашения команду DOSSHELL) и выберите строку "Enable Task Swapper" из меню Options:



Экран оболочки DOSSHELL будет содержать две области: область меню для запуска программ Main и область запущенных в настоящий момент программ Active Task List:



Запустите любую программу, пользуясь меню Main и нажмите комбинацию клавиш Ctrl-Esc. Вы снова окажитесь в оболочке DOSSHELL и сможете запустить ещё одну программу.

Нажимая клавишу Tab, вы сможете переходить из области Main в область Active Task List и обратно. Если запущено несколько программ, нажимая комбинацию клавиш Alt-Tab можно переключаться с одной программы на другую.

Перед тем, как перезагружать операционную систему или выключать питание компьютера, убедитесь в том, что все запущенные программы завершили своё выполнение. При этом область Active Task List должна быть пустой.


Переменная среды PATH


Вам, наверное, известно назначение переменной среды PATH, устанавливаемой в файле AUTOEXEC.BAT: эта переменная служит для перечисления путей доступа к каталогам, содержащим запускаемые программы. Например:

PATH = c:\;c:\dos;c:\norton;d:\borlandc\bin;e:\word;

Когда в ответ на системное приглашение MS-DOS вы набираете имя программы, MS-DOS вначале ищет эту программу в текущем каталоге, а затем в каталогах, перечисленных в переменной среды PATH. Если вы желаете запустить текстовый процессор Microsoft Word, вы набираете: word и нажимаете клавишу <Enter>. Если переменная PATH установлена так, как в нашем примере, то после просмотра текущего каталога командный процессор в процессе поиска программы WORD.EXE просмотрит корневой каталог диска c:, каталог, содержащий операционную систему MS-DOS c:\dos, каталоги c:\norton и d:\borlandc\bin, и, наконец, каталог e:\word. Здесь и располагается искомая программа.

Для запуска текстового процессора потребуется некоторое время. Это время будет затрачено, в частности, и на просмотр перечисленных каталогов, находящихся на разных дисках.

Вы можете ускорить запуск программ, правильно расположив каталоги в определении переменной PATH:

Каталоги, которые содержат наиболее часто запускаемые программы, целесообразно размещать в левой части определения PATH.

Например, если вы постоянно запускаете Norton Commander и текстовый процессор Microsoft Word, а транслятором BorlandC пользуетесь эпизодически, рекомендуется преобразовать приведенную выше строку следующим образом:

PATH = c:\;c:\norton;e:\word;d:\borlandc\bin;c:\dos;

Корневой каталог c:\ мы поместили в левой части потому, что в этом каталоге описан командный процессор COMMAND.COM, нужный для запуска любых программ. Утилиты MS-DOS обычно используются редко, поэтому мы поместили их в правой части строки.



Потерянные кластеры


Самый простой способ избавиться от потерянных кластеров - запустить утилиту MS-DOS CHKDSK. Например, если вам надо проверить файловую систему на диске C: и исправить её возможные повреждения (в том числе устранить потерянные кластеры), введите из системного приглашения следующую команду:

chkdsk c: /F

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

Затем все ненужные файлы можно удалить.

Другой способ устранения потерянных кластеров заключается в использовании специальной утилиты Norton Disk Doctor из пакета Norton Utilities. Эта диалоговая утилита способна выполнить диагностику и ремонт файловой системы даже в случае её сильных повреждений.



Практика: Эффективное использование оперативной памяти


Приведём конкретные рекомендации, которые позволят вам максимально задействовать установленную в компьютере оперативную память.



Практика: Настройка дисковой подсистемы


Второй раздел главы представляет собой практическое руководство по оптимизации характеристик дисковой подсистемы компьютера. Мы приведём конкретные сведения об основных приёмах оптимизации и опишем некоторые полезные в этом процессе утилиты.



Практика: Увеличение вместимости дисков


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



Расположение файлов


В некоторых случаях на скорость работы программы сильно влияет расположение файлов на диске или на дисках (если компьютер оборудован несколькими накопителями на магнитных дисках). Мы уже рассказывали вам о проблемах, связанных с перемещениями блока магнитных головок HDD при копировании файлов. Ситуация будет ещё более серьёзной, если выполняется не копирование, а, например, слияние двух файлов в один. При этом головки будут перемещаться уже между тремя зонами диска.

Если ваш компьютер имеет несколько HDD, имеет смысл располагать одновременно используемые файлы на разных дисководах. Копирование файла с одного HDD на другой будет выполняться быстрее, чем копирование в пределах одного HDD. Это связано с тем, что на каждом HDD головки будут перемещаться только в пределах одного файла. Дополнительное время на перемещение головок между файлами не потребуется.

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

Твёрдотельные диски

Дальнейшее развитие идеи электронного диска, выполненного в оперативной памяти, привело к созданию отдельного устройства - диска, выполненного на микросхемах памяти и подключающегося к контроллеру HDD. В этом устройстве в качестве носителя информации используются обычные микросхемы памяти. Такие диски называются твёрдотельными дисками (Solid State Disk).

Твёрдотельные диски более чем в 100 раз быстрее обычных жёстких магнитных дисков. При этом они обладают значительной ёмкостью. Например, диск ST8167K фирмы Seagate имеет ёмкость порядка 167 мегабайт.

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



Расширенная память


Расширенная память - это память, расположенная в адресном пространстве выше границы 1 мегабайт. Такая память отсутствует в компьютерах IBM PC и IBM XT. Компьютер IBM AT в стандартной конфигурации имеет по крайней мере 384 килобайта расширенной памяти, расположенной на материнской плате.

Как определить объём имеющейся расширенной памяти?

Для этого достаточно включить компьютер и дождаться начала теста памяти. Сначала тестируется первый мегабайт оперативной памяти, а затем - вся установленная расширенная память. Если после теста на экране находится сообщение о том, что проверено 2048 килобайт памяти, значит у вас есть 2048-640=1408 байт расширенной памяти.



Сдвиг цилиндров


Предположим, ваша программа считывает (или записывает) большой файл, занимающий на диске несколько цилиндров. Что происходит в тот момент, когда завершается чтение последней дорожки текущего цилиндра? Теперь надо установить головки на нулевую дорожку следующего цилиндра. Очень хорошо, контроллер выдаёт соответствующую команду, головки устанавливаются на другой цилиндр и начинается поиск первого сектора нулевой дорожки.

Но пока головки перемещались, диск повернулся и головки проскочили мимо первого сектора. Теперь надо ждать, пока диск повернётся на один оборот и первый сектор окажется снова напротив блока головок.

Здесь мы неявно предполагали, что все дорожки на всех цилиндрах расположены как бы параллельно, т.е. первые сектора на всех дорожках для всех цилиндров располагаются на одинаковом расстоянии от маркера начала дорожки.

Современные дисковые накопители, в частности, использующие интерфейс ESDI, можно отформатировать "со сдвигом цилиндров" (Cylinder Skew). В этом случае цилиндры, расположенные ближе к центру, будут сдвинуты вперёд по направлению вращения относительно внешних цилиндров.

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



Сдвиг головок


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

Для выбора правильного расположения первого сектора некоторые программы низкоуровневого форматирования позволяют задавать сдвиг головок (Head Skew) относительно маркера дорожки.



Составление плана оптимизации


План оптимизации зависит от типа и конфигурации используемого вами компьютера.



Создание электронного диска


Для организации электронного диска добавьте в файл CONFIG.SYS следующую строку:

device=c:\dos\ramdrive.sys [параметры]

В качестве первого параметра следует указать размер создаваемого электронного диска в килобайтах. Второй параметр - число, определяющее размер сектора электронного диска. Он может принимать значения 128, 256, 512 и 1024 байта. Третий параметр - максимальное количество файлов в корневом каталоге диска.

Дополнительно можно указывать ключи /E и /A. Ключ /E вызывает размещение электронного диска в расширенной памяти, а ключ /A - в дополнительной.

Все параметры драйвера RAMDRIVE.SYS необязательные. Если ни один из них не указан, создается диск размером 64 килобайта с размером сектора 512 байт. Максимальное количество файлов, которые можно записать в корневой каталог - 64. Кроме того, если не указан ни один ключ, электронный диск создается в стандартной памяти, отнимая память у запускаемых программ.

Если ваш компьютер оборудован расширенной памятью размером в несколько мегабайт, вы можете создать электронный диск размером в 1024 килобайта следующим образом:

device=c:\dos\ramdrive.sys 1024 /E



Теория: Как использовать всю доступную память?


Для того, чтобы как-то задействовать память, расположенную выше границы 1024 килобайта (эту память называют расширенной), в новых версиях MS-DOS появились драйверы электронного диска RAMDRIVE.SYS и кэша дисковой памяти SMARTDRV.SYS. Драйвер электронного диска предназначен для организации быстродействующего квазидиска. Этот диск ведёт себя так же, как и обычный, но за счёт того, что данные пересылаются в оперативную память, такой диск работает очень быстро.

Операционная система MS-DOS версии 5.0 может использовать расширенную память и для решения других задач.

В частности, в расширенной памяти (вернее, в её небольшой начальной части размером около 64 килобайт, называющейся верхней памятью) могут располагаться модули, буфера и рабочие области самой операционной системы. Если в компьютере используется процессор 80386 или 80486, можно поместить в расширенную память резидентные программы и драйверы.

Если расположить в расширенной памяти MS-DOS, резидентные программы и драйверы, для программ останется порядка 600-620 килобайт памяти. Это на 100-140 килобайт больше, чем при использовании версий MS-DOS более ранних, чем 5.0. Теперь понятно, зачем надо обязательно переходить к использованию новой версии MS-DOS - у вас будет больше памяти для работы программ! Конечно, это не единственная причина (например, MS-DOS весрии 4.0 содержит ошибки), но довольно существенная.

А если ваша программа имеет размер 2 мегабайта и к тому же ей требуется обрабатывать массивы данных размером в 1 мегабайт?

Для решения таких задач можно использовать дополнительную память. Эта память располагается на отдельной плате, которая вставляется в слот расширения материнской платы компьютера. Дополнительная память может быть установлена даже в компьютерах, выполненных на базе процессоров 8086 или 8088, которые не могут адресовать память за границей одного мегабайта! Как это может быть?

Здесь всё дело в том, что дополнительная память (которая может по размеру достигать 16 или даже 32 мегабайта) отображается с помощью специальных схем в область памяти, лежащую ниже границы 1024 килобайт, то есть в стандартную память. Для работы с расширенной памятью выделяются 4 окна в области адресов выше границы 640 килобайт, но ниже 1024 килобайт. Причём общий размер этих окон составляет 64 килобайта.


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

При необходимости окна могут двигаться по дополнительной памяти, позволяя программам адресовать весь объём дополнительной памяти.

Запомните: расширенная память и дополнительная память - разные вещи!

Расширенная память (extended memory) - лежит в адресном пространстве процессора выше границы 1024 килобайт, непосредственно адресуется процессорами 80286/80386/80486 в так называемом "защищённом режиме". Операционная система MS-DOS не может непосредственно использовать расширенную память для загрузки и выполнения программ. Вы можете использовать расширенную память для размещения ядра MS-DOS, системных буферов, резидентных программ и драйверов. Расширенная память располагается непосредственно на материнской плате компьютера.

Дополнительная память (expanded memory) - отображается в окна, расположенные в адресном пространстве ниже границы 1024 килобайта, то есть в стандартную память. Эта память доступна MS-DOS и программам, работающим в "реальном режиме", т.е. в дополнительную память могут загружаться программы и эти программы могут там выполняться под управлением MS-DOS. Дополнительная память располагается на отдельной плате, которая вставляется в слоты расширения материнской платы компьютера. Для работы дополнительной памяти в файле CONFIG.SYS должен быть установлен специальный драйвер, поставляющийся вместе с платой памяти.

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

Для иллюстрации сказанного выше мы приведём рисунок, на котором изображена упрощённая карта распределения оперативной памяти:



Возможности, имеющиеся у вас для оптимизации использования оперативной памяти, сильно зависят от типа процессора и наличия расширенной или дополнительной памяти.


Теория: Почему диск работает медленно?


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

неправильный выбор фактора чередования при форматировании диска на низком уровне (мы скоро расскажем о том, что такое фактор чередования);

сильная фрагментация файлов;

отсутствие буферизации дискового ввода/вывода или неправильное использование такой буферизации;

отсутствие драйвера кэширования дисковой памяти;

неправильная установка переменной среды PATH операционной системы MS-DOS;

нерациональное размещение рабочих файлов, использующихся для временной памяти.

Каждая из приведенных выше причин сама по себе может привести к замедлению работы дисковой памяти или отдельных программ в несколько раз! А если у вас комбинация нескольких или всех неблагоприятных факторов? В этом случае даже современные быстродействующие накопители будут по скорости напоминать диски первых моделей IBM XT.

Начнём с фактора чередования.



Теория: Причины переполнения диска


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

Вторая причина - наличие так называемых потерянных кластеров. Мы уже говорили о том, что MS-DOS хранит файлы в кластерах, причём файл может занимать много кластеров. Иногда (в основном после "зависания" операционной системы) появляются кластеры, не описанные ни в одном каталоге. Эти кластеры помечены в таблице размещения файлов FAT как занятые файлами, но доступа к этим файлам нет (так как доступ к файлам возможен только через каталоги). Потерянные кластеры занимают место на диске, и это место нельзя освободить иначе, чем с помощью специальных утилит ремонта файловой системы.

И, наконец, третья причина заключается в том, что для файла любого размера (даже для файла размером 1 байт) выделяется по крайней мере один кластер. Кластер может иметь размер от одного до 8 секторов, т.е. даже для хранения файла размером 1 байт расходуется от 512 до 4096 байт дисковой памяти. Если на вашем диске хранятся сотни маленьких файлов, все вместе они могут занимать несколько сотен килобайт дисковой памяти!

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

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

На чем основано сжатие файлов?

На устранении избыточности информации.

Поясним это на примере. Пусть у нас есть обычный текстовый файл, причём в тексте используется русский язык.

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


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

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

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

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

Что же касается дискет, то для увеличения эффективности их использования можно предложить два взаимодополняющих способа:

хранение на дискетах архивов, созданных программами-архиваторами;

форматирование дискет на повышенную по сравнению со стандартной ёмкость.

Существуют специальные программы, позволяющие отформатировать дискеты двойной плотности (360 килобайт) на ёмкость 720 или 800 килобайт. Дискеты высокой плотности (1,2 мегабайта) можно отформатировать на 1,6 мегабайта или даже на ещё большую ёмкость.

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


Тип контроллера жёсткого магнитного диска.


Жёсткий магнитный диск

Жёсткий магнитный диск - это специальное устройство, предназначенное для хранения значительных объёмов информации. В отечественной литературе можно встретить различные термины и аббревиатуры для этого устройства: накопитель на магнитном диске (НМД), жёсткий диск, винчестер. Мы будем пользоваться аббревиатурой HDD, которая является общепринятой для зарубежной литературы. Эта аббревиатура произошла от названия Hard Disk Drive, что означает "дисковод для жёсткого диска".

В первых компьютерах дисковая память состояла из двух устройств - дисковода и пакета магнитных дисков. Причём пакеты магнитных дисков были сменными. Это давало возможность устанавливать на один и тот же дисковод разные пакеты дисков.

Для персональных компьютеров обычно используется другая конструкция дисковой памяти. Пакет магнитных дисков и дисковод объединены в общем, герметично закрытом корпусе. Такая конструкция получила название "винчестер".

В главе 2 мы расскажем подробнее о том, как устроены дисководы персонального компьютера.

Флоппи-диски

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

Флоппи-диски позволяют хранить сотни килобайт информации. Флоппи-диски вставляются в специально предназначенные для них дисководы. В отличие от жёстких дисков, флоппи-диски являются сменными носителями информации. Они обычно используются для временного хранения программ и данных, а также для переноса программ и данных с одного компьютера на другой. Практически всё программное обеспечение продаётся на флоппи-дисках.

В отечественной литературе флоппи-диски часто называют гибкими дисками (хотя изгибать флоппи-диски категорически не рекомендуется). Соответственно дисководы для флоппи-дисков называют накопителями на гибких магнитных дисках (НГМД). Мы же будем использовать термин Floppy Disk Drive (FDD), что означает "дисковод для флоппи-дисков". Этот термин и аббревиатура FDD общеприняты и широко используются в зарубежной литературе.


Дополнительный признак, по которому можно отличить контроллер ESDI от контроллера ST506/412 - наличие на плате контроллера микросхемы постоянного запоминающего устройства. Эта микросхема установлена на панельке.

Низкоуровневое форматирование HDD, подключенного к контроллеру ESDI, должно выполняться с помощью программы, записанной в ПЗУ контроллера, как будет описано в разделе "Низкоуровневое форматирование".

Если у вас не получается запустить программу низкоуровневого форматирования, находящуюся в ПЗУ контроллера, наиболее вероятная причина заключается в том, что тип вашего контроллера - не ESDI, а ST506/412 или IDE.

Интерфейс SCSI, также как и ESDI, используется для подключения дисков большой ёмкости (а также других устройств, например, стриммера) к высокопроизводительным компьютерам. Характерная особенность этого интерфейса - использование одного широкого кабеля (50 жил) для подключения всех HDD. При включении питания компьютера, оборудованного SCSI-контроллером, на экран выдается сообщение об инициализации контроллера. В этом сообщении есть слово "SCSI", по которому можно легко идентифицировать тип используемого интерфейса.

Если в вашем компьютере установлен SCSI-контроллер диска, вам не нужно выполнять процедуру оптимизации фактора чередования.

Интерфейс IDE имеет производительность, сравнимую с ESDI и SCSI. Этот интерфейс используется в современных компьютерах для подключения дисков ёмкостью больше 80 мегабайт. Как правило, можно подключить один или два HDD, причём, как и в случае SCSI, используется один широкий кабель. Этот кабель часто подключается непосредственно к разъёму, расположенному на материнской плате компьютера.

Контроллер, использующий интерфейс IDE, не имеет отдельного ПЗУ. Оптимизация фактора чередования для диска, подключённого с помощью такого контроллера, не нужна.

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

В компьютере может быть установлен контроллер одного из следующих типов - ST506/412, SCSI, ESDI или IDE. Запомните тип вашего контроллера, он потребуется на этапе оптимизации характеристик дисковой подсистемы.


Тип процессора


Тип используемого процессора можно выяснить из документации на компьютер. Если у вас IBMPC или IBM XT, то скорее всего это 8086, 8088 или аналог 8088 - процессор NEC20. Иногда встречаются компьютеры XT/286, в которых используется процессор 80286. Компьютеры IBM AT оборудованы процессорами 80286, 80386 или 80486.



Вы можете установить драйвер двумя


Вы можете установить драйвер двумя способами - с помощью специальной программы INSTALL, имеющейся на дистрибутивной дискете, либо вручную.

Программа INSTALL переписывает все файлы с дистрибутивной дискеты в каталог, указываемый при установке драйвера QEMM-386. Затем она подключает драйвер в файле CONFIG.SYS и настраивает параметры драйвера. Если у вас нет проблем с английским языком, мы рекомендуем вам именно этот способ установки драйвера.

Установка драйвера вручную также несложна. Создайте на диске каталог с именем, например, QEMM, и скопируйте в него все файлы с дистрибутивной дискеты. Затем подключите драйвер QEMM.SYS. Например, если вы установили драйвер в каталог QEMM на диске C:, добавьте в файл CONFIG.SYS следующую строку:

device=c:\qemm\qemm.sys [параметры]

Учтите, что драйвер QEMM.SYS должен располагаться в первой строке файла CONFIG.SYS. Кроме того, вы должны отключить драйвер HIMEM.SYS, так как драйвер QEMM.SYS выполняет сам все функции по управлению расширенной памятью.

После того, как вы подключили драйвер QEMM.SYS и перезагрузили компьютер, запустите программу OPTIMIZE, входящую в состав QEMM-386. Эта программа должна находиться в каталоге QEMM.

Программа OPTIMIZE исследует файлы CONFIG.SYS и AUTOEXEC.BAT и пытается сама перенести все драйверы и резидентные программы в свободные области зарезервированной памяти, отображаемые на расширенную память. В процессе своей работы программа модифицирует файлы CONFIG.SYS и AUTOEXEC.BAT и два раза выполняет перезагрузку операционной системы. Проследите за тем, чтобы перед запуском OPTIMIZE в файле AUTOEXEC.BAT не производился запуск таких программ, как Norton Commander, DOSSHELL или WINDOWS.

OPTIMIZE настраивает параметры драйвера QEMM.SYS, модифицирует строки файла CONFIG.SYS, в которых подключаются драйверы.

После завершения процесса оптимизации выдайте команду MEM и убедитесь в том, что свободной памяти стало гораздо больше.


Утилита Norton CALIBRAT


Утилита CALIBRAT входит в состав пакета Norton Utilities версии 6.0. Она значительно облегчает процедуру выбора оптимального фактора чередования, полностью автоматизируя весь процесс.

Преимущества:

не требуется выгружать содержимое диска перед началом процесса оптимизации;

выбор оптимального фактора чередования и переформатирование диска без потери содержимого выполняется самой программой автоматически;

перед началом оптимизации программа сама определяет возможность переформатирования данного диска, что позволяет избежать напрасных потерь времени.

Недостаток один - вам надо покупать пакет Norton Utilities. Однако, по нашему мнению, это не очень большой недостаток, так как с помощью этого пакета вы сможете выполнять практически все операции по обслуживанию компьютера.

Пакет программ Norton Utilities

Всемирно известный пакет программ Norton Utilities предназначен для решения различных задач, встающих перед любым пользователем персонального компьютера. Этот пакет состоит из нескольких десятков программ. Вот некоторые из них:

SYSINFO - программа, предназначенная для получения подробного отчета о конфигурации программных и аппаратных средств;

NDD (.i.Norton Disk Doctor;) - программа, позволяющая выполнить ремонт файловой системы в сложных случаях, работает автоматически, практически не требуя вмешательства оператора;

DISKEDIT - очень мощный и удобный редактор диска, предназначен для редактирования диска на физическом и логическом уровне;

CALIBRAT - мощная утилита оптимизации диска;

SF - утилита форматирования, выполняет форматирование флоппи-дисков и жёстких дисков с возможностью полного восстановления информации на отформатированных дисках, НЕ выполняет низкоуровневое форматирование жёстких дисков;

SPEEDISK - утилита дефрагментации диска, после дефрагментации скорость работы программ заметно возрастает;

UNERASE - утилита восстановления случайно удалённых файлов;

DISKREET - утилита для создания секретного диска, все файлы на котором хранятся в зашифрованном виде.


Без преувеличения можно сказать, что самый необходимый программный продукт после оболочки Norton Commander - это Norton Utilities.

Теперь о том, как оптимизировать фактор чередования с помощью утилиты CALIBRAT. Запустите её, на экране появится краткая информация о том, какие функции выполняет CALIBRAT:



Утилита предложит вам оптимизировать скорость дисковой системы (Optimizes the speed of your Disk System), выявить плохо читающиеся данные и попытаться перезаписать их на другое место диска (Detects endangered data and relocates it to a safe location), выяснить состояние дисковой системы и решить проблемы до того, как они станут причиной потерь данных на диске (Keeps your disk healthy...).

Заметьте, что помимо оптимизации фактора чередования будет выполнена проверка целостности данных, хранящихся на диске.

Нажмите клавишу <Enter> или выберите мышью слово Continue. На экране появится меню:



Пользуясь клавишами перемещения курсора по вертикали, выберите диск, для которого необходимо выполнить оптимизацию, затем нажмите клавишу <Enter> или выберите мышью слово OK. Если вы передумали выполнять оптимизацию, выберите слово CANCEL.

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



Обычно необходимости в выгрузке диска нет, и вы можете просто продолжить работу, нажав клавишу <Enter>.

После этого программа CALIBRAT начнет тестирование вашего диска и контроллера с целью определения совместимости. Оптимизация диска возможна только в том случае, если CALIBRAT поддерживает тип вашего диска и может работать с вашим контроллером.

Перед началом тестирования программа объяснит вам смысл выполняемых операций:



Утилита проверит целостность системы, выполнит тест позиционирования головок, определит применяемый способ кодирования данных и текущий фактор чередования.



Здесь вам надо просто нажать клавишу <Enter> или выбрать мышью слово Continue.

CALIBRAT начнет тестирование. Все выполняемые операции будут отображаться на экране:



На следующем этапе CALIBRAT выполняет измерение временных характеристик HDD, таких как время позиционирование головок:



Далее на экран выводятся измеренные характеристики HDD и контроллера:



Можете нажать клавишу <Enter> для перехода к следующему этапу оптимизации.

На этом этапе CALIBRAT подбирает оптимальный фактор чередования, используя метод перебора. Для каждого значения фактора чередования определяется быстродействие диска. Результаты отображаются в виде столбчатой диаграммы, причём оптимальное и текущее значения фактора чередования специально выделяются (на этом рисунке они совпадают):



Следующий этап требует от вас задать уровень тестирования секторов диска, выполняемого на этапе форматирования. От этого уровня сильно зависит продолжительность форматирования, поэтому если у вас хороший диск, не содержащий дефектов, можно вообще отказаться от тестирования, выбрав самую верхнюю строку в предлагаемом меню:



Если вы не уверены в качестве диска или форматируете диск в первый раз, лучше выбрать стандартное тестирование (Standard Pattern Testing).

Далее начинается процесс переформатирования диска с оптимальным значением фактора чередования. Программа CALIBRAT отображает ход выполнения операции на экране:



Вы можете нажать клавишу <Esc> для того, чтобы прервать переформатирование диска.

После окончания работы программы диск сразу готов к использованию. Убедитесь сами в том, что он стал работать ощутимо быстрее!


УВЕЛИЧЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ РАБОТЫ ПОЛЬЗОВАТЕЛЯ


5.1.

5.2.

Высокая производительность компьютера и высокая производительность работы пользователя - вообще говоря, разные вещи.

Даже если вы используете мощный компьютер на базе процессора 80486, вам будет трудно, например, в следующей ситуации.

Пусть вы пишете книгу по программированию на языке Си. Вы работаете в редакторе текста, скажем, Microsoft Word и в настоящий момент находитесь на 235 странице - там расположена программа, работу которой вам надо проверить. Для проверки работы программы вам необходимо запустить систему Microsoft Quick C или же Borland C. Чтобы это сделать, вам придется завершить работу с текстовым редактором. После проверки программы вам необходимо снова запустить редактор и найти 235-ю страницу.

И хотя сами по себе редактор текста и транслятор будут работать быстро, процедура перехода от одного приложения к другому и обратно может отнять довольно много времени. Особенно если эти действия необходимо повторять часто. Например, для работы над книгой вам может потребоваться множество различных программ - редактор графических изображений, текстовый редактор, трансляторы для различных языков программирования, оболочка Norton Commander, справочные базы данных, программа вёрстки VENTURA PUBLISHER и так далее.

В этой ситуации производительность работы может увеличится, если вы воспользуетесь средствами организации переключения задач и мультизадачной работы.

Данная глава поможет вам в выборе и использовании мультизадачной среды. Будут рассмотрены средства переключения задач MS-DOS и Microsoft Windows.



Версия операционной системы


Версию используемой операционной системы можно определить при помощи команды VER. В ответ на эту команду вы увидите на экране следующее (для MS-DOS версии 5.00):

MS-DOS Version 5.00

Если вы используете более ранние версии MS-DOS, мы рекомендуем вам установить версию 5.00. Только в этом случае вы сможете выполнить оптимизацию используемой оперативной памяти. После оптимизации для программ будет доступно 600-620 килобайт оперативной памяти!

Для определения конфигурации компьютера можно запустить программу SYSINFO из пакета Norton Utilities. Эта программа сообщит вам тип используемого процессора, количество и тип используемых FDD, объёмы стандартной, расширенной и дополнительной памяти, а также множество других интересных сведений о конфигурации вашего компьютера:

После того, как вы определите конфигурацию аппаратных и программных средств, можно приступить к составлению плана оптимизации.



ВМЕСТИМОСТЬ ДИСКА И ДИСКЕТ


3.1.

3.2.

3.3.

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

В этой главе мы рассмотрим основные причины переполнения диска и наметим возможные пути решения проблемы. Будут также описаны средства, позволяющие статически или динамически сжимать данные, хранящиеся на диске. Эти средства - .программы-архиваторы и динамический компрессор диска Stacker.

Мы также расскажем о том, как отформатировать дискеты на нестандартную, повышенную ёмкость.



Для каждого пользователя персонального компьютера


Для каждого пользователя персонального компьютера рано или поздно наступает такой момент, когда возможностей имеющейся в его распоряжении техники становится недостаточно. Накопитель на магнитном диске переполнен, для последней версии программы вёрстки VENTURA PUBLISHER не хватает основной оперативной памяти, а графический редактор DESIGNER или транслятор Microsoft Quick C на вашей машине работают слишком медленно. Да и дискет не хватает для архива, который что-то слишком увеличился в размерах за последнее время.
Программа вёрстки VENTURA PUBLISHER
Эта программа предназначена для подготовки оригинал-макета изданий, таких как книги, брошюры или рекламные листки. VENTURA чем-то напоминает текстовые процесоры, хотя она и не предназначена для редактирования текста. Обычно текст издания готовится при помощи какого-либо текстового процессора, например, Microsoft Word.
После подготовки текстовый файл загружается в программу вёрстки VENTURA, и форматируется там в режиме WYSIWYG (What You See Is What You Get - "Что вы видите, то вы и получите"). После форматирования текст распечатывается на лазерном принтере и отдаётся в типографию.
Особенностью VENTURA является то, что для её работы требуется большой объем свободной оперативной памяти. Эта программа требует, чтобы перед её запуском вы удалили практически все драйверы и резидентные программы. Но что делать, если они вам нужны? Вы найдёте ответ на этот вопрос в главе, посвящённой использованию оперативной памяти.
Графический редактор DESIGNER
Этот редактор предназначен для подготовки сложных графических изображений. С его помощью вы можете, например, выполнить чертежи для дипломного проекта или нарисовать принципиальную электрическую схему цветного телевизора. Редактор поддерживает различные форматы листов бумаги (до А0 включительно) и более десятка форматов графических файлов, что позволяет переносить подготовленные изображения в другие графические редакторы или системы вёрстки.
Скорость работы редактора DESIGNER сильно зависит от производительности компьютера вообще и от производительности дисковой подсистемы в частности.


Конечно, если вы не испытываете финансовых затруднений, вы можете купить новую, более мощную машину с процессором 80386 или даже 80486, либо установить на имеющуюся машину новый диск большей ёмкости, купить расширенную или дополнительную память. Можно купить для архива ещё сотню-другую дискет или же накопитель на магнитной ленте (стриммер), либо накопитель на лазерных дисках. В последнем случае у вас скорее всего больше никогда не возникнет проблем с нехваткой дисков или дискет для хранения программ.
Процессоры 8086, 8088, 80286, 80386, 80486
Эра персональных компьютеров началась в 1971 году, когда фирма Intel выпустила свои первые микропроцессоры 4004 и 8008. Самый первый микропроцессор 4004 был четырёхразрядным и разрабатывался для калькуляторов.
В 1974 году фирма Intel выпустила микропроцессор 8080, который разрабатывался как универсальный для различных приложений. Этот восьмиразрядный микропроцессор завоевал огромную популярность. Именно 8080 использовался в первых компьютерах, рассчитанных на индивидуальное использование, т.е. в персональных компьютерах.
Микропроцессор 8080 позволял адресовать максимально 64 килобайта оперативной памяти, так как для адресации использовалось 16 адресных линий. В начале 70-х годов, когда память стоила дорого, такого её объёма было достаточно.
Эта роковая цифра - 64 килобайта - наложила свой отпечаток на архитектуру всех без исключения последующих разработок фирмы Intel, связанных с процессорами серии 80XXX.
В 1978 году была создана новая модель микропроцессора - шестнадцатиразрядный Intel 8086. Этот микропроцессор мог адресовать уже 1024 килобайта оперативной памяти.
Для обеспечения совместимости с микропроцессором 8080 в микропроцессоре 8086 была реализована сегментная структура памяти. Адрес состоял из двух компонент - адреса сегмента и смещения. Адрес сегмента соответствовал шестнадцати старшим разрядам 20-разрядного полного адреса. Смещение тоже было 16-разрядным, оно соответствовало младшим шестандцати разрядам адреса и складывалось для получения полного адреса с адресом сегмента.


Используя такой механизм, микропроцессор 8086 мог адресоваться к любому участку памяти (сегменту) размером 64 килобайта при помощи двух 16-разрядных компонент 20-разрядного адреса.
В 1979 году был создан более дешёвый вариант микропроцессора 8086 - микропроцессор 8088. С точки зрения программного обеспечения он полностью соответствовал модели 8086, но в отличие от последнего для адресации памяти использовал восьмиразрядную шину в мультиплексном режиме. То есть по восьми линиям по очереди передавались старший и младший байты адреса и данных.
Процессоры 8086 и 8088 легли в основу первых персональных компьютеров фирмы IBM - IBM PC и IBM XT.
В 1983 году после неудачных моделей 80186 и 80188 был создан процессор 80286. По своим возможностям этот процессор был сравним с процессорами мини-компьютеров. В литературе исчез термин "микропроцессор", его заменил термин "процессор".
Самое главное отличие модели 80286 от всех предыдущих заключалось в том, что этот процессор мог работать в двух режимах - реальном и защищённом.
В реальном режиме процессор 80286 был точной копией процессора 8086, но работал значительно быстрее. Полная совместимость с процессором 8086 гарантировала, что тысячи программ, разработанных для процессора 8086, смогут работать на новой модели 80286.
В защищённом режиме процессор 80286 мог непосредственно адресовать до 16 мегабайт оперативной памяти и работать в мультизадачном режиме.
Фирма IBM использовала процессор 80286 в своём компьютере IBM AT, завоевавшем весь мир. Для компьютера IBM AT было создано несколько операционных систем, в том числе мультизадачные, такие как OS/2 и UNIX.
Следующая модель процессора называлась Intel 80386. Это 32-разрядный процессор, который может непосредственно адресовать до 4 Гбайт оперативной памяти. Процессор 80386 может работать с виртуальной памятью, расположенной на магнитных дисках. До появления процессора 80386 виртуальная память была реализована только в больших компьютерах, таких, как IBM-370.


Без преувеличения можно сказать, что процессор 80386 подвёл черту под большими компьютерами. Оказалось, что компьютеры с процессором 80386 обладают быстродействием, сравнимым с быстродействием больших компьютеров. Стоимость же персональных компьютеров существенно ниже.
Модель 80486 отличается от модели 80386 в основном быстродействием (разумеется, быстродействие процессора 80486 выше). Кроме того, на кристалле процессора 80486 расположен арифметический сопроцессор, значительно ускоряющий арифметические вычисления, и другие устройства.
В настоящее время фирма Intel работает над следующими моделями - 80586, 80686, 80786. Ожидается, что это будут 64-разрядные процессоры со сказочным быстродействием.

Однако есть и другие, значительно более дешёвые и в то же время достаточно эффективные способы увеличения возможностей имеющейся в вашем распоряжении техники. Это:
правильная настройка операционной системы MS-DOS;
правильный выбор и оптимизация используемого программного обеспечения;
регулярная профилактика дисковой подсистемы компьютера.
Проверьте, насколько сильно фрагментирован ваш диск - фрагментация сильно замедляет работу программ, активно использующих дисковую память. Обновите версию операционной системы MS-DOS до 5.0 - это даст вам дополнительно несколько десятков килобайтов основной оперативной памяти. Не бойтесь расстаться с полюбившейся вам и хорошо проверенной MS-DOS версии 3.30 - есть достаточно веские причины использовать последние достижения в области операционных систем для персональных компьютеров.
Операционная система MS-DOS
Рассмотрим основные особенноcти различных версий операционной системы MS-DOS, разработанной фирмой Microsoft для компьютеров фирмы IBM.
MS-DOS версии 1.0
Первая версия операционной системы MS-DOS была разработана для самой первой модели компьютера IBM PC с процессором 8088. Эта версия могла работать только с односторонними дискетами ёмкостью 160 килобайт. Файловая система была выполнена по аналогии с файловой системой операционной системы CP/M - на дискете существовал только один каталог, в нём были описаны все файлы.


MS-DOS версии 1.05
В этой версии были исправлены ошибки, в остальном она полностью соответствовала версии 1.0.
MS-DOS версии 1.10
Была добавлена поддержка двухсторонних дискет ёмкостью 320 килобайт.
MS-DOS версии 2.0
Эта версия стала стандартом на несколько лет. В ней были реализованы основные возможности, присущие современным версиям MS-DOS: поддержка дисковых накопителей ёмкостью до 10 мегабайт, работа с двухсторонними дискетами ёмкостью 360 килобайт, древовидная структура каталогов по аналогии с операционной системой UNIX, программа печати в фоновом режиме PRINT.
В этой версии впервые была реализована идея переназначаемого стандартного ввода/вывода. Появились такие команды, как TREE, CD, MD, RD, PATH, BACKUP, RESTORE и другие. В пакетных файлах стали доступны команды GOTO, IF, ECHO.
MS-DOS версии 2.10 и 2.11
В этих версиях были устранены некоторые ошибки.
MS-DOS версии 3.0
Версия 3.0 способна работать с дисками ёмкостью до 20 мегабайт, с дискетами высокой плотности ёмкостью 1.2 мегабайта, добавлена интернациональная поддержка, появился драйвер электронного диска RAMDRIVE.SYS.
Были добавлены команды ATTRIB, LABEL, SELECT, SHARE, GRAFTABL.
MS-DOS версии 3.10
Появилась возможность работать в локальной сети персональных компьютеров. Были добавлены команды JOIN и SUBST.
MS-DOS версии 3.20
Добавилась поддержка 3,5 дюймовых флоппи-дисков ёмкостью 720 килобайт, появились новые команды REPLACE и XCOPY, были усовершенствованы некоторые другие команды.
MS-DOS версии 3.30
Появилась возможность работать с флоппи-дисками диаметром 3,5 дюйма и ёмкостью 1,44 мегабайта, добавлены новые команды APPEND, CALL, CHCP, FASTOPEN, NLSFUNC, несколько команд улучшено. Расширилась интернациональная поддержка и возможности пакетной обработки.
MS-DOS версии 4.00
Версия 4.0 содержит много усовершенствований, самые главные из которых - поддержка разделов диска, имеющих размер больше 32 мегабайт, поддержка дополнительной памяти и удобная оболочка DOSSHELL, позволяющая организовать запуск ваших приложений с использованием системы меню.


Появилась новая команда MEM, предназначенная для детального анализа распределения памяти в системе и новый оператор INSTALL= для загрузки резидентных программ на этапе обработки файла CONFIG.SYS.
К сожалению, эта версия MS-DOS занимает больше места в оперативной памяти, чем версия 3.30, и к тому же содержит ошибки.
MS-DOS версии 4.01
В этой версии были исправлены некоторые (но не все) ошибки предыдущей версии. В остальном версия полностью аналогична 4.00.
MS-DOS версии 5.00
Это самая последняя на момент написания книги версия MS-DOS. Она имеет много преимуществ по сравнению с предыдущими. Вот только некоторые из них:
исправлены ошибки MS-DOS версии 4.01;
можно работать с дисководами для гибких магнитных дисков, рассчитанными на 2,88 мегабайта;
существенно улучшен механизм управления памятью, теперь для запускаемых программ доступно до 620 килобайт памяти;
для компьютеров на базе процессоров 80386 и 80486 возможна загрузка резидентных программ и драйверов в расширенную память;
появился полноэкранный редактор текстов и удобная интегрированная среда для разработки программ на языке BASIC;
можно получать подсказку по командам операционной системы;
новые утилиты форматирования и восстановления диска позволяют полностью восстановить содержимое диска, отформатированного по ошибке;
значительно улучшена оболочка DOSSHELL, в частности, с её помощью возможен запуск нескольких программ и переключение между ними. Это ещё не мультизадачность, но возможность иметь запущенными несколько программ и переключаться между ними сильно повышает производительность труда человека, использующего компьютер.
Кроме того, в среде MS-DOS версии 5.0 благодаря усовершенствованному механизму управления оперативной памятью стала быстрее работать система Microsoft WINDOWS.
Если вы используете компьютер на базе процессора 80386 или 80486, проверьте оптимальность установленной в CMOS конфигурации - не исключено, что вы сможете увеличить быстродействие системы в 1,5-2 раза только за счёт правильной установки режима работы центрального процессора с оперативной памятью.


Память CMOS с низким энергопотреблением
Компьютеры IBM  AT содержат микросхему часов реального времени, питающуюся от аккумулятора. Операционная система MS-DOS умеет работать с такими часами, поэтому вам не надо заново устанавливать дату и время каждый раз, когда вы включаете питание компьютера.
Кроме часов реального времени эта микросхема содержит ещё несколько десятков байт памяти с низким энергопотреблением. Эта память реализована с использованием технологии CMOS (Complement Metal Oxide Semiconductor - комплементарные пары метал-оксид-полупроводник, отечественная аббревиатура - КМОП). Такая технология изготовления микросхем обеспечивает столь малое энергопотребление, что содержимое памяти может сохраняться месяцами, даже если компьютер всё время выключен.
Что же хранится в CMOS-памяти? В компьютерах IBM AT на базе процессоров 80286 там хранятся сведения о конфигурации компьютера, например, тип подключённого винчестера и дисководов для флоппи-дисков. В компьютерах на базе процессоров 80386 и 80486 размер CMOS-памяти больше. Там хранится значение тактовой частоты процессора, количество тактов ожидания при обращении к оперативной памяти и другие значения, сильно влияющие на производительность компьютера. Мы расскажем вам о том, как правильно установить содержимое ячеек CMOS в главе 4, посвящённой оперативной памяти.
Отформатируйте дискеты DS/DD не на 360 килобайт, а на 720 килобайт или даже на 800 килобайт - у вас исчезнет проблема с нехваткой дискет. Используйте средства динамического сжатия данных на диске - эффективная ёмкость диска возрастет в полтора-два раза (!), причём без заметного снижения быстродействия.
Кроме оптимизации характеристик компьютера, в книге рассказывается и о некоторых приёмах повышения производительности работы оператора. Например, использование мультизадачности или средств переключения задач может немного понизить производительность компьютера, но сильно повысить производительность работы оператора. По нашему глубокому убеждению, самое главное - это производительность работы человека, пользующегося компьютером, а не производительность самого компьютера. Если вы сможете правильно организовать свою работу, сделать правильный выбор программного обеспечения и выполнить "тонкую настройку" компьютера, вы достигнете большего, чем владелец мощной дорогостоящей техники, не думающий о повышении производительности своего труда.
Основные процедуры оптимизации доступны любому пользователю персонального компьютера, владеющего основными командами операционной системы MS-DOS. От вас не потребуется каких-либо знаний в областях системного программирования или аппаратного обеспечения компьютера. Вы можете просто следовать нашим рекомендациям.
Не исключено, что после прочтения этой книги и выполнения всех приведенных в ней рекомендаций вы отложите момент покупки нового компьютера или другого дополнительного оборудования.

Загрузка программ в видеопамять


Вместе с драйвером QEMM-386 поставляется программа VIDRAM.COM. Эта программа позволяет увеличить доступное для программ пространство оперативной памяти на 96 килобайт, при условии, что вы откажитесь от использования графических режимов видеоадаптера. Кроме того, у вас должен быть установлен видеоадаптер EGA или VGA.

Программа VIDRAM.COM - резидентная. После запуска вы можете её легко подключать или отключать. Для отключения VIDRAM.COM (например, перед запуском графических программ) введите команду:

vidram off

Если вам вновь потребовались дополнительные 96 килобайт памяти для программы, работающей в текстовом режиме, введите команду:

vidram on

Вы можете использовать программу VIDRAM.COM на любом компьютере, имеющем видеоадаптеры EGA или VGA. Тип процессора, установленного в компьютере, значения не имеет.

Когда наиболее целесообразно загружать программы в видеопамять? Например, при работе с такими программами, как dBASE IV или Microsoft WORKS. Эти программы могут работать в текстовом режиме. Для их запуска можно подготовить пакетные файлы, в которых перед запуском, например, WORKS, подключается видеопамять, а после её завершения - отключается:

vidram on works vidram off