- •Конспект лекцій
- •Лекція 1. Загальна характеристика спеціалізованих комп’ютерних систем (скс)
- •Проблеми розробки математичного та програмного забезпечення скс
- •Особливості архітектури скс
- •Основні функції ос
- •Контрольні запитання
- •Випадкові процеси з дискретним і безперервним часом. Марківський ланцюг
- •3, Лекція 3 .Математична модель для оцінки часу виконання програми
- •Контрольні запитання
- •Рекомендована література
- •Контрольні запитання
- •4.Лекція 4 Потоки подій
- •Потік подій. Найпростіший потік і його властивості.
- •Пуассоновські потоки подій і безперервні Марковські ланцюги.
- •Граничні ймовірності станів.
- •Контрольні запитання
- •Граф процесу загибелі та розмноження у загальному вигляді. Граничні ймовірності станів моделі.
- •Контрольні запитання
- •Рекомендована література
- •6Лекція 6.. Теорія масового обслуговування. Завдання теорії
- •Умовні позначення видів моделей масового обслуговування.
- •Контрольні запитання
- •Багатоканальна смо з відмовами.
- •Контрольні запитання
- •Багатоканальна смо з очікуванням
- •Контрольні запитання
- •Рекомендована література
- •9. Лекція 9. Багатоканальна смо з очікуванням та нетерплячими заявками
- •Змістовна постановка задачі
- •Вирішення задачі
- •Контрольні запитання
- •Основні характеристики смо.
- •Багатоканальні замкнуті смо
- •Контрольні запитання
- •Рекомендована література
- •11 Лекція11.
- •Смо з відмовами.
- •Одноканальна смо з очікуванням.
- •Задача про простій верстатів.
- •Контрольні запитання
- •2. Характеристики вихідних потоків інформації
- •3. Диспетчерські програми операційної системи
- •Використання динамічних пріоритетів
- •Контрольні запитання
- •Висновки
- •14. Лекція 14. Вкладені ланцюги Маркова
- •Метод вкладених ланцюгів Маркова
- •Задача простою верстатів
- •Контрольні запитання
- •Контрольні запитання
- •2. Приклад вирішення задачі методом динаміки середніх
- •Контрольні запитання
- •Рекомендована література
- •17. Лекція 17.
- •Рекомендована література.
Особливості архітектури скс
Які ж основні особливості СКС, у тому числі й керуючих машин:
Рішення завдань у реальному масштабі часу (хоча й не обов'язково).
Велика розмаїтість функцій при їхній відносній незмінності протягом усього періоду експлуатації.
Необхідність обміну інформацією із зовнішнім абонентом у процесі рішення завдань.
Більша тривалість роботи в безперервному режимі.
Високі вимоги по надійності й програмній стійкості до збоїв і відмов апаратури.
У якості СКС можуть застосовуватися обчислювальні машини, які умовно можна розділити на 2 підкласи:
ЕОМ, які по своїх основних характеристиках є універсальними й можуть відрізнятися від них тільки спеціалізованими пристроями уведення-виводу, у тому числі й для рішення завдань у реальному масштабі часу.
Другий підклас спеціалізується повністю на рішенні завдань певного класу. Вони розробляються одночасно із проектуванням спеціалізованої системи, мають структуру, систему команд і організацію, спеціалізовану й оптимальну для даного конкретного застосування.
У загальному випадку в однопроцесорному варіанті структурну схему СКС можна представити так:

Найбільш характерними способами обміну даними із зовнішніми абонентами є:
Програмний обмін без переривання обчислень.
Обмін з використанням підпрограм, що вклинюються.
Позапрограмний обмін даними.
Програмний обмін без переривання обчислень, використовується в тому випадку, коли зовнішній абонент має досить великий, тривалий час очікування.
Обмін з перериваннями обчислень застосовується звичайно для прийому й видачі інформації зовнішнім пристроям з малим часом очікування. Різновидом цього способу є обмін із припиненням роботи ЕОМ, коли роботи лічильника команд припиняється на кілька тактів, на протязі яких схемним шляхом виконуються операції уведення-виводу з оперативною пам'яттю (канал прямого доступу).
Останній спосіб у ряді випадків має ряд переваг, оскільки не вимагає запам'ятовування й відновлення регістрів процесора.
Позапрограмний обмін може здійснюватися в тих випадках, коли зовнішні пристрої мають безпосередній доступ до оперативної пам'яті. У цьому випадку (двопортового ОЗУ) повинна бути передбачена пріоритетна схема, що блокує одночасний обіг. Це досить ефективний спосіб, тому що також не пов'язаний із запам'ятовуванням і відновленням регістрів, однак має місце зниження ефективної швидкодії пам'яті через наявність двох абонентів.
Для виконання переривань в апаратурі СКС повинні бути передбачені один або кілька регістрів запитів, на які надходять сигнали про необхідність переривання від різних джерел.
У процесі роботи схемним шляхом ведеться безперервний пошук сигналів на цих регістрах, у порядку пріоритету для окремих видів сигналу.
Виконання переривання полягає в запам'ятовуванні лічильника команд і ряду регістрів процесу, зчитування регістрів запитів на переривання й формування адреси переходів до відповідної програми, що вклинюється, тобто програми обробки переривання. Ці операції можуть виконуватися як програмним, так і схемним шляхом.
Вивчаючи ОС, ми докладно зупинялися на механізмах обробки переривань.
По закінченні роботи програм, що вклинюються, стан регістрів і лічильника команд відновлюється й робота триває.
Ми бачимо, що може використовуватися й ієрархічна схема, що забезпечує у свою чергу переривання програм, що вклинюються, відповідно до їх пріоритетів.
Функціональну схему системи переривання програм можна представити як на наступному малюнку:

Послідовність включення програм при перериванні можна представити так:

До речі розглянуту схему послідовності включення програм при перериванні можна використовувати й у випадку програмного обміну без переривань. При цьому основна програма не переривається, а щораз після чергового завершення керування передається програмі переривання на предмет аналізу наявності дозволених переривань.
Для ряду СКС таких як криптоанализ, розпізнавання образів, прогноз погоди, системи ПВО й т.д. визначальної є швидкодія процесора системи. Висока підсумкова продуктивність часто досягається використанням архітектур паралельної обробки.
При цьому процесори можуть з'єднуватися один з одним, створюючи різні архітектури.
Паралельні архітектури звичайно класифікуються згідно Флінна:
Множинний потік команд- одиночний потік даних (МКОД)

Типовим прикладом такої машини є конвеєрна. Вона заснована на поділі всього алгоритму на електронні завдання, які можуть виконуватися послідовно. Такі машини складаються як би з елементарних процесів, виділених для кожного завдання й працюючих паралельно. Дані вводяться в конвеєр по кроках обробки. На кожному кроці одна операція виконується над кожним елементом даних, у той час як різні кроки по обробці даних виконуються послідовно.
Як тільки конвеєр заповнений, після кожного циклу видається новий результат незалежно від числа кроків у цьому ланцюжку.
Швидкість таких машин визначається швидкістю самого повільного процесора й тому істотним є поділ алгоритму на елементарні завдання.
Перевагою конвеєра є регулярні зв'язки між елементами конвеєра й простота програмування, але такі машини погано працюють, якщо алгоритми обробки істотно залежать від даних.
Швидкість конвеєра значно знижується через необхідність призупинення конвеєра в силу різних причин. Із цими причинами й методами їхнього усунення ми будемо знайомитися в наступному семестрі.
Приклад проблемного конвеєра може бути описаний у такий спосіб:
260нс 260нс

команда i команда i+1
У випадку конвеєра процесор буде працювати в такий спосіб:
Команда i IF ID EX MEM WB
Команда i+1 IF ID EX MEM WB
Команда i+2 IF ID EX MEM WB
Команда i+3 IF ID EX MEM WB
Що ми бачимо. Час виконання кожної конкретної команди на конвеєрі не зменшується. Крім того, неминучі накладні витрати на конвеєризацію. Частота синхронізації (робота конвеєра) не може бути більше чим час, необхідний для роботи найбільш повільного щабля конвеєра.
Нехай накладні витрати становлять 5нс. Тоді:
|_65_||_65_||_65_||_65_||_65_||_________
Команда i |_60_||_60_||_60_||_60_||_60_||_________
Команда i+1 ||_60_||_60_||_60_||_60_||_60_||_____
Команда i+2 ||_60_||_60_||_60_||_60_||_60_||
Середній час виконання команди в не конвеєрній машині буде - 260нсек, а в конвеєрній - 65 нсек.
Ясно, що конвеєризація ефективна лише тоді, коли швидкість подачі нових команд і операндів - максимальна. Якщо відбудеться затримка, паралельно буде виконуватися менше операцій і сумарна продуктивність упаде.
Тому, наприклад, векторні операції забезпечують ідеальну можливість повного завантаження обчислювального конвеєра.
Одиночний потік команд - множинний потік даних (ОКМД) або SIMD (Single Instruction Multiple Data).

Кілька процесорів виконують ту саму команду над різними потоками даних. Машини типу ОКМД складаються з великого числа ідентичних процесорних елементів, що мають власну пам'ять. Всі процесорні елементи виконують ту саму програму. Така машина може забезпечити високу продуктивність тільки для тих завдань, при рішенні яких всі процесори можуть робити ту саму роботу.
Модель обчислень для машини ОКМД схожа на модель обчислень для векторного процесора. Наприклад, цикли на елементах масиву, у яких значення,що виробляються на одній ітерації циклу, не використовуються на іншій ітерації циклу.
Синонімом для ОКМД машин є - матричний процесор.
Часто ОКМД є однобітовими арифметичними пристроями й дані мають довжину в 1 біт.
Множинний потік команд - множинний потік даних (МКМД) або MIMD (Multiple Instruction Multiple Data).
Незалежні процесори виконують різні програми й процесори взаємодіють один з одним. Процесори завжди мають локальну пам'ять, а також мають доступ або до загальної розподіленої пам'яті або до пам'яті всіх інших процесорів. Схема зв'язку може бути або фіксованої, або такою,що перемикається.
На базі таких машин можна створювати дуже гнучкі архітектури, хоча і є труднощі із програмуванням.
У загальному виді структурна схема МКМД може бути представлена як:

Часто машини типу МКМД називають терміном «мультипроцесор». У зв'язку з різноманітними способами зв'язку між процесорами є більше докладна класифікація цього класу машин.
У мультипроцесорах із загальною пам'яттю ( або сильно зв'язаних мультипроцесорах )є пам'ять даних і команд, доступна всім процесорним елементам.
Із загальною пам'яттю процесорні елементи (ПЕ) зв'язуються за допомогою загальної шини або мережі обміну. На противагу цьому варіанту в т.ч. «слабозв’язаних» мікропроцесорних системах (машини з локальною пам'яттю) вся пам'ять ділиться між ПЕ й кожний блок доступний тільки пов'язаному з ним процесору. Мережа обміну зв'язує ПЕ між собою.
Базовою моделлю обчислень на MIMD- мультипроцесорі є сукупність незалежних процесів, що епізодично звертаються до розподілених даних. Існує велика кількість варіантів цієї моделі.
Одним з «крайніх» варіантів - модель розподілених обчислень, у яких програма ділиться на досить велике число паралельних завдань, що складаються з множинаі підпрограм. Іншим «крайнім» варіантом є модель потокових обчислень, у яких кожна операція в програмі може розглядатися як окремий процес. Така операція чекає своїх вхідних даних (операндів), які повинні їй передати інші процеси. Результати передаються іншим процесорам, які їх потребують і т.д.
Багатопроцесорні машини з SIMD процесорами.
Більшість сучасних супер -ЭВМ являють собою багатопроцесорні системи, у яких як процесори використовуються векторні процесори або процесори типу SIMD. Такі процесори відносять до класу МSIMD.
Мови програмування й відповідних компіляторів звичайно забезпечують язикові конструкції, які дозволяють програмістові описувати т.зв. «грубозернистий» паралелізм. У межах кожного завдання компілятор автоматично векторизує підходящі цикли. Машини цього класу з однієї сторони використовують векторні операції для тих частин програми, які підходять для цього й гнучкі можливості МIMD- архітектури для інших частин програми.
Багатопроцессорні системи за роки розвитку перетерпіли ряд етапів свого розвитку. Історично першою стала освоюватися технологія SIMD. Однак, у нинішній час намітився стійкий інтерес до архітектур МIMD . Цей інтерес визначається двома факторами:
1. Архітектура МIMD дає більшу гнучкість: при наявності адекватної підтримки з боку апаратних засобів і програмного забезпечення МIMD може працювати як однокористувальницька система, що забезпечує високопродуктивну обробку даних для одного прикладного завдання, а також як багатопрограмна машина, що виконує множина завдань паралельно і як деяка комбінація цих можливостей.
Архітектура МIMD може використовувати всі переваги сучасної мікропроцесорної технології на основі строгого обліку співвідношення вартість/продуктивність. Зараз практично всі сучасні багатопроцесорні системи будуються на тих же мікропроцесорах, які використовуються в персональних комп'ютерах, робочих станціях і невеликих однопроцесорних серверах.
Для нас особливо цікаво те, що досить важливою для багатопроцесорної системи є мережа обміну. Моделі обміну дуже важливі для багатопроцесорної системи, тому що багато характеристик продуктивності й інших оцінок виражаються відношенням часу обробки до часу обміну, які конкретно відповідають розв'язуваним завданням.
Часто, і при тому необґрунтовано, у машинах із загальною пам'яттю й векторними машинами витрати на обмін не враховують, тому що проблеми обміну сховані від програміста. Однак, накладні витрати на обмін є й визначаються конфліктами шин, пам'яті й процесів.
У мережах з комунікацією каналів і в мережах з комунікацією пакетів у міру зростання вимог до обміну, варто враховувати можливості перевантаження мережі. Тут міжпроцесорний обмін зв'язує мережні ресурси: канали, процесори, буфери повідомлень. Обсяг переданої інформації може бути скорочений за рахунок ретельної функціональної декомпозиції завдань і ретельної диспетчирізації виконуваних функцій.
І так часткові висновки:
Особливості функціональних завдань СКС відомі до початку проектування СКС.
Функціональні завдання СКС рідко змінюються в процесі експлуатації.
Апаратні рішення, організація математичного й програмного забезпечення СКС, взаємно доповнюють один одного й повинні бути орієнтовані на особливості функціональних задач.
Розробка програмного забезпечення й СКС у цілому може розглядатися як завдання оптимального проектування обчислювальної системи й може бути сформульована в термінах математичного програмування.
Для одержання необхідних кількісних співвідношень попередньо необхідно розглянути моделі функціонування СКС і її програмного забезпечення.
Функціональна модель ОС, що працює в реальному масштабі часу
Основним призначенням ОС (у т. числі й працюючої в реальному масштабі часу) є виділення ресурсів і створення графіка їхнього використання для виконання програм, які можуть вимагати одночасного обслуговування.
На малюнку наведений перелік деяких з основних типів допоміжних засобів уведення в ОС реального часу.
A
А - годинники реального часу й датчик циклів, що приводять у дію циклічну програму.
Наприклад, один раз в 10 мсек або один раз у секунду;
В - лічильники реального часу;
С - цифрові лічильники з індикацією їхнього заповнення;
D - сигнали тривоги, що подаються при певних значеннях змінних стану й інші ознаки порушення нормальної роботи, що вказують на необхідність діагностичних або коригуючих дій;
Е - сигнали втручання з пульта керування;
F - сигнали від пристроїв уведення-виводу про те, що пристрій вільний, зайнятий або тільки що виконав останнє завдання;
G - сигнали від інших ЕОМ про те, що ЕОМ вільна, зайнята передачею даних або виконанням завдання;
Н - сигнали про операції, не прив'язаних до реального часу (пошук і усунення помилок, діагностика обладнання й т.п.).
Всі засоби уведення можна розділити на 4 типи:
приводяться в дію від часу: А и В;
приводяться в дію від процесу: C і D;
приводяться в дію оператором: Е;
приводяться в дію ЕОМ або програмою: F,G і Н.
Вихідні дані ОС
Можна представити як:

А - призначення часу пуску для кожної виконуваної програми.
Існує спрощене диспетчерське правило: починати кожний цикл із циклічних програм, тобто програм,що виконуються у кожному циклі. По закінченні цих програм ОС установлює послідовність намічених до виконання програм відповідно до їх пріоритетів. Таким чином, призначення часу пуску програм виробляється непрямим шляхом, як результат установлення послідовності їхнього виконання.
В - графік використання масивів пам'яті і розподілу масивів, необхідних для виконання кожної програми. Може виникнути необхідність звільнити певні масиви оперативної пам'яті для програм, що очікують виконання, переводячи цю інформацію в довгострокову пам'ять. Іноді, навпаки ввести в ОП частину чергових програм з довгострокової пам'яті.
С - графік використання й розподілу пристроїв уведення-виводу для кожної, наміченої до виконання програми.
На малюнку наведений типовий графік розподілу часів пуску програм. На ньому А1, . . . Аj – циклічні програми, що входять у кожний цикл, а В1, . . . ВN – нециклічні. Поява нециклічних програм носить нерегулярний характер і вони звичайно пускають у хід систему переривання програм залежно від ступеня їхнього пріоритету.

Нижче на малюнку показана в загальному виді система для машинного керування процесами.

