Intereting Posts
На Debian (64-разрядная версия), как установить glibc, который я построил из исходного кода? Не удается найти основной дамп из-за прерывания из-за ошибки seg на Linux с изображения докеров Программный центр не работает на kali linux? RHEL: изменение разрешения экрана виртуальной консоли Как восстановить меню «Приложения» Ubuntu Mate 18.04? Добавить псевдоним правила udev для устройства ввода Переименование нескольких файлов, удаление всего одного экземпляра шаблона Поиск и замена вопроса Возможно ли, чтобы программа имела свой выделенный X-дисплей? Запустите zsh с помощью специального zshrc Firefox не хочет выполнять Что может привести к сбою операций перемещения / удаления файлов NFS? Как определяется определение типа файла по расширению имени файла в дополнение к спецификации XDG (mimeapps.list) Это нормально для mkfs без номера раздела? Обновление Linux (Fedora) зашифрованным объемом LUKS

Многопоточное разделение в системе * nix

Как репликация потоков на процессор обрабатывается в системе * nix? Например, один процесс использует 37 потоков, машина имеет 4 ядра. Обычно все потоки помещаются на 2 ядра. Иногда на 3 ядра. И почти никогда на 4 ядрах.

Есть ли способ увидеть, какой поток на каком ядре? И сколько процессор он использует?

Не уверен. Если я смогу полностью ответить на этот вопрос, или если я понимаю весь ваш вопрос?

Как перераспределение потоков на процессор обрабатывается в системе * nix?

Я знаю, что это низкоуровневый материал, например, самый низкоуровневый материал, который ядро ​​позаботится об этом. Я знаю, что ядро ​​Linux (я думаю, что они все работают так.) Рассматривает много разных вещей (такие, как температура), чтобы принять это решение.

Например, один процесс использует 37 потоков, машина имеет 4 ядра. Обычно все потоки помещаются на 2 ядра.

hm, вы правы в том смысле, что процессор (Core) действительно не выполняет «процессы», а потоки. Но все же процесс состоит в том, что на самом деле это «почти физическое». (У него есть владелец и привилегии, также представляет весь фрагмент времени, который используется всеми его потоками.) Обладает одним ядром за раз. Потоки этого процесса выполняются на нем до тех пор, пока он не выйдет или не будет прерван. Вы не можете иметь несколько потоков одного и того же процесса на разных ядрах.

Почему так?

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

Есть ли способ увидеть, какой поток на каком ядре? И сколько процессор он использует?

Я вижу, вам интересно узнать, как это работает, это хорошо. Но поверьте мне, это совершенно неинтересно. Не беспокойтесь, люди, которые проектировали ядро, строят его таким образом, что он уравновешивает их довольно чертовски хорошо. Вы можете использовать htop он показывает некоторую информацию. Я новичок, но кто-то, кто прочитал man ps определенно может ответить на этот вопрос.