Скачиваний:
406
Добавлен:
22.01.2014
Размер:
3.77 Mб
Скачать

24.11. Кэширование диска.

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

Методы кэширования, используемые для оперативной памяти – Write Trough (сквозной записи) и Write Back (обратной записи) - применяются и для кэширования информации, хранимой на жестких дисках. Так как винчестер является блочно-ориентированным устройством ввода-вывода, то данные передаются блоками определенной длины, используя при этом специальные буферы для файлов (команда BUFFERS). Таким образом, центральный процессор работает с диском не на прямую, а через буферы.

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

При полном заполнении кэша происходит замена информации, к которой производится минимум обращений (алгоритм LRU). Если в кэше хранить таблицу FAT и дерево каталогов, то поиск файлов происходит эффективно даже для дисков большой емкости.

Архитектура кэш-памяти современных винчестеров использует полностью ассоциативное отображение (Fully Associative Memory), а это значит, что кэш может быть использован для работы с любым количеством страниц. Такая организация кэша возможна вследствие того, что оперативная память и микропроцессор работают существенно быстрее, чем жесткий диск.

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

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

Среди имеющихся средств кэширования наиболее часто используются администраторы SmartDriveизMS-DOSиNortonCacheиз комплектаNortonUtilities.

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

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