Планування в системах реального часу

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

При виявленні зовнішнього події планування повинен так спланувати роботу процесів, щоб були дотримані всі крайні терміни.

Події, на які повинна реагувати система реального часу, можуть бути далі категоровани як періодичні (що відбуваються регулярно) або аперіодичні (відбуваються непередбачено). Можливо, системі прийдеться реагувати на кілька періодичних потокових подій. У залежності від часу, необхідного на обробку кожної події, з обробкою всіх подій система може навіть не впоратися.

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

______________________________________________________________________________________________

Планування потоків

Коли є декілька процесів і у кожного є декілька потоків, у нас є два рівні паралелізму: процеси і потоки. Планування в таких системах істотно залежить від того, на якому рівні підтримуються потоки: на користувальницькому, на рівні ядра або на обох рівнях.

Спочатку розглянемо потоки на рівні користувача. Оскільки ядро ​​про існування потоків не знає, воно працює в звичайному режимі, вибираючи процес, наприклад, А, і передає процесу А управління до закінчення його кванта часу. Планувальника потоків всередині процесу Л вирішує, який потік запустити, скажімо, А1. Через відсутність таймерних переривань для багатозадачних потоків цей потік може продовжувати роботу скільки йому знадобиться. Якщо він цілком витратить весь квант часу, відведений процесу, ядро ​​вибере для запуску інший процес.

Коли процес А буде нарешті знову запущений, потік А1 також відновить свою роботу. Він продовжить витрачати весь відведений процесу А час, поки не закінчить свою роботу. Але його недружелюбне поведінку ніяк не відіб'ється на інших процесах. Вони отримають те, що планувальник порахує їх часток, незалежно від того, що відбувається всередині процесу Л.

Тепер розглянемо випадок, коли потоки процесу А виконують щодо частки виділеного процесорного часу роботу, наприклад роботу з тривалістю в 5 мс при кванті часу в 50 мс. Отже, кожен з них запускається на невеликий період часу, повертаючи потім центральний процесор планувальнику потоків. При цьому, перед тим як ядро ​​відключиться на процес В, може вийти наступна послідовність: А1, А2, АЗ, А1, А2, АЗ, А1, А2, АЗ, А1. Ця ситуація показана на рис. 2.23, а.

 

 

 

Розділ 3. Управління пам’ятю

Лекція 13