Вигідне ядро означає лише, що немає великого блокування ядра .
З самого першого моменту Linux мав попереджувальну багатозадачність (тобто код користувача був сприйнятливим) (наскільки я знаю, найперший Linux 0.0.1, завантажений Лінусом на funet ftp-сервер, був уже попередньою багатозадачністю). Якщо ви виконували, наприклад, кілька процесів стиснення або компіляції, вони виконувалися паралельно з першого моменту.
На противагу - на той час - широко використовується Win31. У Win31, якщо завдання отримало ЦП від "ядра", за замовчуванням його відповідальність визначала, коли повернути управління ОС (або іншим завданням). Якщо процес не мав спеціальної підтримки для цієї функції (що вимагало додаткової роботи з програмування), то під час її виконання всі інші завдання були призупинені. Навіть більшість основних програм, інтегрованих у програму Win31, працювали так.
Переважне багатозадачність означає, що завдання не мають можливості розподілити процесор так, як вони хочуть. Натомість, якщо термін їх часу закінчується, ядро відводить процесор від них. Таким чином, в попереджувальних операційних системах погано записаний або погано функціонуючий процес не може заморозити ОС або уникнути запуску інших процесів. Linux завжди переважав для процесів простору користувача.
Блокування великого ядра означає, що в деяких випадках всередині простору ядра все-таки можуть бути деякі блокування, що не дозволяють іншим процесам запускати захищений код. Наприклад, ви не могли одночасно монтувати декілька файлових систем - якщо ви дали кілька команд монтування, вони все одно виконувались послідовно, оскільки для монтажу речей, необхідних для виділення блокування Big Kernel.
Здійснення переваги ядра вимагало усунення цього великого блокування ядра, тобто створення змонтування та будь-яких інших завдань, які можна було б одночасно виконувати. Це була велика робота.
Історично це було зроблено дуже актуально завдяки зростаючій підтримці SMP (підтримка декількох процесорів). У перший час справді були багатопроцесорні плати. Пізніше декілька процесорів («ядер») були інтегровані в єдиний чіп, сьогодні дійсно багатопроцесорні плати вже рідкісні (вони зазвичай в дорогих серверних системах). Також справді одноядерні системи (де є лише один процесор, з одним ядром) є рідкістю.
Таким чином, відповідь на ваше запитання полягає не в тому, "що було причиною непередбачуваності", оскільки воно завжди було превентивним. Справжнє питання полягає в тому, що зробило попереджувальне виконання ядра справді необхідним . Відповідь на це: зростаюче співвідношення багатопроцесорних багатопроцесорних систем.