• Дейв Проберт, архітектор ядра операційної системи Windows, вважає, що настав час переглянути базову архітектуру сучасних операційних систем, засновану на паралельних обчислень з допомогою декількох ядер. На його думку, необхідно переглянути систему базових абстракцій, на яких заснована робота ОС.
    Проберт вважає, що сучасні комп'ютери не використовують можливості багатоядерних систем на повну потужність. "Чому при всіх цих паралельних апаратних обчисленнях нам досі доводиться чекати, коли комп'ютер завершить якусь операцію" - запитує він.br/>У своїй промові в Іллінойському університеті фахівець пояснив, як повинна виглядати сучасна операційна система, якщо створювати її повністю з нуля. На його думку, така система дуже сильно відрізнялася б від звичних для всіх Windows і Linux.
    Типовий сучасний настільний комп'ютер відтворює декілька програм одночасно: наприклад, можна працювати в інтернеті і слухати музику. На думку Проберта, ключовим чинником є "чуйність" системи. Він ставить запитання: "Як операційній системі визначити, яка завдання більш приоритетна". Ніхто не хоче чекати, коли запуститься Microsoft Word просто тому, що антивірусна програма вирішила почати в цей момент сканування файлів.
    У більшості ОС є функції пріоритету, але вони неефективні і поки не вирішує всіх проблем. Корінь проблеми - неефективне використання багатоядерної архітектури. Ключ до її рішення - вдосконалення паралельних обчислень, вважає експерт. Потрібно навчитися правильно використовувати можливості ядер, а не просто механічно їх збільшувати.
    На зорі комп'ютерів одна програма працювала на одному процесорі. Згодом з'явилася багатозадачність, і процесорний час почали ділити на кілька частин для різних програм: створювалася ілюзія, що кожна програма виконується на власному процесорі. При багатозадачному режимі операційній системі необхідно захищений простір, ізольоване від користувача та інших програм. Так з'явилися режим ядра і режим користувача, які стали, по суті, абстракціями двох різних процесорів.
    Однак при такій системі, за словами Проберта, виникає проблема: як визначити, яким "віртуального" процесору виділяти ресурси процесора реального? Від постійного перемикання між віртуальними процесорами страждає чуйність системи, і особливо ця проблема ускладнюється, коли реальних процесорних ядер кілька.
    Експерт вважає, що в сучасній операційній системі потрібно повністю відмовитися від таких абстракцій, як режими ядра та користувача. "Коли ядер багато, процесори можуть знову стати процесорами, - говорить він. - Якщо їх достатньо, то можна виділяти їх окремими програмами".
    При такій моделі операційна система виконує роль прошарку між віртуальною машиною і реальними апаратними компонентами. Програми візьмуть на себе функції розподілу ресурсів. ОС буде призначати для програми процесор і який обсяг пам'яті, після чого програма вже сама на основі метаданих компілятора буде вирішувати, як скористатися цими ресурсами.
    Проберт зізнався, що цей підхід дуже складний для тестування, оскільки для нього потрібно написати багато програмного забезпечення. Проте, на його думку, результати цієї роботи коштують докладених зусиль.