Достижение последовательной непротиворечивости

Если модифицируемые страницы не реплицируются, то проблемы достижения непротиворечивости не возникает. Существует только один экземпляр каждой модифицируемой страницы, и он динамически перемещается в разные места по мере необходимости.
Поскольку не всегда можно заранее узнать, какие страницы являются модифицируемыми, на многих системах DSM, когда процесс пытается прочитать удаленную страницу, делается ее локальная копия и обе копии, локальная и удаленная, помечаются соответствующими блоками управления памятью (MMU), предназначенными только для чтения. Пока все обращения осуществляются только для чтения, проблем не возникает.

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

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

Можно также допустить наличие нескольких копий модифицируемых страниц при строго ограниченных обстоятельствах. Один из способов состоит в том, чтобы позволить процессу получить блокировку части виртуального адресного пространства, а затем осуществить несколько операций чтения и записи в заблокированной памяти. Ко времени освобождения блокировки изменения должны быть распространены на другие копии. Пока в определенный момент времени заблокировать страницу может только один центральный процессор, эта схема защищает непротиворечивость данных.

Альтернативный вариант предусматривает, что при первой же записи потенциально модифицируемой страницы создается ее оригинальная копия, которая сохраняется в памяти центрального процессора, осуществляющего запись. Затем могут произойти получение блокировки страницы, обновление страницы и освобождение блокировки. Позже, когда процесс на удаленной машине пытается получить блокировку страницы, центральный процессор, который ранее делал в нее запись, сравнивает текущее состояние страницы с оригинальной копией и создает сообщение, в котором перечисляются все измененные слова. Затем этот список отправляется запросившему блокировку центральному процессору, чтобы он обновил свою копию вместо ее аннулирования (Keleher et al., 1994).

8.2.6.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Достижение последовательной непротиворечивости:

  1. Правило непротиворечивости.
  2. Правило непротиворечивости.
  3. Последовательность и непоследовательность
  4. Последовательность и непоследовательность
  5. ОБРАЗ ПОСЛЕДОВАТЕЛЬНЫЙ
  6. 4.4.2. Последовательная спецификация
  7. ДЕТАЛЬНАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ ЦЕЛИТЕЛЬСТВА
  8. Логическая последовательность вопросов
  9. ИНФОРМАЦИЯ: ОБРАБОТКА ПОСЛЕДОВАТЕЛЬНАЯ (
  10. Бобер (четкость и последовательность)