Средства MS-DOS, Windows 3.1 х
Повысить производительность устройств внешней памяти – жестких и компакт-дисков (CD-ROM) можно с помощью кэширования. В результате использования данного режима эксплуатации накопителей выделяется часть оперативной памяти для буферизации данных. Буферизация используется при операциях записи и чтения для жестких дисков и чтения для CD-ROM.
Кэширование позволяет оптимизировать обмен данными и, в конечном счете, повысить общую производительность компьютера. При кэшировании обмен данными между устройством с его контроллером и остальными частями компьютера производится не короткими фрагментами, а блоками значительной длины. Это увеличивает скорость передачи данных.
В современных устройствах внешней памяти уже используются встроенные контроллеры с кэш-памятью, но довольно часто размера этой памяти не достаточно для достижения максимально возможных скоростей доступа к данным и последующего обмена. В этом случае можно программно выделить часть оперативной памяти для дополнительной буферизации данных. При этом в буфер памяти значительного размера могут считываться не только данные, необходимые в текущем цикле считывания, но и данные, которые могут потребоваться в следующих циклах.
В соответствии с достаточно сложными алгоритмами кэширования поиск необходимых данных производится сначала в кэш-памяти – отведенной для кэширования части оперативной памяти, а уже потом на дисках выбранного устройства. Это позволяет уменьшить число циклов обращения к дискам накопителя. Доступ к оперативной памяти осуществляется значительно быстрее, чем к данным на указанных устройствах. Это связано с тем, что электроника работает значительно быстрее механических элементов. Для механических узлов время исполнения команд оценивается миллисекундами (жесткие диски) и даже десятками миллисекунд (CD-ROM), а поиск в оперативной памяти осуществляется за десятки наносекунд, т. е. в сотни тысяч раз быстрее.
Таким образом, хранение данных в области оперативной памяти, отведенной для целей кэширования, будет способствовать значительному увеличению скорости обмена данными и, в конечном счете, повышению общей производительности компьютера. С помощью кэширования можно значительно повысить быстродействие накопителей, особенно это касается дисковода CD-ROM.
При использовании операционной системы MS-DOS и оболочки Windows 3.1* кэширование CD-ROM можно реализовать с помощью драйвера MSCDEX, поставив ключ /м:х в строку загрузки драйвера. В данном случае х – это количество буферов. Для данного драйвера буфер – это 2 Кбайт ОЗУ. Скорость обмена и производительность компьютера будут возрастать с ростом выделенной памяти – количества буферов. Однако этот рост не может быть произвольным, т. к. он ограничен физическим размером оперативной памяти. Это может быть либо базовая память, либо верхние адреса ОЗУ – UMB. Обычно используется 10 буферов, тогда строка загрузки драйвера MSCDEX может выглядеть следующим образом:
c:\dos\mscdex /d:001 /m:10
Довольно часто используется драйвер SmartDrive, реализующий кэширование, как для CD-ROM, так и для жестких и гибких дисков. Данный драйвер, находясь в базовой и/или частично в UMB-памяти, предоставляет возможность использовать для кэширования дополнительную память значительного размера – Extended-память. Применение драйвера SmartDrive позволяет значительно увеличить размер буферной кэш-памяти, не занимая под буфер базовую или UMB-память. При этом можно реализовать кэширование нескольких устройств. Данный драйвер целесообразно использовать при наличии ОЗУ значительного размера – 8 Мбайт и более, что, начиная с процессоров класса 486, являлось, как правило, легко выполнимым условием.
Для активизации драйвера SmartDrive необходимо запустить файл smartdrv.exe. Для удобства его использования следует поставить ключ /v. В этом случае на экран будет выводиться информация о кэшируемых накопителях. Например, загрузив этот драйвер, пользователь получает следующий отчет:
Утилита кэширования дисков Microsoft SMARTDrive версии 5.0 Copyright 1991.1994 Microsoft Corp. Размер кэш-памяти: 2 097 152 байт Размер кэш-памяти при работе Windows: 2 097 152 байт Состояние кэширования диска диск кэш чтения кэш записи буферизация А: да нет нет В: да нет нет С: да да нет F: да нет нет для получения информации введите Smartdrv /?
В приведенном примере отчета видно, что для двух гибких дисков (А:, В:), жесткого диска (С:) и CD-ROM (F:) используется кэш для чтения, а кэш для записи – только для жесткого диска (С:). В столбце буферизация не указан ни один накопитель, т. к. это так называемая двойная буферизация, которая нужна очень редко. Более подробную настройку кэширования накопителей с помощью драйвера SmartDrive можно осуществить, используя дополнительные ключи.