logo
AOM / Мельник А

12.7.1. Типи комп'ютерних систем із спільною пам'яттю

При проектуванні багатопроцесорних систем ключовим є питання поділу даних між процесорами. Ідеальною відповіддю на це питання є застосування єдиного адресного

440

простору. Тут процесори взаємодіють через спільні змінні, що зберігаються в єдиній пам'яті з єдиним адресним простором для усіх процесорів. У системі із спільною пам'ят­тю процесори взаємодіють між собою шляхом зчитування-запису інформації з комірок спільної пам'яті, яка є однаково доступною для всіх процесорів. Кожен процесор може мати регістри, буфери, кеш та локальну пам'ять, як додаткові ресурси пам'яті. Потрібно брати до уваги кілька основних проблем, які з'являються при проектуванні систем із спільною пам'яттю. Це:

Контроль доступу визначає, для якого процесу можливий доступ до яких ресурсів. Моделі контролю доступу вимагають перевірки вмісту таблиці контролю доступу для кожного запиту доступу від процесорів до спільної пам'яті. Ця таблиця вміщує прапор­ці, які визначають законність кожної спроби доступу. Якщо є спроба доступу до ресур­сів, то поки бажаний доступ не завершений, всі спроби доступу нехтуються, і нелегальні процеси блокуються. Запити від сумісних процесів можуть змінити вміст таблиці контро­лю доступу протягом їх виконання. Прапорці контролю доступу з правилами синхроні­зації визначають функціональність системи.

Механізми синхронізації обмежують час доступу від сумісних процесів до спільних ресурсів. Досконала синхронізація гарантує, що інформація передається належним чи­ном та забезпечується належна системна функціональність.

Захист - це системна особливість, що перешкоджає наданню процесам довільного доступу до ресурсів, що належать іншим процесам. Сумісне використання і захист є протилежними за функціями, оскільки сумісне використання дозволяє доступ, тоді як захист обмежує його.

Найпростіша система із спільною пам'яттю має один модуль пам'яті, який може бути доступний від двох процесорів (рис. 12.18). Запити надходять в модуль пам'яті через його два порти. Арбітражний блок у межах модуля пам'яті передає запити до диспетчера пам'яті. Якщо модуль пам'яті не зайнятий і надходить один запит, то арбітражний блок передає цей запит до диспетчера пам'яті і запит обслуговується. Модуль знаходиться в зайнятому стані під час обслуговування запиту. Якщо надходить новий запит, коли пам'ять зайнята, обслуговуючи попередній запит, процесор Р, що послав запит, може утримувати свій запит на лінії, поки пам'ять не стає вільною, або може повторювати свій запит пізніше.

441

Залежно від типу комунікаційної мережі, системи із спільною пам'яттю можна кла­сифікувати наступним чином: