Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Моделювання ЕОМ

РефератДопомога в написанніДізнатися вартістьмоєї роботи

У машинний зал з інтервалом 100 emb надходить одна з користувачів. На початку приходить перший, й починає підготовку свого завдання цього йому знадобиться 160 emb. Через 100 emb приходить другий користувач і також починає підготовку завдання цього йому відведено 170 emb. Невдовзі опісля приходу 2-го користувача (через 60 emb) закінчує підготовку завдання перший користувач і виконує його за ЕОМ… Читати ще >

Моделювання ЕОМ (реферат, курсова, диплом, контрольна)

Державного комітету Російської Федерації за найвищим образованию.

Казанський Державний Технічний Університет імені О. Н. Туполева.

—————————————————————————————————————— —————————————;

Кафедра Электронно — обчислювальних машин.

Пояснювальна записка до курсової роботу з дисципліни «Моделирование».

Виконав: студент групи 4301 Базуев Ю.А.

Керівник: доцент кафедри ЕОМ Захаров В.М.

Оценка:5(отл.).

Казань 1996.

1.Задание… …3.

2. Формалізація концептуальної модели…4.

2.1. Побудова формальної схеми функціонування системы…4.

2.2. Визначення параметрів і змінних модели…5.

2.3. Визначення одиниці модельного времени…6.

2.4. Визначення закону функціонування системы…6.

3. Алгоритмизация моделі і його машинна реализация…7.

3.1. Вибір програмних засобів моделирования…7.

3.2. Опис моделюючою программы…7.

3.3. Перевірка достовірності программы…8.

3.4. Моделювання випадкових воздействий…9.

3.4.1. Моделювання випадкових впливів, мають рівномірний распределение…9.

3.4.1.1. Апаратний способ…9.

3.4.1.2. Програмний способ…12.

3.4.1.3. Вибір генератора РРПСЧ…13.

3.4.2. Моделювання випадкових впливів, мають нерівномірне распределение…14.

3.5. Опис моделюючою програми для стохастической модели… …18.

4. Набуття та інтерпретація результатів моделирования…19.

5. Література … …20.

2. Формалізація концептуальної модели.

2.1. Побудова формальної схеми функціонування системы.

Побудуємо формальну схему (Q-схему) заданої обчислювальної системы.

И1.

О.

И2.

К.

И3.

Рис. 1 Q — схема обчислювальної системы.

Здесь:

До — ЭВМ.

Про — Очередь.

И1 — З — Мережні машины.

2.2.Определение параметрів і змінних модели.

tp — інтервал між парафіями користувачів tgz1 — час підготовки завдання 1-ым користувачем tgz2 — час підготовки завдання 2-ым користувачем tgz3 — час підготовки завдання 3-им користувачем tm — час виконання завдання на ЕОМ k — кількість промоделированных на ЕОМ завдань nz — наявність заявки на вході системи: nz=0 — немає заявок.

___ nz=i — наявність заявки на i-ой мережевий машині (i=1−3) pz1 — підготовка завдання мережевий машині 1 pz1=1 — готуємося завдання на мережевий машині 1 pz1=0 — мережна машина 1 не зайнята pz2 — підготовка завдання мережевий машині 2 pz2=1 — готуємося завдання на мережевий машині 2 pz2=0 — мережна машина 2 не зайнята pz3 — підготовка завдання мережевий машині 3 pz3=1 — готуємося завдання на мережевий машині 3 pz3=0 — мережна машина 3 не зайнята znw — наявність заявки виконання завдання znw=0 — заявки відсутні ___ znw=i — наявність заявки від мережевий машини і (i=1−3) wz — виконання завдання на ЕОМ wz=0 — ЕОМ вільна wz=i — ЕОМ виконує заявку і ocher[50] - черга у черги зберігаються номери мережевих машин із яким получены.

заявки n — індекс вільного елемента у черги w2 — кількість вип. завдань від 2-го пользователя.

У першому етапі імітаційного моделювання створимо детерміновану модель заданої обчислювальної системи, замінюючи стохастические потоки їх математичними ожиданиями:

— інтервал між парафіями користувачів 10 мин.

