1.1. Синхронізація.

В звичаяному розумінні, "синхронізація" означає виконання двох речей одночасно. В коп'ютерних системах, синхронізація дещо більш загальне; воно означає відношення між подіями - будь-якою кількістю подій, та будь-які види відношень (до, під час, після). Прогамісти часто думають над умовами синхронізації, що мають відношення до порядку подій. Наприклад:

Синхронізація: Подія А має статися до того, як станеться Подія Б.
Взаємне виключення: Події А та Б не можуть виконуватия одночасно.

В реальнному житті ми часто перевіряємо та забезпечуємо виконання синхронізаційних подій за допомогою годинника. Як ми знаємо що А сталося до Б ?

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