
Процессорная согласованность – более проигрышная модель, но
зато ее легче реализовать на больших мультипроцессорах. Она имеет два
свойства:
• Все процессоры воспринимают записи любого процессора в том
порядке, в котором они начинаются;
• Все процессоры видят записи в слово памяти в том порядке, в котором
они происходят.
В первом пункте говорится, что если процессор 1 начинает запись
значений 1А, 1В, 1С в какое-то место в памяти именно в таком порядке, то
все другие процессоры видят эти записи в таком же порядке. Второй пункт
нужен, чтобы каждое слово в памяти имело определенное недвусмысленное
значение после того, как процессор совершил несколько записей в это слово,
а затем остановился. Все должны воспринимать последнее значение.
При таких ограничениях возможна ситуация, что процессор 2 начнет
записи 2А, 2В, 2С одновременно с записями процессора 1. Другие
процессоры, считывающие слова из памяти увидят последовательность из
шести записей, например 1А, 2А, 1В, 2В, 1С, 2С или 1А, 1В, 1С, 2А, 2В, 2С и
т.п. При процессорной согласованности не гарантируется, что каждый
процессор видит одну и ту же последовательность. Единственное, что
гарантируется совершенно точно, что никто не увидит последовательность
1В, 1А, …
Слабая согласованность
При использовании модели слабой согласованности записи,
произведенные одним процессором, воспринимаются по порядку. Один
процесс может увидеть 1А, 1В, а другой 1В, 1А. Чтобы внести порядок в этот
хаос, в памяти содержатся элементы синхронизации или операции
синхронизации. Когда выполняется синхронизация, все незаконченные
записи завершаются, а новые не могут начаться пока не будут завершены все
начатые и не будет проведена синхронизация. Синхронизация приводит
память в стабильное состояние, когда не остается никаких незавершенных
операций. Сами операции синхронизации согласованы по
последовательности, т.е. все процессоры воспринимают один и тот же
порядок.
При слабой согласованности время разделяется на
последовательные периоды, разграниченные моментами синхронизации.
Внутри периодов в последовательность может быть видна различными
процессора по-разному, но в момент синхронизации происходит
«выравнивание». Т.о. программное обеспечение вносит порядок в
последовательность событий, хотя это и занимает некоторое время.
Свободная согласованность
155