Page 23 - 6571
P. 23
Один з підходів полягає в тому, що сучасні комп’ютерні сис-
теми не є монолітними, а мають багаторівневу структуру. Це дає
можливість реалізувати загальну пам’ять на будь-якому з рівнів.
Згідно даного підходу спільна пам’ять має апаратну реалізацію,
як в «справжньому» мультипроцесорі. Існує одна копія операцій-
ної системи з одним набором таблиць, зокрема таблицею розпо-
ділу пам’яті. Якщо процесору необхідно більше пам’яті, то він
перериває роботу операційної системи, яка після цього виконує
пошук в таблиці вільної сторінки і відображає цю сторінку на ад-
ресний простір відповідного процесора.
Інший підхід полягає у використанні апаратного забезпечен-
ня мультикомп’ютера та операційної системи, що здатна моде-
лювати спільну пам’ять, надаючи єдиний віртуальний адресний
простір, розбитий на сторінки. При такому підході будемо мати
розподілену спільну пам’ять (Distributed Shared Memory, DSM), в
якій кожна сторінка розташована в одному із модулів пам’яті, а
кожна машина володіє своєю власною віртуальною пам’яттю і
власною таблицею сторінок. Якщо процесор викликає команду
LOAD або STORE, звертаючись до сторінки, якої у нього немає, то
генерується системна помилка. Після цього операційна система
знаходить потрібну сторінку і звертається до відповідного проце-
сора, щоб той вивантажив її із пам’яті та передав через внутріш-
ню комунікаційну мережу іншому процесору. Коли сторінка пот-
рапляє до процесора-одержувача, то вона відображається на
пам’ять, і виконання перерваної команди поновлюється. У дано-
му випадку, операційна система одержує відсутні сторінки не з
диска, а з пам’яті. При цьому у користувача складається вражен-
ня, що машина має єдину спільну пам’ять.
Ще один підхід полягає у програмній реалізації спільної
пам’яті через систему користувача реального часу. При такому
підході абстракцію спільної пам’яті створює мова програмуван-
ня, і ця абстракція реалізується компілятором (тобто модель спі-
льної пам’яті може залежати від мови програмування). Напри-
клад, модель Linda заснована на абстракції спільного простору
кортежів (записів даних, що містять набори полів). Процеси будь-
якої машини можуть взяти кортеж із спільного простору або від-
правити його у спільний простір. Оскільки доступ до цього прос-
тору повністю контролюється програмно (системою реального
22