— можливість приходу кожного з користувачів 0.33.

— час підготовки завдання 1-ым користувачем 16 мин.

— час підготовки завдання 2-ым користувачем 17 мин.

— час підготовки завдання 3-им користувачем 18 мин.

— час виконання завдання на ЕОМ 0.8 мин.

2.3. Визначення одиниці модельного времени.

За одиницю модельного часу (emb) приймається мінімальний інтервал реального часу, протягом якого система має не змінює свого майна. У даної завданню за emb доцільно прийняти час однакову 0.1 мин.

2.4. Визначення закону функціонування системы.

Роботу даної обчислювальної системи відіб'ємо тимчасовими диаграммами.

пользователь.

emb.

И1.

И2.

И3.

ЭВМ.

Рис 2. Тимчасові діаграми роботи системы.

У машинний зал з інтервалом 100 emb надходить одна з користувачів. На початку приходить перший, й починає підготовку свого завдання цього йому знадобиться 160 emb. Через 100 emb приходить другий користувач і також починає підготовку завдання цього йому відведено 170 emb. Невдовзі опісля приходу 2-го користувача (через 60 emb) закінчує підготовку завдання перший користувач і виконує його за ЕОМ протягом 8 emb. Через 100 emb після приходу другого користувача приходить третій користувач, у своїй другий продовжує підготовку. Через 70 emb після приходу третього користувача закінчує підготовку другий РАЕС і виконує свою завдання на ЕОМ за 8 emb. Третій користувач закінчує підготовку через 180 emb після свого приходу, тим часом знову приходить перший користувач у цьому закінчується перший цикл роботи системи і всі повторюється снова.

Отже кожний цикл з періодом Т=300 emb виконується три завдання від кожної користувача. Усі вони виконуються відразу після підготовки й не затримують одне одного, т. до. ЕОМ на момент надходження цих заявок вільна. Постійно роботи чергу залишається порожній. Протягом часу циклу виконується одне завдання від 2-го користувача, отже відсоток завдань, які надійшли від другого користувача дорівнює 33,3%.

Ми повинні змоделювати виконання 500 завдань, отже загальне час системи одно (500/3)*300=50.000 emb. Упродовж цього терміну ЕОМ пропрацювала 500*8=4000 emb, отже завантаження ЕОМ дорівнює 8%.

3. Алгоритмизация моделі і його машинна реализация.

3.1. Вибір програмних засобів моделирования.

Для написання програми ми вибираємо мову програмування Borland З++. Її добре зарекомендувало себе ефективністю, лаконічністю, стрункістю програм. В багатьох випадках програми, написані мові З++ можна порівняти за швидкістю з тими програмами, написаними мові Ассемблера, при цьому більш наочні і прості у супроводі. У системне оточення мови З++ входить багато бібліотек, зокрема бібліотеки потрібних нам стандартних функций.

Програма для детермінованою моделі приведено в Додатку № 1.

3.2. Опис моделюючою програми для детермінованого варіанта модели.

Параметри і які змінюються даної програми описані у пункті 2.2.

Позаяк у обраному мові програмування не можна створити паралельні процеси, ми застосуємо принцип псевдораспараллеливания.

У конкурсній програмі організуємо чергу ocher[50] в осередках якої ми запам’ятовуємо адресу заявки (номер мережевий машини). Також вводимо ряд допоміжних змінних (ztgz1, ztgz2, ztgz3, ztm, zk) необхідні зберігання значень вихідних параметрів системы.

Ця моделююча програма працює так: Спочатку програма затребувана значення параметрів системи. Далі організується основний цикл, виконуваному k раз. Першим дією в циклі є оператор поповнення одиниці машинного часу t=t+emb. Після перевіряємо не прийшов чи користувач, якщо прийшов то визначаємо який (конструкція switch (cikl)). Далі у програмі йде конструкція switch (nz) що встановлює відповідні прапорці підготовки завдання. Після йде група умов виконує зменшення часу підготовки завдання. Якщо завдання підготовлено то подається запит виконання. У цьому вся блоці програми визначається не порожня чи чергу, а то й порожня то виконуємо завдання з черги інакше виконуємо заявку з мережевий машини. Перед виконанням заявки перевіряємо зайнята чи ЕОМ, якщо зайнята то ставимо заявку в чергу. Далі якби ЕОМ выполняемся завдання то зменшуємо час виконання це завдання. Після цього цикл повторюється. Після закінчення циклу виробляємо підрахунок відсотка завдань, які надійшли від другого пользователя.

