Последовательная последовательность в терминах новичка? - PullRequest
0 голосов
/ 02 февраля 2019

Последовательная согласованность

Результат любого выполнения такой же, как если бы операции всех процессоров выполнялись в некотором последовательном порядке, и операции каждого отдельного процессорапоявляются в этой последовательности в порядке, указанном его программой.

Я новичок в распределенной системе, что означает выполнение в этом контексте, и, пожалуйста, объясните это определение простым способом?

1 Ответ

0 голосов
/ 18 июня 2019

Программа, работающая в последовательно согласованной и распределенной среде, будет вести себя так, как будто все инструкции чередуются последовательным способом.Это означает, что несколько путей выполнения возможны и разрешены при условии, что порядок команд каждого потока выполнения сохраняется.

Пример:

Допустим, у нас есть программа сдва потока, которые выполняются в распределенной системе с двумя процессорами:

Поток 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»).

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...