Современные Устройства Ввода-Вывода Работают Быстрее Процессоров. Обзор Статьи



Современные устройства ввода-вывода работают быстрее процессоров.
</p><p>
 Обзор статьи

Я хочу рассказать вам о статье «Ввод-вывод быстрее, чем процессор — давайте разделим ресурсы» и устранить (большинство) абстракций ОС» , опубликованный на личной странице одного из разработчиков ScyllaDB Пекки Энберга.

Я узнал о ней от видео .

Авторы должны были выступить с докладом по этой статье на ХОТОС17 Воркшоп (Hot Topics in Operating Systems) 12 -15 мая 2019. Насколько я понимаю, там обсуждаются разработки на ранних стадиях их жизни.

Моя статья носит новостной характер с целью побудить пытливые умы задуматься на эту тему и поразмышлять в комментариях.



Общая суть

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

Приложения не могут воспользоваться преимуществами современного оборудования, потому что.

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

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

Parakernel упрощает параллелизм на уровне приложений за счет безопасного разделения ресурсов и мультиплексирования неразделяемых ресурсов.

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

В настоящее время устройства ввода-вывода могут легко перегрузить процессор.

По мнению авторов, современные сетевые стеки выполняют слишком много работы на пакет. Кроме того, операционные системы обычно реализуют API сокетов POSIX, который требует больших затрат на переключение контекста и загрязняет кэш процессора.



Предварительные требования к оборудованию

Современная 40Гбитная сетевая карта может принимать пакет, соизмеримый со строкой кэша, каждые 5 нс, а задержка доступа к LLC (кешу последнего уровня) процессоров составляет примерно 15 нс.

Например, Linux разрабатывал интерфейс POSIX AIO, который должен был обеспечить простой и эффективный интерфейс асинхронного ввода-вывода.

Реализация, поддержка и использование такого интерфейса при сохранении семантики POSIX оказались очень сложными и от него отказались в пользу нового.

io_uring .



Каково предлагаемое решение?

Новая структура ОС, которую авторы называют параядро , предназначен для упрощения распараллеливания задач.

Приложениям выделяются ресурсы и они имеют полный контроль над ними; ресурсы, которые не могут быть разделены, мультиплексируются ядром.

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

Это препятствие можно уменьшить, разделив ресурсы между ядрами процессора.



Полученные результаты

Некоторые абстракции операционной системы ограничивают производительность ввода-вывода.

Авторы представляют структуру ОС, которая разделяет общие ресурсы и мультиплексирует неразделяемые ресурсы.

Параядро упрощает параллелизм на уровне приложения и дополняет дизайн поток на ядро .

Опытный образец параядро написано в Ржавчина и в настоящее время находится в стадии разработки.

Не увидел в статье названия операционной системы, но нашел другой материал от одного из авторов Операционная система Мантикоры и я делаю вывод, что Здесь репозиторий для этой разработки.



Что в остальном мире

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

Это означает, что многих не устраивает узкое место производительности в виде ядра операционной системы.

Интересные нововведения от Intel, подробнее о которых вы можете прочитать в Эта статья .

Позвольте мне привести отрывок из него:

  • Intel Volume Management Device (Intel VMD) — позволяет работать с накопителями NVM Express напрямую, «отдавая» устройство непосредственно в систему хранения.

    В результате стали возможными твердотельные накопители с возможностью горячей замены, индикация состояния и использование технологии Intel VROC.

  • Intel Virtual RAID на ЦП (Intel VROC).

    Позволяет создавать RAID из NVMe-накопителей с помощью процессора; с его помощью можно обойтись без программных решений или дополнительных адаптеров для создания массивов высокоскоростных PCIe SSD.

  • Глобальный протокол RDMA Интернета (iWARP).

    Расширение RDMA теперь поддерживается интегрированными сетевыми адаптерами Intel X722, поскольку процессор поддерживает четыре 10-гигабитных (или гигабитных) порта Ethernet. Напомню, что RDMA обращается к данным по сети напрямую из памяти, минуя ядро и операционную систему.

Всегда очень интересно узнавать о новых концепциях в уже устоявшихся системах.

Пожалуйста, напишите обо всех замеченных ошибках и необходимых дополнениях.

УПД : Эта статья обновляется сообществом.

Спасибо за помощь:

  • красный75прим ПОСИКС AIO
  • АрсМак исправил ошибку
  • Никобраз советы по обзору VROC и iWARP
Рекламная линия подкаста " Цинк прод ", в котором мы обсудим эту статью как тему.

Теги: #Rust #Системное программирование #новости #когнитивная

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.