Программа, работающая в последовательно согласованной и распределенной среде, будет вести себя так, как будто все инструкции чередуются последовательным способом.Это означает, что несколько путей выполнения возможны и разрешены при условии, что порядок команд каждого потока выполнения сохраняется.
Пример:
Допустим, у нас есть программа сдва потока, которые выполняются в распределенной системе с двумя процессорами:
Поток 1: выведите «Hello \ n»;print "world \ n"
Тема 2: печать "Hi! \ n"
Предположение: на этом языке "print" является потокобезопасной и не буферизуется.
Последовательныйправило согласования: «Hello» всегда будет напечатано перед «world»;.
Возможное выполнение 1:
Processor 1 | Processor 2
|
Hello |
World |
| Hi!
|
Возможное выполнение 2
Processor 1 | Processor 2
|
Hello |
|Hi!
world |
Возможное выполнение 3
Processor 1 | Processor 2
|
|Hi!
Hello |
world |
Невозможное выполнение (печать)world "before" Hello "нарушает последовательную согласованность)
Processor 1 | Processor 2
|
|Hi!
world |
Hello |
Теперь пересмотрим ваше определение:
Результат любого выполнения такой же, как если бы операции всех процессоровбыли выполнены в некотором последовательном порядке, и операции каждого отдельного процессора появляются в этой последовательности в порядке, указанном его программой.
И переписываем его в приведенном выше примере:
Враспределенная среда, которая является последовательной последовательной, результат любого выполнения (см. возможные 3 выполнения в приведенном выше примере) = выполнение команд процессора 1 и процессора 2 в некотором последовательном порядке, сохраняя при этом порядок команд, указанный в программе(«Hello» должен быть напечатан перед «world»).
т.е. результаты выполнения такие же, как если быструктуры, выполненные в разных процессорах, чередовались и выполнялись в одном одноядерном процессоре.Таким образом, последовательная согласованность обеспечивает предсказуемость для распределенной системы и устанавливает некоторые важные гарантии, когда требуется доступ к памяти.
Надеюсь, это поможет!