Полная версия

Главная arrow Информатика arrow Архитектура ЭВМ и систем

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ   >>

19.5. Совместно используемая память на прикладном уровне

В мульти компьютерах отсутствует общее адресное пространство, т.е. они не имеют совместно используемой памяти на архитектурном уровне, что и привело к появлению таких систем с передачей сообщений, как PVM и MPI. Создание иллюзии совместно используемой памяти позволяет упростить программирование и снизить стоимость аппаратных средств.

Рассмотрим способы введения совместно используемой памяти в модель программирования при ее отсутствии на уровне аппаратного обеспечения.

Распределенная совместно используемая память

К системам с распределенной совместно используемой памятью (Distributed Shared Memory – DSM) на прикладном уровне относятся системы со страничной организацией памяти. Особенности таких систем рассмотрим на примере системы, в которой общее виртуальное адресное пространство, состоящее из 16 страниц, совместно используется четырьмя процессорами (рис. 19.7,а).

При обращении процессора к странице своего ОЗУ чтение/запись данных происходит без задержки. Обращение процессора к странице ОЗУ любого другого процессора протекает в следующем порядке:

  • • фиксируется ошибка отсутствия страницы в собственной памяти, и выполнение следующей команды приостанавливается;
  • • посылается запрос тому процессору, в ОЗУ которого находится требуемая страница;
  • • требуемая страница пересылается в ОЗУ запрашивающего процессора (в исходном ОЗУ она не сохраняется);
  • • после получения страницы инициируется выполнение приостановленной команды.

Эти действия проиллюстрированы на рис. 19.7 для случая, когда процессор 0 обращается к процессору 1 с запросом на страницу 12. Пунктиром показано, как страница 12 пересылается из ОЗУ процессора 1 в ОЗУ процессора 0.

Общее виртуальное адресное пространство (16 страниц), совместно используемое четырьмя процессорами

Рис. 19.7. Общее виртуальное адресное пространство (16 страниц), совместно используемое четырьмя процессорами

Для повышения производительности принимается ряд мер, например:

• допускается присутствие в нескольких ОЗУ одновременно страниц, предназначенных только для чтения. В случае ошибки из-за отсутствия страницы в ОЗУ запрашивающего процессора посылается копия этой страницы, но оригинал остается на месте. Но даже в этом случае трудно достичь высокой производительности, особенно когда один процесс записывает несколько слов вверху какой-либо страницы, а другой процесс в другом процессоре в это же время записывает несколько слов внизу той же страницы. Поскольку существует только одна копия этой страницы, последняя постоянно должна передаваться туда и обратно. Эта ситуация называется ложным совместным использованием. Для ее разрешения:

■ можно отказаться от согласованности по последовательности в пользу свободной согласованности (см. § 18.1);

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

• каждой записываемой странице вначале присваивается атрибут "только для чтения". При первой записи в страницу создается копия страницы (двойник). Далее странице присваивается атрибут "для чтения и записи" и последующие записи выполняются на полной скорости. Если позже произойдет ошибка из-за отсутствия страницы, нужно определить, где находится отсутствующая страница. Затем туда доставляется страница-двойник. Между текущей страницей и двойником производится пословное сравнение. Пересылаются только те слова, которые были изменены, что сокращает размер сообщений.

 
<<   СОДЕРЖАНИЕ   >>