Многопоточные приложения на однопоточном CPU?

Мотивация этого вопроса связана с изучением платы Intel Galileo gen2, которая имеет однопоточный процессор.

  • Я ищу концептуальное объяснение того, что это означает для всех приложений пользовательского пространства, которые полагаются на существование потоков?
  • Означает ли это, что ядро ​​должно быть исправлено, чтобы система вызывала вызов потоковой передачи, эмулируется в программном обеспечении вместо того, чтобы полагаться на поддержку потоковой передачи процессора?

    Многозадачные системы обрабатывают несколько процессов и потоков независимо от количества процессоров или ядер, установленных в системе, и количества «потоков», которые они обрабатывают. Многозадачные работы с использованием сокращения времени: ядро ​​и каждый выполняемый процесс или поток каждый из них тратят некоторое время на выполнение, а затем система переходит к следующему запущенному потоку. Коммутаторы происходят очень часто, что создает впечатление, что все работает параллельно, даже если это не так.

    Все это происходит без каких-либо изменений API и т. Д. Многоядерные системы должны иметь возможность запускать больше потоков, чем они физически поддерживают в любом случае, одноядерный случай – всего лишь пример этого.

    Описывать CPU как однопоточное означает одновременное многопоточность (SMT или гиперпоточность в мире Intel), а не способность процессора запускать несколько потоков (или процессов или задач). Добавление функций SMT к процессору не добавляет никаких инструкций, помогающих запускать потоки, а просто позволяет лучше использовать оборудование в некоторых случаях.