- •Тема 7. Розробка архітектури прогоамних систем
- •7.2. Розділи, топологія системи та асинхронізація
- •7.3. Розподіл підсистем за процесорами та задачами
- •Оцінка потрібних ресурсів
- •Заміна програм апаратурою
- •Розподіл підсистем за процесорами
- •7.4. Управління сховищами даних
- •7.5. Архітектури прикладних систем
- •7.7. Розробка об’єктів
- •7.7.1. Спільний розгляд трьох моделей
- •7.6. Архітектура системи управління банківською мережею
- •7.7.2. Алгоритм реалізації операції
- •7.7.3. Оптимізація розробки
- •7.7.4. Реалізація управління
- •7.8. Уточнення успадкування класів та розробка залежностей
7.2. Розділи, топологія системи та асинхронізація
Розділи поділяють систему на кілька незалежних чи мало пов’язаних одна з одною підсистем, кожна з яких забезпечує один з видів послуг. Наприклад, операційна система комп’ютера включає систему файлів, управління процесами, управління віртуальною пам’яттю та управління пристроями.
Звичайно система поділяється на підсистеми з використанням обох способів розбиття в усіляких різних комбінаціях: рівні поділяються на розділи, розділи містять у собі рівні. Приклад такої структури системи зображено на рис. 72.
Рис. 72. Типова структура системи
Коли всі підсистеми всіх рівнів названі, необхідно показати інформаційні потоки між підсистемами, побудувавши ДПД. Це дозволить зрозуміти топологію системи. Топологія системи визначається сукупністю потоків інформації у системі, наприклад, у компілятора конвеєрна топологія. Можна уявити собі топологію зірки (рис. 72) і т. ін.; потрібно прагнути, щоб топологія системи була якомога простішою.
В аналізованій моделі, як і в реальному світі та програмному забезпеченні, усі об’єкти незалежні і мають працювати асинхронно. Проте в реалізації не всі об’єкти мають працювати незалежно й асинхронно — кілька об’єктів можуть виконуватися на одному процесорі, якщо вони не можуть бути одночасно активними. Одна з найважливіших цілей розробки системи — з’ясувати, які об’єкти мають бути активними одночасно (паралельно), а які бувають активними лише в різний час. Ці останні об’єкти можуть бути пов’язані в одну послідовність управління (задачу).
Для визначення асинхронності (паралельного існування) об’єктів застосовується динамічна модель. Два об’єкти є істотно асинхронними, якщо в них можуть наставати події в один і той самий час, коли вони не взаємодіють. Якщо події не синхронізуються, такі об’єкти не можуть бути пов’язані в одну послідовність управління.
Рис. 73. Топологія зірки
Від асинхронних об’єктів потрібно відрізняти повністю незалежні об’єкти, які не лише працюють незалежно, але й не обмінюються даними у процесі своєї роботи. Повністю незалежні системи зручні тим, що їх можна розмістити на різних апаратних пристроях, уникнувши при цьому комунікаційних витрат.
Асинхронні об’єкти можуть виконуватися і на одному пристрої (процесорі), якщо він має систему переривань та підтримує режим розділення часу. Нерідко необхідність виконувати об’єкти на різних пристроях випливає з постановки задачі. Приклад, у задачі про банківську мережу заздалегідь зрозуміло, на яких пристроях мають працювати відповідаючі об’єкти.
7.3. Розподіл підсистем за процесорами та задачами
Кожний асинхронний (незалежний) об’єкт повинен бути приписаний до одного з пристроїв апаратури: універсального процесора чи спеціалізованого функціонального пристрою. Розробник системи має:
оцінити потрібну продуктивність та потрібні ресурси;
вибрати спосіб реалізації підсистем (апаратний чи програмний);
розподілити програмні підсистеми за процесорами, прагнути задовольнити їх вимоги щодо продуктивності і водночас скоротити міжпроцесорні комунікації.
Оцінка потрібних ресурсів
Рішення щодо застосування кількох процесів звичайно зумовлюється прагненням дістати вищу продуктивність, ніж її може забезпечити один процесор. Кількість потрібних процесів залежить від обсягу обчислень та продуктивності комп’ютера. Розробник системи може оцінити потрібну продуктивність процесорів (що становить постійне навантаження) як добуток кількості транзакцій за секунду на час виконання одної транзакції (у прикладі з банківською мережею транзакція — це проведення). Така оцінка не обчислює накладних витрат, пов’язаних із випадковими змінами навантаження та декотрими іншими факторами. Її належить уточнити.
