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

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

— это механизм, позволяющий обеспечить целостность какого-либо ресурса (файл, данные в памяти), когда он используется несколькими процессами или потоками в случайном порядке. Для синхронизации процессов и потоков используются семафоры , мьютексы и критические секции . Альтернативой синхронизации может служить модель акторов или транзакционная память .

Синхронизация данных — ликвидация различий между двумя копиями данных. Предполагается, что ранее эти копии были одинаковы, а затем одна из них, либо обе были независимо изменены.

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

Тем не менее, есть ряд частных способов, применимых в тех или иных случаях:

  • Наиболее простой способ: предполагают, что изменения вносились лишь в одну из копий — «рабочую» — и другая копия просто перезаписывается её содержимым. Этот способ реализуют большинство приложений синхронизации; в силу необратимости делаемых изменений пользователю даётся выбор, какую копию считать «главной».
  • Если данные представляют собой набор независимых записей (то есть любое сочетание записей является корректным — это, напр., телефонная книга), то можно просто объединить множества записей . Это ликвидирует риск потери информации, но чтобы удалить запись из набора, этот способ приходится сочетать с первым.
    • Если наборы синхронизируются неоднократно, можно автоматически вводить в них дополнительную служебную информацию : дата и время последнего изменения записи, пометки об удалённых записях (стираются после следующей синхронизации или через достаточно большое время) и пр. . Этот подход используется, например, в Outlook .
  • Обрабатывать конфликты правок : автоматически (если возможно), иначе — вручную. Этот, наиболее общий способ применяется только если указанные выше упрощённые недопустимы — например, в системах контроля версий . Так, CVS при обнаружении двух независимых изменений объявляет о «конфликте» и либо (в простых случаях) разрешает его автоматически, либо предоставляет пользователю разрешить его вручную. В этих случаях конфликтов стараются просто избегать — например, распределением областей компетенции.

Одним из механизмов синхронизации данных является репликация , которая в частности находит применение для синхронизации содержимого баз данных.

Синхронизация передачи данных — процесс, при котором приёмник синхронизируется с передатчиком в процессе передачи цифровых данных.

Примечания

  1. (англ.) (15 мая 2013). Дата обращения: 19 февраля 2017. 24 января 2017 года.

Литература

  • . (англ.)
  • Шляхтина С. // . — 2005. — № 7 .
Источник —

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