Найбільш безпосереднім недоліком запуску процесу в режимі реального часу є те, що цей процес може легко голодувати за всі інші процеси в системі. Результатом з вашої точки зору буде те, що комп'ютер абсолютно не реагує на клавіатуру, мишу та, ймовірно, мережу, настільки, доки в режимі реального часу використовується процесор. Це може статися, якщо щось піде не так, і процес переходить у нескінченний цикл, або навіть тимчасово, якщо процес починає тривалий розрахунок, не чекаючи періодично введення. (Так, наприклад, не запускайте SETI @ home з пріоритетом у режимі реального часу.)
Одинокий однопотоковий процес у багатоядерному процесорі рідше спричинить цю проблему, оскільки є й інші ядра, які можуть використовувати нижчий пріоритет. Але якщо цей процес створює будь-які дочірні процеси, вони будуть успадковувати той же пріоритет у реальному часі, тож все може вийти з-під контролю, якщо ви не будете уважні.
Сторінка sched_setscheduler(2)
чоловіка має хороші поради:
Оскільки неблокуючий нескінченний цикл у процесі, запланованому за SCHED_FIFO або SCHED_RR, назавжди блокуватиме всі процеси з нижчим пріоритетом, розробник програмного забезпечення повинен завжди тримати доступну на консолі оболонку, заплановану за вищим статичним пріоритетом, ніж тестована програма. Це дозволить екстрено знищити перевірені додатки в режимі реального часу, які не блокують і не припиняють, як очікувалося. Див. Також опис обмеження ресурсів RLIMIT_RTTIME в getrlimit (2).
Це має бути оболонка на консолі - не під Xterm, якщо ви не хочете також надати всім пріоритетам X в реальному часі.