3.3. Перевірка достовірності программы.

Змоделюємо роботу системи з параметрами зазначеними в задании.

Протокол роботи программы:

Введите інтервал між парафіями користувачів 100 Запровадьте час підготовки завдання 1-ым користувачем 160 Запровадьте час підготовки завдання 2-ым користувачем 170 Запровадьте час підготовки завдання 3-ым користувачем 180 Запровадьте час виконання завдання на ЕОМ 8 Запровадьте кількість промоделированных на ЕОМ завдань 500.

Процент вип. завдань, поступ. від 2-го користей.= 33%.

Вывод:

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

Визначимо оптимальну структуру обчислювальної системи: оптимальна структура обчислювальної системи забезпечує мінімальне час простою устаткування характеризується наступних параметрах: інтервал між парафіями користувачів 2 час підготовки завдання 1-ым користувачем 1 час підготовки завдання 2-ым користувачем 1 час підготовки завдання 3-ым користувачем 1 час виконання завдання на ЕОМ 1.

3.4. Моделювання випадкових воздействий.

3.4.1. Моделювання випадкових впливів мають рівномірний распределение.

3.4.1.1. Апаратний способ.

При апаратній способі випадкові чи псевдослучайные числа виробляються спеціальної електронної приставкою — генератором, який є зовнішнім пристроєм ЕОМ або входить до складу процесора. Найбільшого поширення набула практично знайшли генератори псевдослучайных чисел (ГПСЧ), побудовані з урахуванням регістру зсуву у реалізації деякою логічного функції у подальшому ланцюгу зворотний зв’язок (ОС) (у разі це акумулятор по модулю два).

Оскільки проведення натуральних дослідів з на різні схеми ГПСЧ занадто багато роботи, ми використовуватимемо програмне засіб що дозволяє будувати і досліджувати різні ГПСЧ на програмних моделях. Для цього підходять автоматизовану систему підготовки й обробки статистичної інформації (АСПОСИ), що дає комплекс програмних коштів, дозволяють будувати математичні моделі різних ГПСЧ і досліджувати їх характеристики.

Для отримання ПСЧ користуватимемося програмою gener.

Працюючи в діалоговому режимі з ПВР ми визначаємо структуру генератора, т. е. деяку вихідну інформацію: розрядність регістру зсуву ГПСЧ, вид ОС, кількість і номери підключених в ланцюг ОС розрядів регістру, кількість генерируемых чисел і др.

Отримані числа записуються в файл і аналізуються (будується гистограмма) з допомогою програми analize.

Для генерації чисел ми вибрали 3 різні структури ГПСЧ:

1) Файл vihod1.dat.

Розрядність: 50.

Зворотний зв’язок: 30.

Кількість чисел: 1000.

Розрядність числа: 25.

Кількість зрушень: 2.

2) Файл vihod2.dat.

Розрядність: 50.

Зворотний зв’язок: 30.

Кількість чисел: 1000.

Розрядність числа: 25.

Кількість зрушень: 3.

3) Файл vihod3.dat.

Розрядність: 70.

Зворотний зв’язок: 35.

Кількість чисел: 1000.

Розрядність числа: 25.

Кількість зрушень: 6.

Перевіримо якість чисел в файлах програмою analize.

Побудуємо гистограммы:

vihod1.dat.

vihod2.dat.

vihod3.dat.

Перевірка відповідності чисел в послідовностях необхідному розподілу дає такі результати: теоретичні і статистичні дані переважають у всіх 3-х файлах за критеріями Колмогорова і Х2 не согласуются.

Визначення числових характеристик.

