Рівночасність (інформатика)
Рівночасність[1], або конкурентність (англ. concurrency від лат. concurro — забіг) — в інформатиці називається властивість систем, коли декілька процесів обчислення відбуваються водночас, і, можливо, взаємодіють один з одним.[2]
Часто термін «рівночасність» перекладають як «паралелізм» (англ. parallelism), проте не варто плутати ці два терміни, адже вони мають певні відмінності. Паралелізм стосується одночасності виконання різних процесів на, наприклад, кількох процесорах, де такі процеси спрямовані на зменшення часу виконання. Рівночасність же стосується процесів, що існують одночасно, але в кожну мить виконується лише один процес.
Вивчення багатозадачних систем включає широке коло різноманітних систем, починаючи із щільно зв'язаних, переважно синхронних паралельних систем, до слабо зв'язаних, сильно асинхронних розподілених систем.[3] Багатозадачні процеси можуть виконуватись водночас, як у разі роботи на різних процесорах, або кроки їхнього виконання можуть чергуватися для створення ефекту одночасності, як це робиться в багатозадачних системах. Оскільки процеси в рівночасних системах можуть взаємодіяти один з одним під час роботи, кількість можливих шляхів виконання програми в системі є дуже великою, а отримана поведінка може бути дуже складною. Складнощі, пов'язані з дослідженням багатозадачності були спрощені як через створення мов та концепцій роботи багатозадачних систем досить простою для розуміння, так і через розробки теорій для міркувань про процеси, що взаємодіють.[2]
- Рівночасні обчислення
- Багатозадачність
- Клієнт-серверна архітектура
- Шаблони багатозадачних систем
- Розподілені обчислення
- Процес (інформатика)
- Потік (інформатика)
- Взаємне блокування
- ↑ Англійсько-українсько-англійський словник наукової мови (Фізика та споріднені науки) у двох частинах
- ↑ а б Roscoe, A. W. (1997). The Theory and Practice of Concurrency. Prentice Hall. ISBN 0-13-674409-5.
- ↑ Cleaveland, Rance; Scott Smolka (December, 1996). Strategic Directions in Concurrency Research. ACM Computing Surveys. 28 (4).
- Lynch, Nancy A. (1996). Distributed Algorithms. Morgan Kauffman. ISBN 1558603484.
- Tanenbaum, Andrew S.; Van Steen, Maarten (2002). Distributed Systems: Principles and Paradigms. Prentice Hall. ISBN 0-13-088893-1.
- Kurki-Suoni, Reino (2005). A Practical Theory of Reactive Systems. Springer. ISBN 3-540-23342-3.
- Garg, Vijay K. (2002). Elements of Distributed Computing. Wiley-IEEE Press. ISBN 0-471-03600-5.