Операционная система должна работать на одном или нескольких физических ядрах многоядерного процессора, верно? Можно ли определить, какие физические ядра используют кусок кода?
2 ответа
Фактически, операционная система (ядро) является частью каждого отдельного процесса, который выполняется на машине. Так что на самом деле, это не то, что операционная система работает на одном ядре, а пользовательские программы работают на других ядрах, а скорее пользовательские процессы работают на каждом ядре, и каждый раз, когда им нужно взаимодействовать с операционной системой, они выдают системный вызов, который передает управление операционной системе на том же ядре.
Итак, ядро работает на всех ядрах, и большинство операционных систем сообщит вам, какой процент использует ядро для каждого ядра, что фактически является показателем того, как часто программы пользовательского пространства взаимодействуют с ядром, и как часто ядро прерывает пользовательское пространство. процессы для планирования, управления оборудованием и т. д.
Это зависит от того, какую ОС вы используете. По крайней мере, с теми, которые поддерживают dtrace
, вы, безусловно, можете измерить нагрузку на ядро на ядро.
mpstat
основанный на выборке, также может сообщать подробные статистические данные загрузки процессора.
Если не используются выделенные наборы / привязка / сходство процессоров или подобные методы, часть нагрузки на ядро должна быть сбалансирована между всеми ядрами.