|№ |Характеристика |vihod1.dat |vihod2.dat |vihod3.dat | | 1|наименьшее значення | 0.02 | 0.005 | 0.59 | | 2|наибольшее значення | 0.96 | 0.996 | 0.999 | | 3|Мат. очікування | 0.39 | 0.51 | 0.49 | | 4|Дисперсия | 0.078 | 0.086 | 0.085 | | 5|Среднеквадратич.отклон. | 0.279 | 0.294 | 0.292 | | 6|Эксцесс | -1.92 | -1.024 | -1.12 |.

Визначення характеристик корреляции.

?(?) ?(?).

1 1.

0? 0.

vihod1.dat vihod2.dat.

?(?).

0 ?

vihod3.dat.

Вывод:

1) Зі збільшенням числа зрушень характеристики чисел улучшаются.

2) З 3-ех файлів найякісніші числа перебувають у файлі vihod3. dat, т. до. вересня послідовності досить незалежні. Але водночас немає узгодженості по обом критериям.

3.4.1.2. Програмний способ.

При програмному способі псевдослучайные числа слід сформувати методом умножения.

Суть методу: вибирається два n — розрядних числа X1 і X2. X1> 0 | | |? > 0 | | |Числові | m | 1/? | |m характеристики |? |1/? | |D | | | |Алгоритм отримання | ______ | 1 | |випадкової величини |xi=?-2 ln z1 cos2? z2 |xi=- —— ln zi | | |xi+1=?-2 ln z1 cos2? |? | | |z2 | | | |(m=0; D=1) | | |Область значень | | | |випадкової величини | | |.

Дослідження послідовності нормально розподілених ПСЧ.

(Программа при застосуванні № 3).

Визначення числових характеристик.

| | |Теоретическое|Статистическое | |№ |Характеристика | | | | | |значення |значення | | 1|Мин.знач.совокупности | 11 | 12.31 | | 2|Макс.знач.совокуп-ти | 24 | 25.23 | | 3|Мат. очікування | 16 | 16.02 | | 4|Дисперсия | 2 | 2.07 | | 5|Сред.квадр.отклонение | 1 | 1.439 | | 6|Коэфф.ассиметрии | 0 | 0.35 | | 7|Эксцесс | 0 | 2.716 |.

Апроксимація стат. розподілу теоретичної функцией.

Перевірка відповідності чисел послідовності необхідному розподілу дає такі результаты:

Критерій Хи-Квадрат:

Х2=0.813.

З довірчій ймовірністю 0.999 можна стверджувати про узгодженості теоретичних і статистичних данных.

Критерій Колмогорова:

Максимальна різницю max| F (x)-F*(x) | = 0.0823.

З довірчій ймовірністю 0.999 можна стверджувати про узгодженості теоретичних і статистичних данных.

Визначення характеристик корреляции.

?(?).

0 ?

Рис. 4. Графік зміни коефіцієнта корреляции.

Вывод:

Отримана послідовність ПСЧ, має нормальний закон розподілу, задовольняє пред’явленим вимогам з якості та може бути використана в завданнях моделювання, т. до. — числові характеристики мають незначне відхилення від теоретичних значень, — за критеріями згоди отримані задовільні значення довірчих ймовірностей, — числа послідовності досить незалежні, про що свідчить графік (Рис. 4.).

Послідовності ПСЧ для 2-го і 3-го користувачів генеруються аналогічно, з тією різницею, що мат. очікування біля них 17 і 18 соответственно.

Дослідження послідовності експоненціально розподілених ПСЧ.

(Програма при застосуванні № 3).

Визначення числових характеристик.

| | |Теоретическое|Статистическое| |№ |Характеристика | | | | | |значення |значення | | 1|Мин.знач.совокупности | 0.5 | 0.8 | | 2|Макс.знач.совокуп-ти | 3.5 | 2.358 | | 3|Мат. очікування | 0.8 | 1.06 | | 4|Дисперсия | 0.08 | 0.066 | | 5|Сред.квадр.отклонение | 0.5 | 0.2575 | | 6|Коэфф.ассиметрии | 0 | 1.682 | | 7|Эксцесс | 0 | 1.097 |.

Апроксимація стат. розподілу теоретичної функцией.

