Станислав Братанов

Avatar1

Станислав Братанов, ведущий инженер-исследователь в корпорации Интел.
Занимается проектированием и реализацией программно-аппаратных измерительных систем для параллельных вычислительных машин, исследованиями в области операционных систем и систем параллельного программирования, проектированием и оптимизацией параллельных систем видео-аудио кодирования; является автором изобретений, а также статей по проблемам параллельных вычислений и юриспруденции.


Принципы построения новой операционной системы: проще, дешевле, безопаснее

Упрощение, удешевление и унификация поддержки современных и будущих вычислительных систем – вот цели создания новой операционной системы. Для достижения этих целей мы предлагаем унифицированную модель организации обмена данными и управления задачами. Основа предлагаемой модели ОС – сервисно-ориентированный подход к параллельному исполнению программ – реализует новые принципы передачи управления, планировки задач и управления ресурсами, а также новые логические топологии программной коммуникации и синхронизации, которые удовлетворяют потребности современных параллельных и распределенных компьютерных систем, включая как мощные сервера, так и сети беспроводных сенсоров.



Задачи новой операционной системы

Упрощение, удешевление и унификация поддержки современных и будущих вычислительных систем. Формирование программной платформы, масштабируемой на широкий спектр технических решений – от микроконтроллеров до распределенных систем. Стимулирование программных решений, поддерживающих вышеперечисленные принципы. Формулирование требований к развитию аппаратуры.

Базовый принцип и его свойства

Базовый принцип организации новой ОС – это концепция Ресурс-Владелец-Услуга (Resource-Owner-Service, ROS), в соответствии с которой все компоненты вычислительной системы, как аппаратные (процессоры, память, устройства), так и программные (например, участки кода, реализующие определенный алгоритм), рассматриваются как ресурсы и разделяются между владельцами – программами/задачами. Все взаимодействия между задачами осуществляются исключительно посредством запросов и предоставлением услуг (сервисов).

Напоминает обычную модель клиент-сервер? Да, но есть еще третий принцип, в котором и состоит основное отличие — «овеществление» сервисов. А именно, сервис в ROS модели – это не просто функциональность или интерфейс для обмена данными, предоставляемые объектом, а новая коммуникационная и синхронизационная сущность – объект.

Назовем экземпляры этих объектов каналами. Канал – это разделяемый объект, содержащий как код, так и данные и предназначенный для передачи данных и управления между задачами. Заметьте, что здесь намеренно отсутствует разграничение на провайдера и потребителя услуг (то есть сервер и клиент), так как каждая задача может и предоставлять, и потреблять определенный набор сервисов.

Из исключительности каналов как средства взаимодействия задач следует еще одно свойство ROS-модели: коммуникационная синхронизация. Любая передача управления между задачами, по определению, может осуществляться только в связке с получением/предоставлением услуги, то есть каналы становятся синхронизационными объектами, однозначно определяющими место и назначение синхронизации задач.

ОС не имеет никакой информации и не делает никаких предположений о предназначении каждого канала. Так что каналы должны предоставлять идентификаторы, однозначно определяющие тип, цель или иную информацию, необходимую для конкретного взаимодействия. Для обеспечения исполнения задач система создает для каждой задачи специальный системный канал.

На рисунке ниже представлена принципиальная схема ОС:

Все крайне просто. Серо-голубым цветом помечены физические компоненты системы – процессоры (CPU), память (memory). Dev (Device) – это физическое устройство хранения данных. Ядро ОС владеет ресурсами процессоров и памяти. Остальными ресурсами системы могут владеть привилегированные задачи (P-task), предоставляющие в свою очередь сервисы задачам пользовательского уровня (U-task) посредством коммуникационных каналов (channel). ОС реализует: Менеджер Памяти (ME-M), Менеджер Каналов (CH-M), Менеджер Системных Каналов (SC-M), Менеджер Задач (TA-M), и Диспетчер Задач (TA-D). Ядро идентифицирует задачи и запросы на сервисы посредством системных каналов (syschan).

Предлагаемая ROS-модель имеет ряд полезных свойств: изолированность задач и структурированность их взаимодействия повышает общую безопасность системы за счет «дробления» ответственности: самое худшее, что может сделать злонамеренная или ошибочная задача, – это нарушить коммуникацию со своим контрагентом. Кроме того, взаимодействие через каналы может быть организовано как на разделяемой памяти, так и по сети, что позволяет легко отмасштабировать унифицированное решение с локальных систем на распределенные, а также осуществлять перенос работающих программ на другую систему и даже «прозрачную» трансляцию программ с переносом на принципиально другую аппаратуру.

Следствия и сопутствующие технические решения

ROS-модель и введение понятия канала предусматривает определение разветвленной топологии взаимодействия задач. В свою очередь, взаимодействие задач исключительно через каналы влечет за собой необходимость новых подходов к порождению, диспетчеризации задач и синхронизации между ними. Все это раскрывается в полном тексте статьи в рамках описания унифицированной структуры задачи, модели передачи управления Yield-To и скоординированного вытеснения (cooperative preemption).

Новые подходы к организации задач и канального взаимодействия выдвигают дополнительные требования к языкам программирования и генерации кода – что тоже обсуждается в статье. Основной принцип – упрощение и отсутствие специальных форматов, где только возможно.

И наконец, новая ОС допускает существенную вариативность уровней сложности при построении ядра системы: в зависимости от аппаратных особенностей вычислительной системы и от области применения, можно реализовывать разные наборы топологий каналов и разную функциональность управления каналами.

Заключение и дальнейшие шаги

Основа предлагаемой модели ОС – сервисно-ориентированный подход к параллельному исполнению программ – реализует новые принципы передачи управления, планировки задач и управления ресурсами, а также новые логические топологии программной коммуникации и синхронизации, которые удовлетворяют потребности современных параллельных и распределенных компьютерных систем, включая как мощные сервера, так и сети беспроводных сенсоров.

Многие из описанных принципов дизайна ОС были первоначально воплощены ее автором еще в прошлом веке (1999 году) как часть легковесной ОС, служившей предсказуемой и полностью контролируемой средой тестирования для исполняемых файлов Windows NT. Затем, в 2009 году, были введены принципы конфигурируемой сложности построения ядра ОС, с тем чтобы удовлетворить потребности построения сенсорных сетей и унифицировать программатуру самих сенсоров и серверов, обрабатывающих информацию с беспроводных сетей.

Наиболее продуктивным следующим шагом представляется поиск ниш, не занятых крупными конкурирующими решениями, возможно, узкоспециализированных, и создание своих нишевых решений, на базе которых можно будет осуществлять дальнейшее развитие и продвижение новой системы.

Организаторы

При поддержке