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)де
- Н елементів матриці MB, MA.Співвідношення (4.1) визначає дії у кожному процесорі системи під час виконання обчислень.
Спільним ресурсом у рівнянні (4.1) є MC.