2

Какова внутренняя логика Microsoft ReadyBoost?

Даже теоретический ответ подойдет.

1 ответ1

2

ReadyBoost состоит из службы (% SystemRoot%\System32\Emdmgmt.dll), которая выполняется в процессе узла службы, и драйвера фильтра томов (% SystemRoot%\System32\Drivers\Ecache.sys). (Emd - это сокращение от External Memory Device, рабочее название для ReadyBoost во время его разработки.) Когда вы вставляете флэш-устройство, например USB-ключ, в систему, служба ReadyBoost просматривает устройство, чтобы определить его характеристики производительности, и сохраняет результаты его теста в HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Emdmgmt.

Если ваше флеш-устройство достаточно быстрое и вы согласны, служба создает в корне устройства файл кэширования с именем Ready Boost.sfcache, который будет использоваться для хранения кэшированных страниц (исходный кеш создается путем запроса кеша SuperFetch, но позже содержимое полностью управляется ReadyBoost независимо).

После того как служба ReadyBoost инициализирует кэширование, драйвер устройства Ecache.sys перехватывает все операции чтения и записи на локальные тома жесткого диска и копирует любые данные, считываемые или записываемые в файл кэширования, созданный службой, с некоторыми исключениями, такими как данные, которые не были прочитаны в течение долгого времени, или данные, которые принадлежат запросам Volume Snapshot. Ecache.sys сжимает данные и, как правило, обеспечивает степень сжатия 2:1, поэтому файл кэша объемом 4 ГБ обычно содержит 8 ГБ данных. Драйвер шифрует каждый блок, который он записывает, используя шифрование AES с помощью случайно сгенерированного ключа сеанса загрузки, чтобы гарантировать конфиденциальность данных в кеше, если устройство удаляется из системы.

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

Это происходит из книги Windows Internals, она была сокращена, чтобы соответствовать как ответ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .