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


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


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

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

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

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

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

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

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




- Начало -  - Назад -  - Вперед -