Page 60 - 4657
P. 60
ЛЕКЦІЯ 5.
ПРОЦЕСИ І СИНХРОНІЗАЦІЯ
Рівнобіжне програмування, зв'язане з використанням
легковагих процесів, чи підпроцесів (multithreading, light-weight
processes) - концептуальна парадигма, у якій розділяється
програма на два чи кілька процесів, що можуть виповнюватися
одночасно.
У багатьох середовищах рівне виконання завдань
представлене в тому виді, що в операційних системах,
називається полізадачністю. Це зовсім не те ж саме, що рівне
виконання підпроцесів. У полізадачних операційних системах
ви маєте справу з повновагими процесами, у системах з рівним
виконанням підпроцесів окремі завдання називаються
легковагими процесами (light-weight processes, threads).
Цикл обробки подій у випадку єдиного
підпроцесу
У системах без рівнобіжних підпроцесів використовується
підхід, називаний циклом обробки подій. У цій моделі єдиний
підпроцес виконує нескінченний цикл, перевіряючи й
обробляючи виникаючі події. Синхронізація між різними
частинами програми відбувається в єдиному циклі обробки
подій. Такі середовища називають синхронними керованими
подіями системами. Apple Macintosh, Microsoft Windows,
X11/Motif - усі ці середовища побудовані на моделі з циклом
обробки подій.
Якщо ви можете розділити свою задачу на незалежно
виконуються підпроцеси і можете автоматично переключатися з
одного підпроцеса, що чекає настання події, на інший, котрому є
чим зайнятися, за той же проміжок часу ви виконаєте більше
роботи. Імовірність того, що більше чим одному з підпроцесів
одночасно надовго буде потрібно процесор, мала.
Модель легковагих процесів у Java
58