Из-за роста числа ядер в каждом следующем поколении процессоров назрел вопрос о пересмотре основополагающей архитектуры нынешних операционных систем, заявил Дейв Проберт, архитектор ядра Microsoft Windows.
Несмотря на всю свою мощь, нынешние компьютеры не в состоянии полностью удовлетворить пользователей из-за отсутствия ПО, эксплуатирующего преимущества многоядерных процессоров. Написание параллельных приложений не выход, ведь параллельное программирование требует изрядного мастерства.
По мнению Проберта, отрасль должна пересмотреть основополагающие абстракции, которые используются в моделях ОС. Новинка будет весьма отличаться от Windows или UNIX.
Типичные настольные компьютеры позволяют одновременно запускать несколько программ. Центральный процессор, отдавая каждому приложению некоторый квант времени, создает иллюзию того, будто программе предоставлен отдельный (а на деле виртуальный) процессор. При этом многозадачная ОС постоянно переключается между режимом ядра и режимом пользователя. В случае с многоядерными процессорами в принципе ничего не меняется — правда, переключаться приходится чаще. Кроме того, каждый виртуальный процессор стремится привлечь внимание физического.
По прогнозам Intel и AMD, продолжится рост количества процессорных ядер и, очевидно, виртуальных процессоров в понятиях нынешней парадигмы ОС и приложений. Следовательно, пришло время отказаться от устаревшей абстракции разделения ОС на два режима.
Как предлагает Проберт, многоядерные процессоры должны стать просто процессорами, каждый из которых может быть отдан на обслуживание одной программы.
В таком случае ОС будет выступать гивервизором, то есть прослойкой между виртуальной машиной и физическим оборудованием. ОС могла бы назначать процессор и некоторый объем памяти программе (или среде выполнения), а та взяла бы на себя самостоятельное управление ресурсами посредством метаданных, полученных от компилятора, лучше знающего тонкости использования ресурсов.
Гравитация научных фактов сильнее, чем вы думаете