2

Может быть, это глупый вопрос, но я пытаюсь лучше понять внутреннюю работу оборудования ...

Если машина имеет два или более ЦП, какой аппаратный компонент фактически отвечает за распределение выполнения команд (на уровне процессов или потоков) среди разных ЦП? Или другой способ выразить это, что определяет, какой процессор делает то, что, как только прибывает набор инструкций? Есть ли что-то эквивалентное распределителю нагрузки, который распределяет рабочую нагрузку в кластерной вычислительной среде.

Спасибо

2 ответа2

2

Операционная система создает "потоки" или "задачи" для каждой последовательной единицы работы (т. Е. Простая программа). ОС поддерживает очередь потоков / задач, готовых к запуску, и каждый раз, когда ЦП становится доступным, ОС назначает ему "готовый" поток / задачу.

Процессор становится доступным, потому что завершился ранее выполняющийся поток / задача, или потому, что ему нужно ждать дискового ввода-вывода или ответа сети, ввода пользователя или чего-либо еще. Когда ожидающий поток / задача удовлетворил причину своего ожидания, он возвращается в очередь "готово".

По сути, каждый поток / задача представляет собой "виртуальный ЦП", и ОС назначает эти "виртуальные ЦП" реальным ЦП.

1

Это комбинация операционной системы и блока управления в процессоре. ОС отвечает за создание потоков и назначение их ядрам. Блок управления в ЦП направляет поток данных внутри процессора. Он может переупорядочивать команды и динамически назначать их различным логическим единицам.

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