Есть ли способ выровнять периоды двух процессов с помощью SCHED_DEADLINE в Linux?Linux

Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ выровнять периоды двух процессов с помощью SCHED_DEADLINE в Linux?

Сообщение Anonymous »

У меня есть процесс, который должен взаимодействовать с оборудованием в очень строго контролируемые периоды. У меня есть второй процесс, который может запуститься в любое время и должен взаимодействовать с первым процессом, не влияя на время первого процесса. Я использую SCHED_DEADLINE для управления периодом обоих процессов. Есть ли способ заставить второй процесс согласовать свой период с первым процессом?
Я знаю, что могу синхронизировать связь с помощью семафоров. Я говорю не об этом.
Рассмотрим сценарий:
  • часть жесткого диска требует связи каждые 1 мс. (+- 10000 нс).
  • Процесс 1 выполняется с периодом 1 мс в рамках SCHED_DEADLINE.
  • Процесс 2 запускается и также выполняется с периодом. составляет 1 мс при SCHED_DEADLINE, но смещается от процесса 1 на 0,5 мс.
  • Процесс 1 просыпается, но должен подождать 0,5 мс, чтобы процесс 2 был готов к обмену данными.
Поэтому на первом временном шаге два процесса пытаются связаться, время контакта с оборудованием сбрасывается на 0,5 мс. ЕСЛИ периоды двух процессов были синхронизированы, этой проблемы не возникло бы.
Для интересующихся: оборудование в этом случае основано на EtherCAT и использует распределенные часы (DC). Джиттер в 1 временной шаг приведет к десинхронизации постоянного тока, заставляя его повторно синхронизироваться. Время повторной синхронизации составляет около 7 секунд. Я действительно хочу избежать этого штрафа по времени, поскольку человек будет взаимодействовать с системой, а обычные задержки в 7 секунд неприемлемы.
Я пробовал использовать семафоры, чтобы настроить планировщик задач на второй процесс. в специально синхронизированное время с первым процессом. Это не позволило синхронизировать периоды задач достаточно близко.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ine-on-lin
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»