end Ada.Synchronous_Task_Control;
Ідея монітора, яку запропонував Б. Хансен і розвинув С. Хо ґрунтується на об'єднанні змінних, що описують спільний ресуpc, і дій, які визначають засоби доступу до спільного ресурсу. Монітор - програмний модуль, що містить змінні та процедури роботи над ними, причому доступ до змінних можливий тільки
в процедурі.
Монітор - засіб розподілу ресурсів і взаємодії процесів Це назначення монітора реалізується за допомогою властивостей, якими наділені процедури монітора. Характерна особливість процедур монітора - взаємне виключення ними одне одного. У будь-який момент часу може виконуватися тільки одна процедура монітора. Якщо будь-який процес викликав і виконуй процедуру монітора. то жоден процес не може виконувати будь-які процедури цього монітора. За спроби виклику іншим процесом процедури, що виконується, або іншої процедури монітора цей процес блокується і розміщується в черзі блокованих процесів доти, доки активний процес не закінчить виконання процедури монітора. Тобто в моніторі не може "знаходитись" більше одного процесу. Така властивість процедур монітора забезпечує взаємне виключення процесів. які працюють з монітором.
Загальна структура монітора:
monitor ім'я Монітора;
-- Опис локальних даних
-- Опис процедур для доступу до даних begin
-- Ініціалізація локальних даних end ім'я Монітора;
У моніторі декларуються локальні змінні (спільні змінні), які захищені монітором, і процедури монітора. Значення локальних змінних можуть бути встановлені під час створення монітора. Далі значення цих змінних можуть бути прочитані або змінені процесами тільки за допомогою процедур, визначених у моніторі.
Концепцію моніторів у новому стандарті мови Ада95 реалізовано у вигляді спеціальних програмних модулів - захищених модулів (protected units). їх призначення - розширення можливості мови для програмування паралельних процесів. зокрема, для вирішення проблеми доступу до спільних ресурсів і синхронізації процесів. Крім того, захищені модулі забезпечують підтримку різних парадигм систем реального часу, для розроблення яких мову Ада використовують в першу чергу.
Спільні дані і операції над ними (захищені операції) об'єднуються в захищеному модулі, аналої ічно тому, як це робиться в інших модулях мови Ада- пакетах. Доступ до спільних ресурсів можливий тільки через захищені операції, які мають властивості, що дозволяють вирішити завдання взаємного виключення під час роботи зі спільними ресурсами.
Як і всі модулі в мові, захищені модулі складаються зі специфікації і тіла.
PROTECTED [TYPE] імя _Захшценого_Модуля
[Дискримінант] IS
Опис_Захищених_Операцій
[PRIVATE]
Опис_Захищених_Елемєнтів
END імя_Захищєного_Модуля;
Захищені операції - це:
• захищені функції.
• захищені процедури,
• захищені входи.
Захищені функції забезпечують доступ тільки до читання захищених і елементів. Але дозволяють робити це одночасно всім процесам автоматичним копіюванням елементів, які зчитуються.
| 67 |
Це порушує головну властивість процедур монітора, яка дозволяє знаходитися в моніторі тільки одному процесу, але це ''порушення" дозволяє скоротити час доступу до захищених елементів і не має будь-яких наслідків, оскільки зміна даних заборонена і не виконується.
Захищені процедури забезпечують ексклюзивний доступ до захищених елементів через читання і запис.
Захищені входи забезпечують ті самі функції, що й захищені процедури, додатково реалізуючі за допомогою бар 'єрів ексклюзивний (умовний) доступ до тіла захищеного входу. Це Дозволяє реалізувати за допомогою входів вирішення завдання синхронізації.
\
Табл 3.1 Структура комп’ютерної системи.
| Процесор: | AMD PHENOM II X4 945(3.00GHz,AM3) | 1213.00 Грн. |
| Материнська плата: | AMD 780V | 559 грн. |
| Оперативна пам'ять: | DDR II 4GB PC6400 KINGSTONE(HYNIX) | 1 115,80 грн. |
| Жорсткий диск: | 500GB SATA II 16MB(WD,SEAGATE) | 470.82 грн. |
| Відеокарта: | onboard VGA(DVI) up to 512MB | |
| CD: | DVD-RW | 184 грн. |
| Звук: | 6-Channel HD Audio | |
| Корпус | ATX 400W FSP(CHIEFTEC) 4U 701 | 624,1 |
| 4166,72 |
AMD PHENOM II X4 945(3.00GHz,AM3)
| Лінійка | Phenom II X4 |
| Сокет | AM3 |
| Тактова частота | 3000 Мгц |
| Частота шини | HT |
| Коефіцієнт множення | 15 |
| Напруга на ядрі | 0.875 B |
| Інструкції | MMX, SSE, SSE2, SSE3, SSE4, 3DNow! |
| Підтримка AMD64/EM64T | є |
| Підтримка NX Bit | є |
| Підтримка Virtualization Technology | є |
| Ядро | Deneb |
| Кількість ядер | 4 |
| Техпроцесс | 45 нм |
| Об'єм кеша L1 | 128 Кб |
| Об'єм кеша L2 | 2048 |
| Об'єм кеша L3 | 6144 |
| Типове тепловиділення | 125 Вт |
| Максимальна робоча температура | 62 °C |
| Додаткова інформація | напруга на ядрі 0.875-1.5В |
Табл 3.2 Характеристика процесора.
3.3 Системна плата ASUS| M3A78-CM| 6xSATA
| Socket | AM2+ |
| Кількість сокетів для процесора | 1 |
| Системна шина | HyperTransport |
| Підтримка багатоядерних процесорів | Є |
| Підтримувані процесори | AMD PhenomFX/Phenom/Athlon64 FX/Athlon64 X2/Athlon64/Sempron |
| Пам'ять | DDR2 DIMM, 533 - 1066 Мгц |
| Кількість слотів пам'яті | 4 |
| Максимальний об'єм пам'яті | 8 Гб |
| Підтримка двоканального режиму | є |
| Слоти розширення | 1xPCI-E 16x, 1xPCI-E 1x, 2xPCI |
| Підтримка PCI Express 2.0 | є |
| Ethernet | 1000 Мбіт/с |
| S-ATA | кількість слотів: 6, S-ATA II, RAID: 0, 1, 10 |
| IDE | кількість слотів: 1, ULTRADMA 133 |
| Звук | 7.1CH, HDA |
| Вбудований відеоадаптер | Є |
| Роз'єм живлення процесора | 4-pin |
| Наявність інтерфейсів | 12xUSB 2.0, вихід S/PDIF, 1xCOM, LPT, D-Sub, DVI, Ethernet, PS/2 (клавіатура) |
| Роз'єми на задній панелі | 6xUSB 2.0, D-Sub, DVI, Ethernet, PS/2 (клавіатура) |
| Основний роз'єм живлення | 24-pin |
| Форм-фактор | mATX |
| Чіпсет | AMD 780V |
| Підтримка SLI/CrossFire | Hybrid CrossFireX |
| BIOS | AMI з можливістю аварійного відновлення |
Табл 3.2 Характеристика системної плати.
Hynix DDR2-800 4096MB PC6400 (HMP351U6AFR8C-S6)
| Об'єм пам'яті | 4 ГБ |
| Тип пам'яті | DDR2 SDRAM |
| Частота пам'яті | 800 Мгц |
| Ефективна пропускна спроможність | 6400 Mб/с |
| Схема таймінгів пам'яті | CL6 |
Табл 3.3 Характеристика оперативної памяті.
Вінчестер SATA 500 GB WD WD5000AAKS 16MB 7200rpmА
| Ємкість | 500 Гб |
| Час включення | 11 сек |
| Тип підшипників | Гідродинамічний (FDB). |
| Інтерфейс | SATA-II (Сумісно з SATA-I або SATA150 контроллерами) |
| Буфер | 16 Мб |
| Швидкість обертання шпинделя | 7200 оборотов/хв. |
| Середній час доступу | 8.9 мс (читання), 10.9 мс (запис) |
| Час переходу з доріжки на доріжку | 2 мс |
| Швидкість обміну між носієм і контроллером | до 972 Мбіт/сек |
| Рівень шуму | 28 дБ (А) в режимі чекання, 33 дБ (А) - Seek Mode, 29 дБ (А) - Seek Mode 3 |
| Максимальні перевантаження | 65G тривалістю 2 мс при роботі; 300G тривалістю 2 мс у вимкненому стані |
| Пропускна спроможність інтерфейсу | 300 Мб/сек |
| Живлення | Від SATA коннектора живлення. |
| Вжиток енергії | 8.77 Вт (чтение/запись), 8.4 Вт (у режимі чекання) |
Табл 3.4 Характеристика вінчестера.
Корпус ATX 400W FSP(CHIEFTEC) 4U 701
| 5.25" | 4 шт |
| 3.5" зовнішні (для FDD,CardReader) | 1шт |
| 3.5" внутрішні (для HDD) | 5шт |
| Додатково | |
| USB 2.0 виходів - | 2шт |
| Audio роз`єм(мікрофон, навушники) | 2шт |
| Блок живлення | ATX 450 Вт кулер 120мм (SATA) |
| Розміри: | |
| высота*глубина*ширина (мм) | 430*480*200 |
Табл 3.5 Характеристика корпусу
Реалізація множення матриці на матрицю у чотирьох процесорній системі із спільною пам’яттю (рис. 4.1) з використання захищеного модуля мови Ада.
Вхідні дані:
комп’ютерна система зі спільною пам’яттю, яка включає чотири процесори і два пристрої введення-виведення (рис. 2.1);
математичне завдання: реалізації множення матриці на матрицю і вектора на матрицю
де MА, МB, МC – вектори розмірності N.
введення вектора MВ виконується в процесорі Т2, введення матриці МС виконується в процесорі Т1, виведення результату – матриці МА – у процесі Т1.
Етап 1. Побудова паралельного алгоритму. Паралельний алгоритм можна подати у вигляді
де
Співвідношення (4.1) визначає дії у кожному процесорі системи під час виконання обчислень.
Спільним ресурсом у рівнянні (4.1) є MC.