Pages Menu
Categories Menu

Опубликовано | Нет комментариев

Масштабируемость

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

Борьба за ресурсы и решение других проблем, влияющих на производительность системы, в мультипроцессорных системах происходит сложнее, чем в однопроцессорных. Это должно быть учтено в конструкциях мультипроцессорных систем. В Windows имеется ряд функций, имеющих решающее значение для достижения ее успешной работы в качестве мультипроцессорной операционной системы:

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

Со временем масштабируемость ядра Windows улучшилась. Например, в Windows Server 2003 были представлены очереди планирования для каждого процессора, позволяющие принимать решения по диспетчеризации потоков параллельно на нескольких процессорах. В Windows 7 и Windows Server 2008 R2 была убрана глобальная блокировка в отношении диспетчеризации баз данных.

Такому поэтапному улучшению детализации блокировки подверглись и другие области, например, диспетчер памяти.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.

↓