Рівночасні обчислення
Рівночасні[1] обчислення, або конкурентні обчислення (англ. Concurrent computing) — це форма обчислень, у якій кілька обчислень виконуються поперемінно, на часових відрізках, що перетинаються (у кожну мить виконується лише одне з таких обчислень, але чергове обчислення може починатися до того, як буде завершено інші). ОзначенняПоняття «рівночасних обчислень» часто плутають з подібним, але дещо відмінним поняттям «рівнобіжних обчислень»[2][3], хоча обидва описуються як «рівнобіжні процеси, що виконуються протягом спільних часових відрізків». У рівнобіжних обчисленнях декілька обчислень існують і відбуваються одночасно в кожну мить фізичного часу (такт процесора), наприклад на різних процесорах багатопроцесорної машини. Їхньою метою є зменшення часу виконання обчислень. У рівночасних обчисленнях декілька обчислень існують одночасно (як процеси або нитки), але в кожну мить фізичного часу відбувається лише одне обчислення[a]. Рівнобіжні обчислення неможливі на одному одноядерному процесорі, оскільки в таких системах у кожну мить часу може відбуватися лише одне обчислення. Як наслідок, аспекти синхронізації рівнобіжних обчислень визначаються особливостями апаратної платформи, а рівночасних — програмної.
Механізми синхронізаціїПоширеними, але не єдиними механізмами синхронізації рівночасних обчислень є сигнали, семафори та черги повідомлень. Типові задачіМетою застосування рівночасних обчислень є моделювання процесів справжнього світу, які відбуваються рівночасно, наприклад таких, як одночасний доступ кількох клієнтів до сервера. Побудова програмних систем, що складаються з багатьох комунікуючих частин, що працюють рівночасно, може бути корисною для зменшення складности таких систем незалежно від того, чи можуть виконуватися їхні частини рівнобіжно[4] . Типовою задачею рівночасних обчислень є реалізація механізмів планування процесів у багатозадачних системах. ІнструментиІнструменти, які дають змогу здійснювати рівночасні обчислення, можуть входити до складу окремих мов програмування (з властивостями рівнобіжности), або надаватися через бібліотеки, або бути реалізовані на системному рівні. Мови, що підтримують рівночасні обчисленняБібліотеки, що підтримують рівночасні обчисленняВиноски
Примітки
|