Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МКС.(Касап)Лекції.doc
Скачиваний:
21
Добавлен:
05.11.2018
Размер:
1.4 Mб
Скачать

4.4 Імітаційна модель персонального компютера.

Визначимо цілі моделювання персонального комп'ютера (ПК). Припустимо, що метою моделювання є прогнозування впливів зміни продуктивності устаткуван­ня на середню пропускну здатність ПК і середній час виконання програм. Будемо розглядати ПК із загальною шиною, схему якого зображено на рис. 4.1.

З основних пристроїв комп'ютера виділимо ті, які повинні бути відображені в моделі, а саме: мікропроцесор (МП), оперативну пам'ять (ОП), монітор, накопичувач на жорстких магнітних дисках (НМД), накопичувач на гнучких магнітних дисках (НГД), принтер, клавіатуру та контролери цих пристроїв - контролер клавіатури (КК), контролер монітору (КМ), контролер НМД (КНМД), контро лер (КНГД), контролер принтера (КП).

Функціонування комп'ютера можна описати таким чином. Користувачі з кла­віатури вводять команди, що складаються з кількох інструкцій, які викликають про­грамні модулі. Кожну інструкцію будемо вважати одним кроком завдання. Про­грама та дані знаходяться на магнітних дисках і завантажуються в оперативну пам'ять за окремою командою. Роботу користувача з клавіатурою в моделі можна не враховувати, припускаючи, що набір команд з клавіатури відображається на екрані монітора. Для перенесення програми з магнітних дисків у пам'ять ком­п'ютера організується вхідний буфер. Якщо обсяг пам'яті достатній для виконан­ня першого кроку, то після завантаження програми в пам'ять і надання їй часу процесора вона може опрацьовуватися ним доти, доки не видасть запит до магніт­них дисків або принтера. У той час, коли здійснюється введення-виведення даних на зовнішні пристрої, процесор може виконувати інше завдання. Після виконан­ня операції введення-виведення даних завдання знову чекає в черзі, доки йому не буде надано час процесора. Якщо крок завдання закінчився, то звільняється па­м'ять і здійснюється виведення даних на принтер через вихідний буфер.

Вважається, що на жорсткому диску знаходяться програми операційної систе­ми і системні програми, а також бібліотеки користувача. Під час виконання про­грами вона може запитувати вхідні дані з гнучкого диска. Роботу операційної системи і системних програм до уваги не прийматимемо, припускаючи, що вони в однаковій мірі впливають на програми користувачів.

4.4.1. Концептуальна модель персонального комп'ютера

Всі пристрої, продуктивність яких впливає на час виконання завдання на комп'ю­тері, будемо розглядати як ресурси системи. Такі пристрої, як монітор, процесор, накопичувачі на магнітних дисках і принтер, не можна експлуатувати в режимі розподілу часу, тобто в конкретний час їх може використовувати тільки одне зав­дання. У пам'яті ж одночасно можуть знаходитись кілька завдань. Завдання може одночасно використовувати кілька ресурсів.

Враховуючи те, що швидкість роботи контролерів пристроїв уведення-виве-дення значно перевищує швидкість роботи самих пристроїв, будемо вважати, що швидкість роботи пристроїв визначається швидкістю роботи самих пристроїв, а не їх контролерів.

Тоді структурну схему концептуальної моделі комп'ютера можна відобразити так, як зображено на рис. 4.2. Зазначені на схемі лічильники необхідні для підра-хування кількості завдань, які надійшли до комп'ютера і залишили його.

Вхідні і вихідні буфери можна об'єднати відповідно з монітором і пристроєм для друку. Тоді в концептуальній моделі будуть явно задані такі ресурси: МП, ОП, НМД, НГД, МОНІТОР, ПРИНТЕР.

Рис. 5.7. Концептуальна модель комп'ютера

З огляду на мету моделювання визначимо, що на виході моделі необхідно отримати дані про середній час виконання завдань і пропускну здатність комп'ютера (кількість завдань, виконаних за певний час). Вхідні дані визначають закон розподілу надходження завдань у комп'ютер, число кроків у кожному завданні та ємність пам'яті, загальний час виконання кроку завдання процесором, частоту запитів до зовнішніх накопичувачів і пристроїв, розподіл обсягу виведеної на друк інформації, обсяг інформації, яка зчитується або записується на зовнішні накопичувачі, обсяг інформації, що вводиться. Ці дані

можна отримати за допомогою програм тестування реального комп'ютера. Крім цих даних необхідно задати па­раметри для пристроїв комп'ютера, такі як швидкодія процесора, ємність пам'яті, накопичувачів на магнітних дисках, вхідних і вихідних буферів, мінімальний та максимальний час пошуку даних на магнітних дисках, швидкість друку на прин­тері, швидкість уведення інформації з клавіатури.

4.4.2. Розроблення імітаційної моделі

Для розроблення моделі скористаємось подійним алгоритмом моделювання. Для кожної пари «завдання—ресурс» будемо визначати, як довго деяке завдання J ви­користовуватиме деякий ресурс R, тобто визначатимемо інтервал часу, коли зав­данню J буде призначено ресурс R і коли воно звільнить цей ресурс.

Однак перед тим, як ресурс R буде призначено завданню J, повинна надійти вимога на його використання. У загальному випадку завдання може чекати в чер­зі надання ресурсу.

