Узнайте, на каком ядре работает ОС Linux?

#process #operating-system #affinity

Вопрос:

У меня на компьютере 6 ядер, и во время запуска программы я замечаю некоторое необъяснимое поведение (остановку), которое может быть вызвано фоновыми операциями ОС.

  1. Есть ли способ узнать, на каком ядре работает ОС?
  2. и если есть несколько ядер, на которых работает ОС, могу ли я ограничить работу ОС одним ядром, которое я выберу?

Комментарии:

1. Это так не работает. Нет никакого «ядра, на котором работает ОС». Я не знаю об операционных системах ARM, но операционные системы x86 в основном основаны на прерываниях. ОС не «работает», она просто где-то присутствует в оперативной памяти (и вам не нужно знать, где). Есть некоторые процессы, которые запускаются для графического рабочего стола, и это наиболее близко к процессу, который всегда выполняется, который вы могли бы назвать процессом операционной системы. В противном случае ОС просто устанавливает прерывания и таймеры, и каждый поток ядра, который вы найдете, создается прерываниями.

2. Кроме того, если вы запускаете программу в пользовательском режиме в Linux и обнаруживаете, что она «глохнет», это не ошибка в ядре. Это ошибка в вашей программе. Linux достаточно зрелый, чтобы не иметь такого рода странных ошибок.