Программист Microsoft Дейв Проберт,
участвующий в разработке ядра Windows, выступал на прошлой неделе с
презентацией. Она проходила в спонсируемом Microsoft и Intel
Исследовательском Центре Параллельных Вычислений при Иллинойском
Университете. В выступлении Проберт рассматривал дальнейшее развитие
ядра операционной системы, учитывая массовый переход на использование
многоядерных процессоров. Он задавался вопросом, почему переход на
многоядерное железо не улучшил скорость реакции компьютера на действия
пользователя.
Дейв заявил, что грядущие операционные системы не будут похожи на
современные Windows или Linux. Главные изменения коснутся способа,
которым нынешние операционные системы распределяют процессы приложений
между ядрами. Операционные системы, рассчитанные на многоядерное железо,
будут назначать процессы ядрам, не вмешиваясь в их работу. Это избавит
от необходимости вводить многие абстрактные ограничения, такие, как
защищенная память, например.
Эффективное использование ядер – ключ к улучшению отклика системы.
Очевидно, что современные операционные системы расходуют ресурсы крайне
иррационально. Например, не умеют самостоятельно определять, какая из
задач имеет большее значение. Они зависят от того, как сами программы
установят приоритеты. Новый подход в проектировании ядра операционной
системы улучшит отклик и обеспечит большую гибкость, дав возможность
как следует реализовать многоядерность.
Дейв Проберт проектирует в Microsoft следующее поколение ядра
Windows. Как он сам признал, не все инженеры Microsoft разделяют его
взгляды, хотя соглашаются, что необходимость менять архитектуру
операционной системы назрела.
По его мнению, не успевшие завершиться процессы являются главной
причиной нашего ожидания при работе за компьютером. Нам приходится ждать
окончания загрузки документа, обработки веб-странички, вычисления
электронной таблицы или чего-то еще. Назначение ядрам определенных
процессов не меняет этого - проблема не в эффективности переключения
между задачами, так как оно гораздо быстрее всех разумных реакций
человека. Программы медленно реагируют, потому что им выделяется
ограниченное время на исполнение, и если его не хватает, окончание
выполнения будет отложено.
Другие программы наоборот умышленно не реагируют на запросы
пользователя, пока выполняется какой-либо ресурсоемкий процесс. Это
плохой код, который не дает прерывать назначенные ядрам процессы, и он
лежит целиком на совести разработчиков. Сложной и обширной проблемой до
сих пор является распараллеливание задачи на несколько ядер. Успешное
ее решение даст нам возможность увеличивать скорость исполнения задачи
пропорционально количеству задействованных для ее решения ядер. Из всех
проблем эта - самая трудная, над которой Исследовательский Центр
Параллельных Вычислений продолжает работать.
Существующие операционные системы тоже меняются, следуя требованиям
времени. Windows 7, к примеру, включает множественные изменения для
улучшения масштабируемости на многоядерных системах. Другие системы
тоже могут назначать процесс определенному ядру и дают ему возможность
выполняться непрерывно. Они так же могут множество процессов назначать
на одно ядро, что позволяет исполнять на этом ядре больше чем один
процесс.