У нас для встроенных приложений есть свой процессор, теперь -- 2-ядерный.
Ядра идентичны во всем, кроме номера (ядро может определить свой номер: 0 или 1).
При запуске оба ядра начинают исполнять один и тот же код, но ядро 0 считается вначале основным,  поэтому ядро 1 определяет свой номер и "впадает в спячку" (цикл ожидания, когда ядро 0 даст ему задание).
Вот на этом простом примере можно "обкатать" идею 2-ядерной ОС.

В целом же, я согласен с Сергеем Губановым, который за основу берет не ядро, а поток.
IMHO, кроме концептуального упрощения, это позволит сбалансировать нагрузку на ядра.
Но, кажется, это накладывает дополнительное требование (которое не всегда выполняется) к 2-ядерному процессору: обеспечить когерентность кэшей. (Так ли это?)