Операционные системы -вопросы теории

         

Управление памятью с помощью "ручек"



Рисунок 4.16. Управление памятью с помощью "ручек"


Вызовы GlobalLock/GlobalUnlock:

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

Попытки уменьшить число блокировок требуют определенных интеллектуальных усилий. Фактически, к обычному циклу разработки ПО: проектирование, выбор алгоритма, написание кода и его отладка — добавляются еще 16 фазы: микрооптимизация использования "ручек" и отладка оптимизированного кода. Последняя фаза оказывается, пожалуй, самой сложной и ответственной.



Содержание раздела