Тоді під час створення імітаційної моделі комп'ютера можна користуватись такими двома способами.

  1. Створити та підтримувати протягом моделювання список подій у хронологіч­ному порядку.

  2. Створити підпрограми опрацювання подій кожного типу і викликати їх тоді, коли подія даного типу стає першою в списку подій. Всі підпрограми подій мо­жуть змінювати список подій, створюючи нові події та плануючи їхнє вико­нання в деякому майбутньому модельному часі.

Діаграму подій імітаційної моделі комп'ютера зображено на рис. 4.3.

Рис. 5.8. Діаграма подій імітаційної моделі комп'ютера

Тепер опишемо алгоритми роботи цих підпрограм.

Підпрограма Запит-призначення

Якщо ресурс R вільний і його можна негайно виділити завданню J, то він по­значається як зайнятий і планується настання наступної події для завдання J, У протилежному випадку запит від завдання J ставиться в чергу до ресурсу R.

Підпрограма Звільнення

Ресурс R позначається як вільний і планується наступна подія для завдання J. Якщо черга до ресурсу R не порожня, планується подія Запит-призначення черго­вого завдання К для ресурсу R і завдання вибирається з черги до ресурсу R. У протилежному випадку підпрограма не виконує ніяких дій.

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

Підпрограма Надходження

Готує характеристику (параметри) завданню J, тобто фіксує час надходження завдання до ПК. Визначає вимоги завдання до ресурсів. Планує наступну подію для/ і прибуття наступного завдання К.

Підпрограма Вихід

Підпрограма Вихід є набагато простішою за підпрограму Звільнення. Вона лише знищує характеристику завдання J.

Структурну схему програми імітаційної моделі комп'ютера наведено на рис. 4.4.

Програма ініціалізації готує структури даних, необхідні для моделювання, та задає їм початкові значення. Програма керування моделюванням вибирає (ви­кликає) наступну подію, яка після виконання підпрограми повертає керування ПКМ, а потім збільшує модельний час до наступної події. Обидва ці завдання виконуються шляхом перевірки запису в списку подій.

Кожний запис у цьому списку містить: тип події, яка використовується для виклику відповідної підпрограми події; ім'я або номер завдання, що передається як аргумент усім підпрограмам події; тип події, що буде викликатись за даною подією.

Якщо необхідно враховувати пріоритетне планування, алгоритм роботи підпро­грами обробки події процесора значно ускладнюється. Програми, які виконуються комп'ютером, можуть мати різний пріоритет, наприклад програми операційної системи і програми користувачів. Якщо поява більш пріоритетного завдання може перервати виконання процесором завдання з меншим пріоритетом, то необхідно дозволити процесору виконувати завдання з більшим пріоритетом, як тільки воно з'явиться в черзі. У цьому випадку подію звільнення процесора від завдання потріб­но вивести зі списку подій за допомогою програми Запит-призначення для проце­сора і процесор призначити завданню з більш високим пріоритетом. Ця ж підпро­грама повинна поставити перерване завдання в чергу до процесора для того, щоб надати їй його знову для доопрацювання перерваної програми. Надходження зав­дання з більшим пріоритетом може також перервати завдання, яке виконує про­цесор, тобто в цьому випадку може утворитись список перерваних завдань.

На діаграмі подій є події, після яких можливе одночасне настання двох подій. Ці події є взаємовиключними. Порядок звертання до тих або інших подій зале­жить від логіки та характеристик завдань, виконуваних користувачем.

Наприклад, після звільнення НМД для j-го завдання необхідно запланувати настання однієї з таких подій:

Запит-призначення НМД;

Запит-призначення МП;

Звільнення ОП;

Звільнення принтера.

Наприклад, Запит-призначення МП буде заплановано в тому випадку, якщо завдання J було тільки що завантажене в пам'ять або запит на НМД був задовільний, а обчислення для поточної команди завдання ще не завершене. Таким чином, ін­формація про послідовність виконання подій у програмі повинна утримуватись у самій моделі та безперервно опрацьовуватись у процесі моделювання.

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

4.4.3. Процесно-орієнтований алгоритм моделювання персонального комп'ютера.

Для того щоб урахувати взаємодію процесів у моделі, потрібно вести два списки подій: список майбутніх подій

(СМП) і список умовних подій (СУП) (рис. 4.5). Основна увага при розробці моделюючого алгоритму зосереджується на шляхах проходження завдання в моделі і взаємодіях процесів, що виконуються паралель­но. Підпрограма процесу описує «життєвий цикл» завдання в системі.

Рис. 5.10. Списки подій для моделі комп'ютера, орієнтованої на процеси

Якщо наступна подія для модельованого завдання повинна відбутись у дея­кий модельний час, то цю подію можна планувати безумовно, і для неї додається запис у СМП. Якщо це зробити неможливо, наприклад через взаємодію з іншими завданнями, які в даний момент займають необхідні ресурси, то запит подається в СУП. Після цього керування повертається до ПКМ, яка здійснює повернення в підпрограму процесу через точку входу, що є безпосередньо наступною за опе­ратором ЧЕКАТИ (умови) доти, доки завдання не буде вибране для обслуговування цим ресурсом. Таким чином, підпрограми процесів повинні мати ряд точок входу та виходу з процесів.

На рис. 4.6 зображено схему частини процесу для надання завдання МП для обчислювання. У цій схемі ПКМ, а не програма процесу, планує та призначає ресур­си. Схему можна модифікувати, щоб це завдання вирішувала програма процесу.

Дійсно, ресурси розглядаються як пасивні об'єкти, і ця схема не моделює в явно­му вигляді поведінку ресурсу.