Перевірка відповідності чисел послідовності необхідному закону розподілу дає такі результаты:

Критерій Хи-Квадрат:

Значення Х2=2310.

З довірчій ймовірністю 0.999 можна стверджувати про узгодженості теоретичних і статистичних данных.

Критерій Колмогорова:

Максимальна різницю max| F (x)-F*(x) | = 0.023.

З довірчій ймовірністю 0.91 можна стверджувати про узгодженості теоретичних і статистичних данных.

Визначення характеристик корреляции.

?(?).

0 ?

Рис. 5. Графік зміни коефіцієнта корреляции.

Вывод:

Отримана послідовність ПСЧ, мають експонентний закон розподілу, задовольняє пред’явленим вимогам з якості та може бути використана в завданнях моделювання, т. до. — числові характеристики мають незначне відхилення від теоретичних значень, — за критеріями згоди отримані задовільні значення довірчих ймовірностей, — числа послідовності досить незалежні, про що свідчить графік (Рис. 5.).

3.5. Опис моделюючою програми для стохастической модели.

Перетворимо раніше створену детерміновану модель обчислювальної системи в стохастическую модель. І тому знадобляться такі зміни детермінованою програми: — уставимо програмний генератор РРПСЧ — вмонтовану функцію random () возвращающую РРПСЧ в інтервалі (0,1) — визначення часу між парафіями користувачів. — файл norm-1.dat, має нормальний закон розподілу з m=16, D=2 визначення часу підготовки завдання на 1-ой мережевий машині. — файл norm-2.dat, має нормальний закон розподілу з m=17, D=2 визначення часу підготовки завдання на 2-ой мережевий машині. — файл norm-3.dat, має нормальний закон розподілу з m=18, D=2 визначення часу підготовки завдання на 3-ей мережевий машині. — файл expon. dat, має експонентний закон розподілу з m=0.8 визначення часу виконання завдання на ЕОМ. — приберемо функції введення з клавіатури що були для введення параметрів системы.

Стохастичну моделююча програма приведено в Додатку № 4.

4. Набуття та інтерпретація результатів моделирования.

Значення вихідних характеристик, отримані при прогонках моделі з різними випадковими воздействиями.

| № |% завдань,| |прогона|поступ. від 2-го | | |користувача | | 1 | 9% | | 2 | 9% | | 3 | 9% | | 4 | 9% | | 5 | 9% | | 6 | 9% | | 7 | 9% | | 8 | 9% | | 9 | 9% | | 10 | 9% | |сред.зн| 9% | |. | |.

Вывод:

Усереднені значення вихідний характеристики підтверджують дані детермінованою моделі т.к. після запровадження ймовірності приходу другого користувача рівної 0.1 в детерміновану модель теоретичне значення відсотка завдань які надійшли від другого користувача стає рівним 10% .

1. Розробка САПР. № 9.

В.М. Чорненький. Імітаційне моделирование.

2. Лекції за курсом «Моделирование».

3. Б. Страуструп. Мова програмування С++.

4. Шрайбер Г. Д. Моделювання на GPSS.

5. Є.І. Козелл. від Сі до С++.

Приложение № 1.

// ЗАВДАННЯ 15. Детермінована модель системи. #include #include.

const emb=1; //одиниця машинного времени.

