Ускорение дисковой подсистемы
От: Аноним  
Дата: 08.01.08 02:23
Оценка:
привет.
вот мысль меня посетила.
а почему бы например не написать драйвер — файловый фильтр, который бы делал следующее:

1. при запуске системы подгружает содержимое часто используемых файлов в заранее зарезервированную область памяти ("кеш")
2. при изменении этих файлов (*SetInformation, *Write, ...) обновляет внутренний "кеш"
3. при запросах содержимого этих часто используемых файлов (*Read, *QueryInformation, ...) отдаёт данные из "кеша"

часто используемые файлы — это например System32\*.exe, System32\*.dll, а также исполняемые модули программ, которые запускаются вместе с Windows.

вопросы:

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

спасибо заранее.
Re: Ускорение дисковой подсистемы
От: Сергей Мухин Россия  
Дата: 08.01.08 06:15
Оценка:
Правила форума нарушены.
— оверквотинг
Правила можно найти в разделе FAQ данного форума и\или ресурса.
Нарушение правил может повлечь за собой санкции, описанные там же — модератор

А>3. существуют ли подобные разработки? где можно скачать?


здесь
---
С уважением,
Сергей Мухин
Re: Ускорение дисковой подсистемы
От: Andrew.W Worobow https://github.com/Worobow
Дата: 08.01.08 08:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>вот мысль меня посетила.

А>а почему бы ...

А сейчас так примерно и происходит.
Не все кто уехал, предал Россию.
Re: Ускорение дисковой подсистемы
От: Valery A. Boronin Россия linkedin.com/in/boronin
Дата: 08.01.08 10:37
Оценка: 11 (1)
А>1. как считаете, намного ли ускорит работу дисковой подсистемы подобный драйвер?
в большинстве сценариев — да

А>2. с какими подводными камнями можно столкнуться при реализации такой схемы?

весь джентльменский набор камней разработчика режима ядра, несомненно, будет в наличии

А>3. существуют ли подобные разработки? где можно скачать?

их давно уже начали встраивать прямиком в ОС:
Windows Vista: тесты SuperFetch и ReadyBoost

Первая версия встроена в XP и ее зовут Prefetch

А>4. был ли у вас опыт подобной разработки? как ощущения?

зачем подобной? подобной — пусть работают те, кому по штату положено. вот вокруг их работы, бывает, что-то случается конечно. А ощущения же по идее не должны сильно отличаться от любых других обычных в нашем деле — требования, дизайн, кодирование, тестирование.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[2]: Ускорение дисковой подсистемы
От: Аноним  
Дата: 08.01.08 13:04
Оценка:
А>>1. как считаете, намного ли ускорит работу дисковой подсистемы подобный драйвер?
VAB>в большинстве сценариев — да

Отлично. Значит есть повод напедалить нечто подобное.

А>>2. с какими подводными камнями можно столкнуться при реализации такой схемы?

VAB>весь джентльменский набор камней разработчика режима ядра, несомненно, будет в наличии

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

VAB>их давно уже начали встраивать прямиком в ОС:

VAB>Первая версия встроена в XP и ее зовут Prefetch

Да, я знаю. Но я имел в виду несколько другое. Минусы этого префетча очевидны:

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

    Хотелось бы реализовать такой кэш, данные в котором находились бы постоянно. Ну и гибкую систему настроек разумеется.
    Я думаю это будет хороший выход для тех у кого недостаточно шустрая дисковая подсистема, но достаточно памяти, ведь даже при 1 ГБ ОЗУ такая схема должна по идее давать прирост производительности на XP, для Vista конечно от 2 ГБ надо бы.

    А>>4. был ли у вас опыт подобной разработки? как ощущения?

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

    И то верно.

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


    Понял, спасибо.
  • Re[2]: Ускорение дисковой подсистемы
    От: Аноним  
    Дата: 08.01.08 13:12
    Оценка:
    А>>вот мысль меня посетила.
    А>>а почему бы ...
    AWW>А сейчас так примерно и происходит.

    Ну конечно, я не первый кому пришла в голову подобная мысль.
    Вот только производительность оставляет желать лучшего, даже имея 2 ГБ ОЗУ.
    Про Vista и Server 2008 я вообще молчу.
    Re: Ускорение дисковой подсистемы
    От: Pzz Россия https://github.com/alexpevzner
    Дата: 08.01.08 13:32
    Оценка:
    Здравствуйте, Аноним, Вы писали:

    А>1. при запуске системы подгружает содержимое часто используемых файлов в заранее зарезервированную область памяти ("кеш")

    А>2. при изменении этих файлов (*SetInformation, *Write, ...) обновляет внутренний "кеш"
    А>3. при запросах содержимого этих часто используемых файлов (*Read, *QueryInformation, ...) отдаёт данные из "кеша"

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

    А>1. как считаете, намного ли ускорит работу дисковой подсистемы подобный драйвер?


    Скорее всего, немного замедлит, т.к. будеть мешать работать встроенному кешу.
    Re[2]: Ускорение дисковой подсистемы
    От: Аноним  
    Дата: 08.01.08 13:53
    Оценка:
    Pzz>Оно там уже есть. Правда, не на уровне файлов, а на уровне страниц. Но была бы разница...

    Есть. Но работает неудовлетворительно на мой взгляд.

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


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

    Для примера:

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

    Можно таким образом придать нашему драйверу немного интеллекта.
    Короче, есть над чем подумать.

    Pzz>Скорее всего, немного замедлит, т.к. будеть мешать работать встроенному кешу.


    Встроенный кэш не будет использоваться вовсе.
    Запросы на чтение не будут доходить до драйверов файловых систем.
  • Re: Ускорение дисковой подсистемы
    От: _Morpheus_  
    Дата: 30.01.08 15:18
    Оценка:
    Здравствуйте, <Аноним>, Вы писали:

    А>а почему бы например не написать драйвер — файловый фильтр, который бы делал следующее:


    А>3. существуют ли подобные разработки? где можно скачать?


    Разработки такие существую, вот например некоторые из них — Windows 2000, Windows XP, Windows Vista...
    ... << RSDN@Home 1.2.0 alpha rev. 676>>
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.