Синхронізація (інформатика)

Синхронізація (від др.-греч. σύγχρονος - Одночасний) у інформатики позначає одне з двох: синхронізацію процесів, або синхронізацію даних.

Синхронізація процесів - приведення двох або декількох процесів до такого їх протіканню, коли певні стадії різних процесів відбуваються в певному порядку, або одночасно.

Синхронізація необхідна в будь-яких випадках, коли паралельно протікають процесам необхідно взаємодіяти. Для її організації використовуються кошти між процесами взаємодії. Серед найбільш часто використовуваних засобів - сигнали і повідомлення, семафори і мьютекс, канали ( англ. pipe ), Спільно використовувана пам'ять.

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

Спосіб синхронізації даних залежить від зроблених додаткових припущень. Головною проблемою тут є те, що незалежно зроблені зміни можуть бути несумісні один з одним (так званий "конфлікт правок"), і навіть теоретично не існує загального способу вирішення подібних ситуацій.

Тим не менш, є ряд приватних способів, застосовних в тих чи інших випадках:

  • Найбільш простий спосіб: припускають, що зміни вносилися лише в одну з копій - "робочу" - і інша копія просто перезаписується її вмістом. Цей спосіб реалізують більшість додатків синхронізації; чинності незворотності зроблених змін користувачеві дається вибір, яку копію вважати "головною".
  • Якщо дані представляють собою набір незалежних записів (тобто будь-яке поєднання записів є коректним - це, напр., Телефонна книга), то можна просто об'єднати безлічі записів. Це ліквідує ризик втрати інформації, але щоб видалити запис з набору, цей спосіб доводиться поєднувати з першим.
    • Якщо набори синхронізуються неодноразово, можна автоматично вводити в них додаткову службову інформацію: дата і час останньої зміни запису, помітки про віддалених записах (стираються після наступної синхронізації або через достатньо великий час) і ін. Цей підхід використовується, наприклад, в Outlook.
  • Обробляти конфлікти правок: автоматично (якщо можливо), інакше - вручну. Цей, найбільш загальний спосіб застосовується тільки якщо зазначені вище спрощені неприпустимі - наприклад, в системах контролю версій. Так, CVS при виявленні двох незалежних змін оголошує про "конфлікт" і або (у простих випадках) дозволяє його автоматично, або надає користувачеві дозволити його вручну. У цих випадках конфліктів намагаються просто уникати - наприклад, розподілом областей компетенції.

Одним з механізмів синхронізації даних є реплікація, яка зокрема знаходить застосування для синхронізації вмісту баз даних.


Література