main () { int tp=100; //інтервал між парафіями користувачів int tgz1=160; //час підготовки завдання 1-ым користувачем int tgz2=170; //час підготовки завдання 2-ым користувачем int tgz3=180; //час підготовки завдання 3-им користувачем int tm=8; //час виконання завдання на ЕОМ int k=500; //кількість промоделированных на ЕОМ завдань int t=0; //время.

char nz=0; //наявність заявки на вході системи char cikl=0; //цикл приходу заявок char pz1=0; //підготовка завдання на мережевий машині 1 char pz2=0; //підготовка завдання на мережевий машині 1 char pz3=0; //підготовка завдання на мережевий машині 1 char znw=0; //наявність заявки виконання завдання char wz=0; //виконання завдання на ЕОМ char ocher[50]; //чергу char n=0; //індекс вільного елемента у черги int w2=0; //кількість вип. завдань від 2-го пользователя.

int ztgz1, ztgz2,ztgz3,ztm, zk; //перем.для запам’ятовування параметрів системы.

printf («Запровадьте інтервал між парафіями користувачів »); scanf («%d » ,&tp); printf («Запровадьте час підготовки завдання 1-ым користувачем »); scanf («%d » ,&tgz1); ztgz1=tgz1; printf («Запровадьте час підготовки завдання 2-ым користувачем »); scanf («%d » ,&tgz2); ztgz2=tgz2; printf («Запровадьте час підготовки завдання 3-ым користувачем »); scanf («%d » ,&tgz3); ztgz3=tgz3; printf («Запровадьте час виконання завдання на ЕОМ »); scanf («%d » ,&tm); ztm=tm; printf («Запровадьте кількість промоделированных на ЕОМ завдань »); scanf («%d » ,&k); zk=k;

//—————- моделюючий цикл —————————————————- while (k≠0) { t=t+emb; //поява користувача if (t%tp==0) switch (cikl).

{ case 0: nz=1; cikl=1; break; case 1: nz=2; cikl=2; break; case 2: nz=3; cikl=3; break; case 3: nz=1; cikl=0;

}.

//начало підготовки завдання switch (nz).

{ case 1: pz1=1; nz=0; break; case 2: pz2=1; nz=0; break; case 3: pz3=1; nz=0;

}.

Додаток № 1 (продолжение).

//подготовка завдання if (pz1==1) if (tgz1==0) {pz1=0; znw=1; tgz1=ztgz1;} else tgz1=tgz1-emb; if (pz2==1) if (tgz2==0) {pz2=0; znw=2; tgz2=ztgz2;} else tgz2=tgz2-emb; if (pz3==1) if (tgz3==0) {pz3=0; znw=3; tgz3=ztgz3;} else tgz3=tgz3-emb;

// запит виконання if (n≠0 && wz==0) { wz=ocher[n-1]; n—; } //якщо черга порожня, а ЕОМ свобода.

// то выпол. заявку з черги if (znw≠0) //якщо є заявка виконання if (wz==0) { wz=znw; znw=0; } //якщо ЕОМ не зайнята else //якщо ЕОМ зайнята, то ставимо заявку в очередь.

{ if (n>=50) { printf («nПереполнение очереди! n »); return 0; } else { ocher[n]=znw; znw=0; n++; }.

} //виконання завдання на ЕОМ switch (wz).

{ case 1: if (tm==0) {wz=0; k—; tm=ztm; } else tm=tm-emb; break; case 2: if (tm==0) {wz=0; k—; w2++; tm=ztm; } else tm=tm-emb; break; case 3: if (tm==0) {wz=0; k—; tm=ztm; } else tm=tm-emb;

} } printf («nПроцент вип. завдань, поступ. від 2-го польз.=%d% », 100*w2/zk); }.

Приложение № 2.

//Генерування рівномірно розподілених випадкових величин.

#include.

long x=7533; //псевдослучайное число.

long Rnd (long x) // процедура формування чергового псевдослучайного числа { int l=5169; long k=65 536; return (l*x)%k; }.

void main () { FILE *fout; //вихідний файл випадкових величин int і; //параметр цикла.

fout=fopen («vi_gpsc1.dat », «w »); for (i=1; i=50) { printf («nПереполнение очереди! n »); return 0; } else { ocher[n]=znw; znw=0; n++; }.

} //виконання завдання на ЕОМ switch (wz).

{ case 1: if (tm==0) {wz=0; k—; tm=expon (); } else tm=tm-emb; break; case 2: if (tm==0) {wz=0; k—; w2++; tm=expon (); } else tm=tmemb; break; case 3: if (tm==0) {wz=0; k—; tm=expon (); } else tm=tm-emb;

} } printf («nПроцент вип. завдань, поступ. від 2-го польз.=%d% », 100*w2/500); fclose (ravn); fclose (norm1); fclose (norm2); fclose (norm3); fclose (exp); }.

Показати весь текст
Заповнити форму поточною роботою