2

Операционная система должна работать на одном или нескольких физических ядрах многоядерного процессора, верно? Можно ли определить, какие физические ядра используют кусок кода?

2 ответа2

6

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

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

1

Это зависит от того, какую ОС вы используете. По крайней мере, с теми, которые поддерживают dtrace , вы, безусловно, можете измерить нагрузку на ядро на ядро.

mpstat основанный на выборке, также может сообщать подробные статистические данные загрузки процессора.

Если не используются выделенные наборы / привязка / сходство процессоров или подобные методы, часть нагрузки на ядро должна быть сбалансирована между всеми ядрами.

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