Проектування комп’ютерних систем з заданими параметрами

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    283,4 Кб
  • Опубликовано:
    2014-02-19
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Проектування комп’ютерних систем з заданими параметрами

Затверджую

зав. кафедрою КІ

_______ Святний В.А.

«10»лютого 2012 року.







ТЕХНІЧНЕ ЗАВДАННЯ

до курсової роботи

з дисципліни

«Комп’ютерні системи»

тема роботи:

«Проектування комп’ютерних систем з заданими параметрами»

студента групи СП-08а

Варича М.В.

Термін здачі роботи на перевірку - 14 тиждень

Термін захисту роботи - 14 тиждень

Вихідні дані

.Варіант: 89

.Заявки: 5,9,18,3,10

.Логічні схеми заявок:

№ заявки

Логічна схема заявки

5

Нач. ¯1Ax1­1Bx2­2Ex3­3C¯2¯3Mx4­4D¯4K Кон.

9

Нач. x1­1A¯1¯2Bx2­2C¯4Dx3­3K¯3Mx4­4 Кон.

18

Нач. ¯4Ax4­4Bx1­1C¯1Dx3­3Ex2­2K¯2M¯3 Кон.

3

Нач. Ax2­2B¯3¯2Cx3­3¯1Dx1­1Ex4­4MK¯4 Кон.

10

Нач. x1­1A¯4¯2Bx2­2Cx3­3E¯3Dx4­4K¯1M Кон.


.Ймовірності переходу (при X=1):

№ заявки

p1

p2

p3

p4

5

0.5

0.3

0.8

0.5

9

0.9

0.7

0.4

0.1

18

0.2

0.2

0.7

0.2

3

0.3

0.1

0.8

0.7

10

0.8

0.8

0.3

0.2


.Кількість процесорних операцій в операторах заявок (в тисячах):

№ заявки

A

B

C

D

E

M

K

5

5

4

3

2

1

2

3

9

9

8

7

6

5

4

3

18

4

2

2

4

6

8

9

3

3

2

1

2

3

4

5

10

2

1

2

3

4

5

6


.Вхідні дані заявок:

№ заявки

λ, 1/c

ν

ω, c

5

1.4

0.80

0.5

9

1.0

0.90

3.1

18

1.6

1.0

1.3

3

1.6

0.90

1.3

10

0.9

0.95

0.2


.Кількість звернень заявок до файлів:

№ заявки

F1

F2

F3

F4

F5

F6

F7

F8

F9

F10

5

-

-

3

5

7

9

1

-

-

-

9

-

-

-

-

7

9

11

8

5

-

18

-

-

6

4

8

9

12

-

-

-

3

1

2

4

8

10

-

-

-

-

-

10

-

-

-

8

12

6

2

4

-

-


.Характеристики файлів:

Файли

Довжина файлу, Мбайт

Середня довжина запису, Кбайт

F1

5

10

F2

6

9

F3

7

8

F4

8

7

F5

9

6

F6

10

5

F7

9

6

F8

8

7

F9

7

8

F10

6

9


.Характеристики зовнішніх приладів:

Молодша цифра номеру варіанту

Середній час доступу до даних, с

Швидкість передачі даних, Кбайт/с

Місткість накопичувача, Мбайт

Вартісний коефіцієнт процесора, од. кошт./ тис. оп./с.

Вартість типових приладів, од.кошт.


HD

ST

HD

ST

HD

ST


HD

ST

SK

9

0.06

2.0

190

50

9

16

4.5

80

35

150

Розділи пояснювальної записки, які треба розробити:

. Визначення середньої трудомісткості алгоритмів заявок.

. Обчислення мінімальної швидкодії процесора.

. Вибір дисципліни обслуговування та розрахунок характеристик комп’ютерної системи.

. Розрахунок характеристик комп’ютерної системи з мінімальною конфігурацією.

. Розрахунок характеристик комп’ютерної системи з заданим часом перебування.

. Розрахунок характеристик комп’ютерної системи з заданою вартістю.

. Моделювання комп’ютерної системи.

. Порівняння аналітичних розрахунків і результатів моделювання.

Зміст графічної частини:

.Заявки. Схеми програм.

. Комп’ютерної системи мінімальної конфігурації, схема електрична структурна.

. Комп’ютерної системи із заданим часом перебування, схема електрична структурна.

. Комп’ютерної системи заданої вартості, схема електрична структурна.

Графік виконання курсової роботи:

тиждень - укладання та аналіз технічного завдання, виявлення поставленої задачі.

тиждень - визначення середньої трудомісткості алгоритмів заявок.

тиждень - обчислення мінімальної швидкодії процесора.

,5 тижні - вибір дисципліни обслуговування та розрахунок характеристик комп’ютерної системи .

,7 тижні - розрахунок характеристик комп’ютерної системи з мінімальною конфігурацією.

,9 тиждень - розрахунок характеристик комп’ютерної системи з заданим часом перебування.

,11 тиждень - розрахунок характеристик комп’ютерної системи з заданою вартістю.

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

тиждень - оформлення пояснювальної записки та креслень.

тиждень - захист курсової роботи.

Дата видачі завдання - «10» лютого 2012 року.

Завдання прийняв до виконання _______ (Варич М.В.)

Керівник роботи _______ (Струнілін В.М.)

ЗМІСТ

ВСТУП

1. ВИЗНАЧЕННЯ СЕРЕДНЬОЇ ТРУДОМІСТКОСТІ АЛГОРИТМІВ ЗАЯВОК

.1 Обчислення середньої трудомісткості потоку заявок №5

1.2 Обчислення середньої трудомісткості потоку заявок №9

1.3 Обчислення середньої трудомісткості потоку заявок №18

1.4 Обчислення середньої трудомісткості потоку заявок №3

1.5 Обчислення середньої трудомісткості потоку заявок №10

2 ОБЧИСЛЕННЯ МІНІМАЛЬНОЇ ШВИДКОДІЇ ПРОЦЕСОРА

. ВИБІР ДИСЦИПЛІНИ ОБСЛУГОВУВАННЯ ТА РОЗРАХУНОК ХАРАКТЕРИСТИК КОМП’ЮТЕРНОЇ СИСТЕМИ(КС)

.1 Дослідження безпріоритетної дисципліни обслуговування

.2 Дослідження дисципліни обслуговування з відносним пріоритетом

.3 Дослідження дисципліни обслуговування з абсолютним пріоритетом

.4 Дослідження дисципліни обслуговування зі змішаним пріоритетом

4. РОЗРАХУНОК ХАРАКТЕРИСТИК КС МІНІМАЛЬНОЇ КОНФІГУРАЦІЇ

5. РОЗРАХУНОК ХАРАКТЕРИСТИК КС З ЗАДАНИМ ЧАСОМ ПЕРЕБУВАННЯ

6. РОЗРАХУНОК ХАРАКТЕРИСТИК КС ЗАДАНОЇ ВАРТОСТІ

7. МОДЕЛЮВАННЯ КС

. ПОРІВНЯННЯ АНАЛІТИЧНИХ РОЗРАХУНКІВ З РЕЗУЛЬТАТАМИ МОДЕЛЮВАННЯ

ВИСНОВКИ

ПЕРЕЛІК ПОСИЛАНЬ

Додаток А. Програма моделювання. Текст програми

ВСТУП

Багато прикладних задач потребують для свого рішення обчислювальних ресурсів великої продуктивності, тобто використання комп’ютерних систем(КС). Для запуску задачі необхідно виконати достатньо велику підготовчу роботу по створенню самої цієї системи.

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

Також в задачі синтезу системи оперативної обробки(СОО) входить розрахунок параметрів цієї системи, тобто кількість типових пристроїв (це, наприклад, зовнішні запам’ятовуючі пристрої) та швидкодія нетипових (процесор). Задачею розрахунку параметрів є також оптимальний розподіл вартості по пристроях з метою створення максимально ефективної системи при мінімальних затратах.

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

1. ВИЗНАЧЕННЯ СЕРЕДНЬОЇ ТРУДОМІСТКОСТІ АЛГОРИТМІВ ЗАЯВОК

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

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

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

1.1 Обчислення середньої трудомісткості потоку заявок №5

Логічна схема заявки: Поч.↓1 𝐴𝑋1 ↑1 𝐵𝑋2 ↑2 𝐸𝑋3 ↑3 𝐶 ↓2↓3 𝑀𝑋4 ↑4 𝐷 ↓4 𝐾 Кін.

На рисунку 1.1 приведені схема та мінімізований граф алгоритму для цього потоку заявок. Стохастична матриця приведена в таблиці 1.1.

Рисунок 1.1 - Потік заявок №5: а) схема алгоритму, б) мінімізований граф алгоритму

Таблиця 1.1 - Стохастична матриця для алгоритму потоку заявок №5


S1

S2

S3

S4

S5

S6

S7

S0

1

0

0

0

0

0

0

0

S1

0.5

0.5

0

0

0

0

0

S2

0

0

0.3

0

0.7

0

0

0

S3

0

0

0

0.8

0.2

0

0

0

S4

0

0

0

0

1

0

0

0

S5

0

0

0

0

0

0.5

0.5

0

S6

0

0

0

0

0

0

1

0

S7

0

0

0

0

0

0

0

1


Система рівнянь для імовірності переходу в кожну з операторних вершин:

𝑛0 = 1

𝑛1 = 1 · 𝑛0 + 0.5 · 𝑛1

𝑛2 = 0.5 · 𝑛1

𝑛3 = 0.3 · 𝑛2

𝑛4 = 0.8 · 𝑛3

𝑛5 = 0.7 · 𝑛2 + 0.2 · 𝑛3 + 1 · 𝑛4

𝑛6 = 0.5 · 𝑛5

𝑛7 = 0.5 · 𝑛5 + 1 · 𝑛6

𝑛k = 1 · 𝑛7

Після розв’язання системи отримано наступні імовірності:

𝑛0 = 1.0

𝑛1 = 2.0

𝑛2 = 1.0

𝑛3 = 0.3

𝑛4 = 0.24

𝑛5 = 1.0

𝑛6 = 0.5

𝑛7 = 1.0

𝑛k = 1.0

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

(тисяч).

1.2 Обчислення середньої трудомісткості потоку заявок №9

Логічна схема заявки: Поч. 𝑋1 ↑1 𝐴 ↓1↓2 𝐵𝑋2 ↑2 𝐶 ↓4 𝐷𝑋3 ↑3 𝐾 ↓3 𝑀𝑋4 ↑4  Кін.

На рисунку 1.2 приведені схема та мінімізований граф алгоритму для цього потоку заявок. Стохастична матриця приведена в таблиці 1.2.

Рисунок 1.2 - Потік заявок №9: а) схема алгоритму, б) мінімізований граф алгоритму

Таблиця 1.2 - Стохастична матриця для алгоритму потоку заявок №9


S1

S2

S3

S4

S5

S6

S0

0.9

0.1

0

0

0

0

0

S1

0

1

0

0

0

0

0

S2

0

0.3

0.7

0

0

0

0

S3

0

0

0

1

0

0

0

S4

0

0

0

0

0.4

0.6

0

S5

0

0

0

0

0

1

0

S6

0

0

0

0.9

0

0

0.1


Система рівнянь для імовірності переходу в кожну з операторних вершин:

𝑛0 = 1

𝑛1 = 0.9 · 𝑛0

𝑛2 = 0.1 · 𝑛0 + 1 · 𝑛1 + 0.3 · 𝑛2

𝑛3 = 0.7 · 𝑛2

𝑛4 = 1 · 𝑛3 + 0.9 · 𝑛6

𝑛5 = 0.4 · 𝑛4

𝑛6 = 0.6 · 𝑛4 + 1 · 𝑛5

𝑛k = 0.1 · 𝑛6

Після розв’язання системи отримано наступні імовірності:

𝑛0 = 1.0

𝑛1 = 0.9

𝑛2 = 1.4286

𝑛3 = 1.0

𝑛4 = 10.0

𝑛5 = 4.0

𝑛6 = 10.0

𝑛k = 1.0

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

(тисяч).

1.3 Обчислення середньої трудомісткості потоку заявок №18

Логічна схема заявки: Поч. ↓4 𝐴𝑋4 ↑4 𝐵𝑋1 ↑1 𝐶 ↓1 𝐷𝑋3 ↑3 𝐸𝑋2 ↑2 𝐾 ↓2 𝑀 ↓3 Кін.

На рисунку 1.3 приведені схема та мінімізований граф алгоритму для цього потоку заявок. Стохастична матриця приведена в таблиці 1.3.

Рисунок 1.3 - Потік заявок №18: а) схема алгоритму, б) мінімізований граф алгоритму

Таблиця 1.3 - Стохастична матриця для алгоритму потоку заявок №18


S1

S2

S3

S4

S5

S6

S7

S0

1

0

0

0

0

0

0

0

S1

0.8

0.2

0

0

0

0

0

0

S2

0

0

0.2

0.8

0

0

0

0

S3

0

0

0

1

0

0

0

0

S4

0

0

0

0

0.7

0

0

0.3

S5

0

0

0

0

0

0.2

0.8

0

S6

0

0

0

0

0

0

1

0

S7

0

0

0

0

0

0

0

1

Система рівнянь для імовірності переходу в кожну з операторних вершин:

𝑛0 = 1

𝑛1 = 1 · 𝑛0 + 0.8 · 𝑛1

𝑛2 = 0.2 · 𝑛1

𝑛3 = 0.2 · 𝑛2

𝑛4 = 0.8 · 𝑛2 + 1 · 𝑛3

𝑛5 = 0.7 · 𝑛4

𝑛6 = 0.2 · 𝑛5

𝑛7 = 0.8 · 𝑛5 + 1 · 𝑛6

𝑛k = 0.3 · 𝑛4 + 1 · 𝑛7

Після розв’язання системи отримано наступні імовірності:

𝑛0 = 1.0

𝑛1 = 5.0

𝑛2 = 1.0

𝑛3 = 0.2

𝑛4 = 1.0

𝑛5 = 0.7

𝑛6 = 0.14

𝑛7 = 0.7

𝑛k= 1.0

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

(тисяч).

1.4 Обчислення середньої трудомісткості потоку заявок №3

Логічна схема заявки: Поч. 𝐴𝑋2 ↑2 𝐵 ↓3↓2 𝐶𝑋3 ↑3↓1 𝐷𝑋1 ↑1 𝐸𝑋4 ↑4 𝑀𝐾 ↓4 Кін.

На рисунку 1.4 приведені схема та мінімізований граф алгоритму для цього потоку заявок. Стохастична матриця приведена в таблиці 1.4.

Рисунок 1.4 - Потік заявок №3: а) схема алгоритму, б) мінімізований граф алгоритму

Таблиця 1.4 - Стохастична матриця для алгоритму потоку заявок №3


S1

S2

S3

S4

S5

S6

S7

S0

1

0

0

0

0

0

0

0

S1

0

0.1

0.9

0

0

0

0

0

S2

0

0

1

0

0

0

0

0

S3

0

0

0.2

0.8

0

0

0

0

S4

0

0

0

0.7

0.3

0

0

0

S5

0

0

0

0

0

0.7

0

0.3

S6

0

0

0

0

0

1

0

S7

0

0

0

0

0

0

0

1


Система рівнянь для імовірності переходу в кожну з операторних вершин:

𝑛0 = 1

𝑛1 = 1 · 𝑛0

𝑛2 = 0.1 · 𝑛1

𝑛3 = 0.9 · 𝑛1 + 1 · 𝑛2 + 0.2 · 𝑛3

𝑛4 = 0.8 · 𝑛3 + 0.7 · 𝑛4

𝑛5 = 0.3 · 𝑛4

𝑛6 = 0.7 · 𝑛5

𝑛7 = 1 · 𝑛6

𝑛k = 0.3 · 𝑛5 + 1 · 𝑛7

Після розв’язання системи отримано наступні імовірності:

𝑛0 = 1.0

𝑛1 = 1.0

𝑛2 = 0.1

𝑛3 = 1.25

𝑛4 = 3.3333

𝑛5 = 1.0

𝑛6 = 0.7

𝑛7 = 0.7

𝑛k = 1.0

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

 (тисяч).

1.5 Обчислення середньої трудомісткості потоку заявок №10

Логічна схема заявки: Поч. 𝑋1 ↑1 𝐴 ↓4↓2 𝐵𝑋2 ↑2 𝐶𝑋3 ↑3 𝐸 ↓3 𝐷𝑋4 ↑4 𝐾 ↓1 𝑀 Кін.

На рисунку 1.5 приведені схема та мінімізований граф алгоритму для цього потоку заявок. Стохастична матриця приведена в таблиці 1.5.

Рисунок 1.5 - Потік заявок №10: а) схема алгоритму, б) мінімізований граф алгоритму

Таблиця 1.5 - Стохастична матриця для алгоритму потоку заявок №10


S1

S2

S3

S4

S5

S6

S7

S0

0.8

0

0

0

0

0

0.2

0

S1

0

1

0

0

0

0

0

0

S2

0

0.2

0.8

0

0

0

0

0

S3

0

0

0

0.3

0.7

0

0

0

S4

0

0

0

0

1

0

0

0

S5

0

0.8

0

0

0

0.2

0

0

S6

0

0

0

0

0

0

1

0

S7

0

0

0

0

0

0

0

1

Система рівнянь для імовірності переходу в кожну з операторних вершин:

𝑛0 = 1

𝑛1 = 0.8 · 𝑛0

𝑛2 = 1 · 𝑛1 + 0.2 · 𝑛2 + 0.8 · 𝑛5

𝑛3 = 0.8 · 𝑛2

𝑛4 = 0.3 · 𝑛3

𝑛5 = 0.7 · 𝑛3 + 1 · 𝑛4

𝑛6 = 0.2 · 𝑛5

𝑛7 = 0.2 · 𝑛0 + 1 · 𝑛6

𝑛k = 1 · 𝑛7

Після розв’язання системи отримано наступні імовірності:

𝑛0 = 1.0

𝑛1 = 0.8

𝑛2 = 5.0

𝑛3 = 4.0

𝑛4 = 1.2

𝑛5 = 4.0

𝑛6 = 0.8

𝑛7 = 1.0

𝑛k = 1.0

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

 (тисяч).

. ОБЧИСЛЕННЯ МІНІМАЛЬНОЇ ШВИДКОДІЇ ПРОЦЕСОРА

Визначення мінімальної швидкодії процесора виконується на базі закону збереження часу очікування:


де ri - коефіцієнт завантаження процесора з боку i-го потоку заявок;

wi - середній час очікування заявок i-го потоку.

Для отримання мінімальної швидкодії використовується безпріоритетна дисципліна обслуговування. Тому має виконуватися наступна умова:


де  - коефіцієнт завантаження цифрової керуючої системи(ЦКС) усіма потоками заявок;

w0 - середній час очікування заявок при безпріоритетній дисципліні обслуговування.

Ураховуючи, що:


Розв’язується остання нерівність відносно швидкодії процесора B:


де:


Результати моделювання дали результат Bmin = 332365.0 операцій в секунду. Для підвищення надійності результату мінімальна швидкодія процесора збільшується на 10 процентів Bmin = 365602.0 операцій в секунду. Текст програми наведено у додатку А.

3. ВИБІР ДИСЦИПЛІНИ ОБСЛУГОВУВАННЯ ТА РОЗРАХУНОК ХАРАКТЕРИСТИК КОМП’ЮТЕРНОЇ СИСТЕМИ

Для вибору дисципліни обслуговування (ДО) необхідно, спочатку, дослідити усі типи імовірних ДО. Такі як, безпріоритетну (БП), з відносним пріоритетом (ВП), абсолютним пріоритетом (АП) та змішаним пріоритетом (ЗП). Необхідно обрати ту дисципліну, що найбільше підходить для розв’язання задач, які надходять до комп’ютерної системі.

При виборі дисципліни обслуговування передбачається дисципліна обслуговування ЗП. Вона задається матрицею пріоритетів Q розміром nxn. Елементами даної матриці можуть бути тільки числа {0, 1, 2}. Якщо елементом є «0», то i-ий потік не має пріоритету перед j-им потоком, «1» позначає відносний пріоритет, «2» - абсолютний. Очевидно, що елементи головної діагоналі повинні бути «0».

ДО можна вважати вдалою, якщо коефіцієнт запасу по часу очікування приблизно однаковий для всіх задач. Цей параметр буде досліджуватися при моделюванні системи (додаток А).

Обчислення параметрів виконуються для різних швидкодій процесора - від мінімальної до подвоєної мінімальної з кроком 0,25* Bmin. Розрахунок ЦКС передбачає обчислення наступних характеристик:

 - час розв’язання задачі на процесорі;

 - коефіцієнт завантаження процесора з боку i-ого потоку заявок;

 - час очікування задач i-ого потоку;

 - час перебування задачі у системі;

 - запас по часу очікування;

 - імовірність перевищення допустимого часу очікування;

 - сумарне завантаження процесора;

 - сумарна інтенсивність потоку заявок на вході системи;

 - довжина черги;

 - штраф за втрату задач.

Моделювання буде проведене за допомогою програми, яка наведена у додатку А.

.1 Дослідження безпріоритетної дисципліни обслуговування

Матриця пріоритетів для даної ДО складається повністю з нульових елементів. Розрахунки ЦКС для цієї ДО дали результати, які приведено на рисунку 3.1.

БЕСПРИОРИТЕТНАЯ ДИСЦИПЛИНА ОБСЛУЖИВАНИЯ

Матрица приоритетов

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

.Быстродействие процессора 365602.0000 операций в секундуВремя обслуживания Загрузка Ср.знач.времени Запас по Вероятность

ср. знач. 2 нач. мом. потока ожид. пребыв. времени пребывания

0.0575 0.0054 0.0805 0.8926 0.9501 -0.3926 0.5160

0.3789 0.2599 0.3789 0.8926 1.2715 2.2074 0.0482

0.1025 0.0210 0.1639 0.8926 0.9950 0.4074 0.2487

0.0558 0.0056 0.0893 0.8926 0.9484 0.4074 0.2487

0.1127 0.0242 0.1014 0.8926 1.0053 -0.6926 0.6784

Суммарная интенсивность - 6.5000

Суммарная загрузка - 0.8141

Вероятностная функция штрафа - 2.1770

Средняя длина очереди - 3.5655

.Быстродействие процессора 548403.0000 операций в секундуВремя обслуживания Загрузка Ср.знач.времени Запас по Вероятность

ср. знач. 2 нач. мом. потока ожид. пребыв. времени пребывания

0.0383 0.0024 0.0537 0.1613 0.1996 0.3387 0.1009

0.2526 0.1155 0.2526 0.1613 0.4139 2.9387 0.0000

0.0683 0.0093 0.1093 0.1613 0.2296 1.1387 0.0068

0.0372 0.0025 0.0596 0.1613 0.1985 1.1387 0.0068

0.0751 0.0107 0.0676 0.1613 0.2364 0.0387 0.2769

Рисунок 3.1, аркуш 1 - Результати обчислення ЦКС для БП ДО

Суммарная интенсивность - 6.5000

Суммарная загрузка - 0.5427

Вероятностная функция штрафа - 0.4123

Средняя длина очереди - 0.6442

Рисунок 3.1, аркуш 2 - Результати обчислення ЦКС для БП ДО

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

Як видно з результатів моделювання, починаючи зі швидкодії процесора 548403.0 (третій крок) запас у часі очікування для всіх потоків є позитивним.

3.2 Дослідження дисципліни обслуговування з відносним пріоритетом

Програма підбирає пріоритети наступним чином: більш високий пріоритет присвоюється заявкам з меншим гранично допустимим часом ждання,а якщо ці параметри співпадають для 2 заявок, то враховується трудомісткість кожної з них. Розрахунки ЦКС для цієї ДО дали результати, які приведено на рисунку 3.2.

ДИСЦИПЛИНА ОБСЛУЖИВАНИЯ С ОТНОСИТЕЛЬНЫМ ПРИОРИТЕТОМ

Матрица приоритетов

1 1 1 0

0 0 0 0

1 0 0 0

1 1 0 0

1 1 1 0

.Быстродействие процессора 365602.0000 операций в секундуВремя обслуживания Загрузка Ср.знач.времени Запас по Вероятность

ср. знач. 2 нач. мом. потока ожид. пребыв. времени пребывания

0.0575 0.0054 0.0805 0.2257 0.2832 0.2743 0.1341

0.3789 0.2599 0.3789 1.5803 1.9592 1.5197 0.1649

0.1025 0.0210 0.1639 0.4031 0.5056 0.8969 0.0589

0.0558 0.0056 0.0893 0.2783 0.3341 1.0217 0.0182

0.1127 0.0242 0.1014 0.1846 0.2973 0.0154 0.3371

Суммарная интенсивность - 6.5000

Суммарная загрузка - 0.8141

Вероятностная функция штрафа - 0.7793

Средняя длина очереди - 3.5655

Рисунок 3.2 - Результати обчислення ЦКС для ДО з ВП

Позитивний запас у часі очікування вдалося досягти при початковій швидкодії 365602.0 операцій в секунду. Використання дисципліни обслуговування з відносними пріоритетами дало змогу зменшити функцію штрафу.

3.3 Дослідження дисципліни обслуговування з абсолютним пріоритетом

АП слід назначати за тими ж правилами, що і ВП, адже результуючий час очікування тим більший, чим нижче пріоритет. Розрахунки ЦКС для цієї ДО дали результати, які приведено на рисунку 3.3.

ДИСЦИПЛИНА ОБСЛУЖИВАНИЯ С АБСОЛЮТНЫМ ПРИОРИТЕТОМ

Матрица приоритетов

2 2 2 0

0 0 0 0

2 0 0 0

2 2 0 0

2 2 2 0

.Быстродействие процессора 365602.0000 операций в секундуВремя обслуживания Загрузка Ср.знач.времени Запас по Вероятность

ср. знач. 2 нач. мом. потока ожид. пребыв. времени пребывания

0.0575 0.0054 0.0805 0.0264 0.0839 0.4736 0.0000

0.3789 0.2599 0.3789 1.8723 2.2512 1.2277 0.2115

0.1025 0.0210 0.1639 0.1256 0.2280 1.1744 0.0002

0.0558 0.0056 0.0893 0.0446 0.1004 1.2554 0.0000

0.1127 0.0242 0.1014 0.0121 0.1248 0.1879 0.0000

Суммарная интенсивность - 6.5000

Суммарная загрузка - 0.8141

Вероятностная функция штрафа - 0.2118

Средняя длина очереди - 3.5655

Рисунок 3.3 - Результати обчислення ЦКС для ДО з АП

Позитивний запас у часі очікування вдалося досягти при початковій швидкодії 365602.0 операцій в секунду. Використання дисципліни обслуговування з абсолютними пріоритетами дало змогу ще більше зменшити функцію штрафу.

3.4 Дослідження дисципліни обслуговування зі змішаними пріоритетами

Для найбільш оптимальної роботи системи використовуються ДО зі змішаним типом пріоритету. Адже при використанні ДО одного виду спостерігається значна асиметрія у розподілі процесорного часу, хоча потоки можуть мати практично рівний запас у часі очікування. Саме тому треба використовувати ДО зі ЗП. Для цього, взявши за основу ДО з АП, треба послідовно назначати потокам ВП. Якщо функція штрафу зменшиться - зміна пріоритету доречна. В результаті сформуються групи заявок з різними пріоритетами. В середині цих груп також можуть існувати пріоритети. Отже, оптимальну матрицю пріоритетів можна отримати шляхом перебору обмеженого числа варіантів. Результати моделювання для цієї ДО дали результати, які приведено на рисунку 3.4.

ДИСЦИПЛИНА ОБСЛУЖИВАНИЯ СО СМЕШАННЫМ ПРИОРИТЕТОМ

Матрица приоритетов

2 2 2 0

0 0 0 0

2 0 0 0

2 1 0 0

2 2 2 0

.Быстродействие процессора 365602.0000 операций в секундуВремя обслуживания Загрузка Ср.знач.времени Запас по Вероятность

ср. знач. 2 нач. мом. потока ожид. пребыв. времени пребывания

0.0575 0.0054 0.0805 0.0264 0.0839 0.4736 0.0000

0.3789 0.2599 0.3789 1.8723 2.2512 1.2277 0.2115

0.1025 0.0210 0.1639 0.1102 0.2127 1.1898 0.0001

0.0558 0.0056 0.0893 0.0728 0.1286 1.2272 0.0000

0.1127 0.0242 0.1014 0.0121 0.1248 0.1879 0.0000

Суммарная интенсивность - 6.5000

Суммарная загрузка - 0.8141

Вероятностная функция штрафа - 0.2116

Средняя длина очереди - 3.5655

.Быстродействие процессора 548403.0000 операций в секунду

N Время обслуживания Загрузка Ср.знач.времени Запас по Вероятность

ср. знач. 2 нач. мом. потока ожид. пребыв. времени пребывания

1 0.0383 0.0024 0.0537 0.0107 0.0491 0.4893 0.0000

0.2526 0.1155 0.2526 0.3304 0.5830 2.7696 0.0033

Рисунок 3.4, аркуш 1 - Результати обчислення ЦКС для ДО зі ЗП

3 0.0683 0.0093 0.1093 0.0369 0.1052 1.2631 0.0000

4 0.0372 0.0025 0.0596 0.0274 0.0646 1.2726 0.0000

0.0751 0.0107 0.0676 0.0052 0.0803 0.1948 0.0000

Суммарная интенсивность - 6.5000

Суммарная загрузка - 0.5427

Вероятностная функция штрафа - 0.0033

Средняя длина очереди - 0.6442

Рисунок 3.4, аркуш 2 - Результати обчислення ЦКС для ДО зі ЗП

Як видно з рисунку, на першому кроці вдалося трохи зменшити функцію штрафу порівняно з АП. На третьому кроці функція штрафу складає 0.0033(менше 1 процента). Таким чином, швидкодія процесора 548403.0 операцій в секунду буде використовуватись для подальших розрахунків як оптимальна.

4 РОЗРАХУНОК ХАРАКТЕРИСТИК КС МІНІМАЛЬНОЇ КОНФІГУРАЦІЇ

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

) Інтенсивність потоку:


) Середня трудомісткість у кількості процесорних операцій:


) Середня кількість звертання до файлу Fj:


) Підсумкове число звернень до файлів в процесі розв’язання середньої задачі:


) Імовірності звернення до файлів у процесі розв’язання задачі:


) Середня трудомісткість етапу обчислення:


) Імовірність виходу задачі з системи:


Потім визначається мінімальна швидкодія процесора:


Однак ця швидкодія обчислена лише з урахуванням того, що процесор має встигати виконувати всю обчислювальну роботу. Але в реальній системі, де задано обмеження по часу очікування, мінімальна швидкодія повинна забезпечувати позитивний запас за часом очікування для всіх потоків та певну функцію штрафу. Тобто вона складає 548403.0 операцій в секунду , як обчислено в главі 3.

Визначення можливості розташування файлів на різних зовнішніх запам’ятовуючих пристроях. Максимально допустимий час звернення до файлів визначається за формулою:


Файли, максимальний час доступу до яких більше 2 c, слід розташувати на стримері ST (таких файлів немає), усі інші - на жорсткому диску HD.

Визначення кількості зовнішніх запам`ятовуючих пристроїв.

1) Середня кількість звертань до жорсткого диску:


) Середня кількість звертань до стримера:


) Інтенсивність звертання до жорсткого диску:


) Інтенсивність звертання до стримеру:


) Кількість HD за коефіцієнтом завантаження:


) Кількість HD за місткістю:


) Кількість цих пристроїв визначається як максимум із обчислених значень:


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

1) Інтенсивність звернення до селекторних каналів:


) Імовірність звернення до жорстких дисків:


) Середня довжина запису при зверненні до HD:


) Середній час передачі середньої задачі через селекторний канал:


) Кількість селекторних каналів:


Час перебування заявки на процесорі:


Час перебування заявки на HD:


Час перебування заявки в селекторному каналі:


Час відповіді системи обчислюється за формулою:


Вартість СОО визначається за наступною формулою:


Результати моделювання системи оперативної обробки наведені на рисунку 4.1. Програма моделювання наведена в додатку А.

Синтез СОО минимальной конфигурации

Интенсивность потока заявок на решение средней задачи Ino=6.50

Средняя трудоемкость при решении средней задачи Ro=45.79 тысяч процессорных операций

Суммарное число обращений к файлам при выполнении средней задачи Do=31.723

Вероятность использования файла F[j] при решении задач:

P(1)=0.008(2)=0.015(3)=0.095(4)=0.157(5)=0.265(6)=0.195(7)=0.157(8)=0.055(9)=0.024(10)=0.000

Средняя трудоемкость этапа счета Rp= 1.40 тысяч операций

Вероятность выхода задачи из системы Po=0.031

Быстродействие процессора, которое обеспечивает минимальную функцию штрафа Vpr=548.403015 тысяч операций в секунду

Интенсивность обращения к файлам F[j]:

Inn(1)=1.600(2)=3.200(3)=20.200(4)=33.400(5)=56.400(6)=41.400(7)=33.400(8)=11.600(9)=5.000(10)=0.000

Предельное время доступа к информации:(1)=0.625        необходимо размеcтить на HD(2)=0.312       необходимо размеcтить на HD(3)=0.050         необходимо размеcтить на HD(4)=0.030       необходимо размеcтить на HD(5)=0.018         необходимо размеcтить на HD(6)=0.024       необходимо размеcтить на HD(7)=0.030         необходимо размеcтить на HD(8)=0.086       необходимо размеcтить на HD(9)=0.200         необходимо размеcтить на HD(10)=неопределенно        неопределенно

Рисунок 4.1, аркуш 1 - Розрахунки СОО мінімальної конфігурації

Количество обращений к HD Dhd=31.723

Количество обращений к ST Dst=0.000

Интенсивность обращения к HD Ihd=206.200

Интенсивность обращения к ST Ist=0.000

Количество HD по коэффициенту загрузки Z1hd=12.372

Количество ST по коэффициенту загрузки Z1st=0.000

Количество HD по емкости Z2hd=7.667

Количество ST по емкости Z2st=0.375

Выбранное количество HD в проектируемой системе Zhd=13

Выбранное количество ST в проектируемой системе Zst=0

Интенсивность обращения к селекторным каналам Ick=206.200

Вероятность обращения к HD Phd=0.969

Вероятность обращения к ST Pst=0.000

Средняя длина записи при обращении к HD Lhd=6.339 Кб

Средняя длина записи при обращении к ST Lst=0.000 Кб

Среднее время передачи средней записи через селекторный канал Tck=0.032 c

Количество селекторных каналов Zck=7

Среднее время пребывания средней задачи на процессоре Upr= 0.183 c

Среднее время пребывания на HD Uhd=1.242 c

Среднее время пребывания на ST Ust=0.000 c

Среднее время пребывания заявки в селекторном канале Uck=0.686 c

Среднее время ответа в СОО Umin=61.334 c

Стоимость СОО Smin=4557.813 единиц стоимости

Рисунок 4.1, аркуш 2 - Розрахунки СОО мінімальної конфігурації

На рисунку 4.2 наведена структурна схема СОО мінімальної конфігурації.

Рисунок 4.2 - Структурна схема СОО мінімальної конфігурації

5. РОЗРАХУНОК ХАРАКТЕРИСТИК КС З ЗАДАНИМ ЧАСОМ ПЕРЕБУВАННЯ ЗАЯВОК

Оскільки в системі мінімальної конфігурації жорсткі диски дуже сильно завантажені, збільшення їх кількості на один одразу призведе до різкого зменшення часу очікування. Тому треба синтезувати СОО, в якій час очікування буде в два рази менше, ніж у системі мінімальної конфігурації.

Задача визначення швидкодії нетипових пристроїв і кількості типових визначається за допомогою методу невизначених множників Лагранжа:


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


Коефіцієнт q обчислюється, виходячи з того, що система матиме мінімальну вартість при часі перебування заявки, близькому до максимально допустимого:

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

В результаті округлення кількості типових пристроїв виникає додаткова затримка (випередження) в обслуговуванні задачі:


У зв`язку з цим корегується швидкодія нетипових пристроїв. Формула корекції в загальному виді:


Оскільки нетиповий пристрій лише один - процесор, ця формула матиме вигляд:


Далі для перевірки результату синтезу СОО обчислюється час перебування задачі в системі за формулою:


Вартість синтезованої СОО:


Результати моделювання наведені на рисунку 5.1.

Синтез СОО с заданным временем пребывания

Ограничение по времени пребывания Uz=30.667 с

Количество типовых устройств N1=3

Количество нетиповых устройств N2=1

Результирующее значение Uzz=27.737 с

Неопределенный коэффициент Лагранжа sqrt_q=3.237

Быстродействие при первом приближении Vprmin=558.730 тысяч операций в секунду

Количество типовых устройств:=15=0=8

Задержка в решении задачи U1=13.632 c

Скорректированное быстродействие нетипового устройства Vprmin=551.762 тысяч операций в секунду

Среднее время пребывания программы U=30.667 c

Стоимость вычислительной системы S=4882.930 единиц стоимости

Рисунок 5.1 - Розрахунки СОО з заданим часом перебування заявок

На рисунку 5.2 наведена структурна схема СОО з заданим часом перебування заявок.

Рисунок 5.2 - Структурна схема СОО з заданим часом перебування заявок

6. РОЗРАХУНОК ХАРАКТЕРИСТИК КС ЗАДАНОЇ ВАРТОСТІ

Тут треба синтезувати СОО, яка має вартість в два рази більше, ніж система мінімальної конфігурації, при цьому має максимальну продуктивність для такої вартості.

Для синтезу СОО заданої вартості також використовується метод множників Лагранжа. Для цього вводиться допоміжна функція G:


Диференціюючи дану функцію по невідомим параметрам та дорівнюючи перші похідні 0, виводяться формули для відшукання екстремальних значень невідомих параметрів:


В отриманих формулах перший складник визначає мінімальну швидкодію нетипових пристроїв або мінімальну кількість типових пристроїв. Другий складник визначає оптимальний закон розподілу вартості СОО між пристроями для забезпечення максимальної продуктивності. Максимальною продуктивність буде в тому випадку, якщо вартість дорівнює максимально допустимій. Звідси виводяться формули для обчислення невизначеного множника q:

” - це різниця між заданою вартістю СОО та вартістю системи, що складається з типових пристроїв з мінімальною продуктивністю і мінімального числа типових пристроїв. Якщо S”< 0 , то побудувати працездатну СОО заданої вартості неможливо.

Далі визначаються кількості типових пристроїв HD, ST та СК та швидкодія нетипового пристрою - процесора.

В результаті округлення кількості типових пристроїв виникає залишкова вартість, яку необхідно врахувати при обчисленні швидкодій нетипових пристроїв:


Оскільки нетиповий пристрій лише один (процесор), усю залишкову вартість можна використати на нього:


Середній час перебування задачі в такій системі дорівнює:


Результати моделювання наведені на рисунку 6.1.

Синтез СОО заданной стоимости

Предельная стоимость системы оперативной обработки Smin=9115.627 единиц стоимости=6577.001 единиц стоимости

Неопределенный коэффициент 1/sqrt_q=73.241

Быстродействие процессора при первом приближении V1=782.039 тысяч операций в секунду

Количество типовых устройств:=40=0=15

Избыточная стоимость S0=1197.813 единиц стоимости

Быстродействие процессора после распределения избыточной стоимости V1=814.584 тысяч операций в секунду

Стоимость системы при полученных параметрах S=9115.627 единиц стоимости

Рисунок 6.1 - Розрахунки СОО заданої вартості

На рисунку 6.2 наведена структурна схема СОО заданої вартості.

Рисунок 6.2 - Структурна схема СОО заданої вартості

7. МОДЕЛЮВАННЯ КОМП’ЮТЕРНОЇ СИСТЕМИ

програма код швидкодія процесор

Програма моделювання комп’ютерної системи написана на мові С++. Весь програмний код міститься в одному файлі kursovoi.cpp. В середовищі Borland C++ version 3.1 було створено виконуваний файл kursovoi.exe. Після виконання kursovoi.exe буде сформовано 2 файли: part1.txt та part2.txt. В перший файлі записується мінімальна швидкодія процесора, для кожної дисципліни обслуговування записуються отримані результати для 5 різних швидкодій процесора від Bmin до 2*Bmin з кроком 0,25*Bmin. В другий файл записуються характеристики розрахованих комп’ютерних систем мінімальної конфігурації, з заданим часом перебування та з заданою вартістю. Всі початкові дані для розрахунку містяться в програмі й користувачу не потрібно вводити ці дані при роботі з програмою.

Програма працює наступним чином. З основної процедури main() послідовно викликаються процедури, які виконують певну частину розрахунків. Спочатку викликається процедура processor(), яка обчислює мінімальну швидкодію процесора згідно формул в 2 розділі та збільшує її на 10% відсотків для більш надійної роботи КС. Далі 4 рази викликається процедура disciplina(int choice,float Bproc), де змінюється параметр choice: 0- це безпріоритетна дисципліна обслуговування, 1- з відносним пріоритетом, 2- з абсолютним пріоритетом, 3- зі змішаним пріоритетом. Відповідно до параметру choice формується матриця пріоритетів розміром 5х5 та виконуються обчислення згідно формул в розділі 3. Матриця для БП ДО заповнюється нулями. В матриці для ДО з відносним пріоритетом більш високий пріоритет надається потокам з меншим гранично допустимим часом очікування, тобто 1. Для потоків з однаковим гранично допустимим часом очікування більш високий пріоритет надається потокам з меншою трудомісткістю. Аналогічно виконується побудова матриці пріоритетів для ДО з АП, тільки елементами матриці будуть числа 2 та 0. Побудова матриці пріоритетів для ДО зі ЗП виконується інакше. Спочатку пріоритети призначаються аналогічно ДО з АП. Потім почергово змінюється пріоритет на відносний та перераховується функція штрафу за допомогою функції shtraf(float Bproc). Якщо функція штрафу стала меншою, то зміна пріоритету фіксується, мінімальним штрафом стає розрахований. Інакше - повертається абсолютний пріоритет. При роботі зі змішаним пріоритетом визначається оптимальна швидкодія Boptim, яка забезпечує функцію штрафу менше 0.01. Після закінчення роботи процедур disciplina(int choice,float Bproc) викликається процедура sintezKS(). Вона почергово проводить розрахунок характеристик КС мінімальної конфігурації, з заданим часом перебування та з заданою вартістю. Формули для розрахунку наведені у відповідних розділах. При цьому використовується визначена раніше оптимальна швидкодія процесора Boptim.

8. ПОРІВНЯННЯ АНАЛІТИЧНИХ РОЗРАХУНКІВ З РЕЗУЛЬТАТАМИ МОДЕЛЮВАННЯ

На рисунку 8.1 наведено графік залежності часу очікування від швидкодії процесора для 18 заявки для всіх дисциплін обслуговування.

Рис. 8.1 - Графік залежності часу очікування від швидкодії процесора для 18 заявки для всіх дисциплін обслуговування

На рисунку 8.2 наведено графік залежності часу очікування від завантаження потоком 18 заявки для всіх дисциплін обслуговування. На рисунку 8.3 наведено графік залежності часу очікування від пріоритету заявок для всіх дисциплін обслуговування при оптимальній швидкодії процесора 548403 операцій в секунду. Пріоритет вказано для номера відповідної заявки в скобках.

Рис. 8.2 - Графік залежності часу очікування від завантаження потоком 18 заявки для всіх дисциплін обслуговування

Рис. 8.3 - Графік залежності часу очікування від пріоритету заявок для всіх дисциплін обслуговування при оптимальній швидкодії процесора

Аналітично передбачалася наступна закономірність: при безпріоритетній дисципліні обслуговування час очікування буде відносно великим. При введенні відносних пріоритетів часи очікування можуть зменшитися. Те саме при введенні абсолютних пріоритетів. Все ці закономірності відображені на графіках. Дисципліна обслуговування зі змішаним пріоритетом майже не змінила часи очікування потоків заявок, але дозволила трохи зменшити функцію штрафу. При розрахунку параметрів СОО оптимальність розподілу вартості по апаратним компонентам передбачає, що система з більшою вартістю повинна мати більшу продуктивність. Система мінімальної конфігурації при вартості 4557.813 одиниць має середній час відповіді 61.334 с. Система, яка коштує 4882.930 одиниць, має середній час відповіді 30.667 с. Отже, результати моделювання співпали з передбаченими результатами.

ВИСНОВКИ

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

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

ПЕРЕЛІК ПОСИЛАНЬ

1. Методичні вказівки до виконання курсової роботи з курсу “Комп’ютерні системи” / Співст.: В.М.Струнілін . - Донецьк: ДонНТУ, 2008. - 23с.

. Методичні вказівки по оформленню курсових і дипломних проектів (робіт) / Співст.: В.М.Струнілін. - Донецьк: ДонНТУ, 2010. - 24с.

Додаток А. Програма моделювання. Текст програми

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <math.h>

FILE *fout; //файл результатаflag=0;//флаг оптимального быстродействияBmin,dB,a,c,d; //для процессораBoptim=0;//оптимальное быстродействиеsum1,sum2,sum3,sum4;//для омегаF;//Вероятностная функция штрафаR,l,L;//суммарная загрузка, для длины очередиomega[5];//среднее значение времени ожиданияv[5]; //среднее значение времени пребыванияro[5]; //загрузка потокаP[5];//вероятность пребыванияlambda[5]={ 1.4, 1.0, 1.6, 1.6, 0.9}; //интенсивности потоковteta[5]={ 21020, 138532, 37460, 20416, 41200}; //трудоемкостиnu[5]={ 0.8, 0.9, 1.0, 0.9, 0.95}; //коэффициенты вариацииomega_z[5]={ 0.5, 3.1, 1.3, 1.3, 0.2}; //ограничение по времени ожиданияq[5][5]={ 0,0,0,0,0, //матрица приоритетов

,0,0,0,0,

,0,0,0,0,

,0,0,0,0,

,0,0,0,0 };processor() //определение быстродействия процессора

{i;(i=a=c=d=0;i<5;i++)

{+=lambda[i]*teta[i];+=lambda[i]*teta[i]*teta[i]*(1+nu[i]*nu[i]);+=lambda[i]*teta[i]*omega_z[i];

}=ceil(0.5*a+sqrt(0.25*a*(a+2*c/d)));(fout,"Bmin = %7.4f операций в секунду\n",Bmin);

Bmin=ceil(Bmin+(Bmin/10));(fout,"Увеличиваем быстродействие процессора на 10%\n");(fout,"Bmin = %7.4f операций в секунду\n",Bmin);

}shtraf(float Bproc)

{i,j;(i=0;i<5;i++)

{[i]=(float)teta[i]/Bproc;[i]=lambda[i]*v[i];

}(i=0;i<5;i++)

{(j=0,sum1=sum2=sum3=sum4=0;j<5;j++)

{+=q[j][i]*(q[j][i]-1)*ro[j];+=(2-q[i][j])*(1+q[i][j])*lambda[j]*teta[j]*teta[j]*(1+nu[j]*nu[j]);+=q[j][i]*(3-q[j][i])*ro[j];+=(1-q[i][j])*(2-q[i][j])*ro[j];

}[i]=sum2/(Bproc*(2-sum3)*(2-sum4));[i]/=Bproc;[i]+=((teta[i]*sum1)/(Bproc*(2-sum1)));(j=0,R=0;j<5;j++)+=ro[j];=R/(1-R);=L*R;[i]=R*exp((-R*omega_z[i])/omega[i]);

}(i=0,sum1=F=0;i<5;i++)

{+=lambda[i];+=lambda[i]*P[i];

}F;

}disciplina(int choice,float Bproc)

{cur_shtraf,min_shtraf;stb,stk,i,j;loop;(choice>3)vyhod;(choice)

{0: for(stk=0;stk<5;stk++) //БП(stb=0;stb<5;stb++)[stk][stb]=0;begin; //БП1: for(stk=0;stk<5;stk++) //ОП(stb=0;stb<5;stb++)(omega_z[stk]<omega_z[stb])[stk][stb]=1;((omega_z[stk]==omega_z[stb])&&(stk!=stb))

{(teta[stk]<teta[stb])[stk][stb]=1;

}begin;2: for(stk=0;stk<5;stk++) //АП(stb=0;stb<5;stb++)(q[stk][stb]==1)[stk][stb]=2;begin;3: min_shtraf=shtraf(Bproc); //СП(stk=0;stk<5;stk++)(stb=0;stb<5;stb++)((stb!=stk)&&(q[stk][stb]==2))

{[stk][stb]=1;_shtraf=shtraf(Bproc);(cur_shtraf>min_shtraf)[stk][stb]=2;min_shtraf=cur_shtraf;

}

}:(fout,"\nМатрица приоритетов\n");(i=0;i<5;i++)

{(j=0;j<5;j++)(fout,"%d ",q[i][j]);(fout,"\n");

}=Bproc/4;(loop=0;loop<5;loop++)

{(fout,"\n %u.Быстродействие процессора %7.4f операций в секунду \n\n",loop+1,Bproc);

fprintf(fout," N Время обслуживания Загрузка Ср.знач.времени Запас по Вероятность\n");(fout," ср. знач. 2 нач. мом. потока ожид. пребыв. времени пребывания\n");

for (i=0;i<5;i++)

{[i]=(float)teta[i]/Bproc;[i]=lambda[i]*v[i];

}(i=0;i<5;i++)

{(fout," %3u",i+1);(fout," %7.4f",v[i]);(fout," %7.4f",(float)v[i]*v[i]*(1+nu[i]*nu[i]));(fout," %7.4f",ro[i]);(j=0,sum1=sum2=sum3=sum4=0;j<5;j++)

{+=q[j][i]*(q[j][i]-1)*ro[j];+=(2-q[i][j])*(1+q[i][j])*lambda[j]*teta[j]*teta[j]*(1+nu[j]*nu[j]);+=q[j][i]*(3-q[j][i])*ro[j];+=(1-q[i][j])*(2-q[i][j])*ro[j];

}[i]=sum2/(Bproc*(2-sum3)*(2-sum4));[i]/=Bproc;[i]+=((teta[i]*sum1)/(Bproc*(2-sum1)));(fout," %7.4f",omega[i]);(fout," %7.4f",v[i]+omega[i]);(fout," %7.4f",omega_z[i]-omega[i]);(j=0,R=0;j<5;j++)+=ro[j];=R/(1-R);=L*R;[i]=R*exp((-R*omega_z[i])/omega[i]);(fout," %7.4f\n",P[i]);

}(i=0,sum1=F=0;i<5;i++)

{+=lambda[i];+=lambda[i]*P[i];

}((flag==0)&&(choice==3)&&(F<=0.01))

{=Bproc;=1;

}(fout,"\n");(fout," Суммарная интенсивность - %5.4f\n",sum1);(fout," Суммарная загрузка - %5.4f\n",R);

fprintf(fout," Вероятностная функция штрафа - %5.4f\n",F);(fout," Средняя длина очереди - %5.4f\n",l);

Bproc+=dB;

}:

}sintezKS()

{In[5]={1.4,1.0,1.6,1.6,0.9}; //интенсивность поступления задачIno;//интенсивность потока заявок на решение средней задачиRo;//средняя трудоемкость при решении средней задачиbuf;Rp;//средняя трудоемкость этапа счетаPo;// верoятность выхода задачи из системыIhd,Ist;// интенсивность обращения к HD и STzck;// число селекторных каналовIck;//интенсивность обращения к селекторным каналамPhd,Pst;// вероятности обращения HD и STLhd,Lst;// средняя длина записи при обращенииTck;// среднее время передачи через селекторный каналUmin;//ср. время ответа системыUpr;//ср. время пребывания задачи на процессореUhd,Ust;//ср. время пребывания на HD и STUck;//ср.время пребывания задачи на СКUz;//ограничение на время пребыванияUzz;Smin;//стоимость системыD[10];//среднее число обращений к файлуDo;// суммарное число обращений к файлу при решении средней задачи

char flags[10];z1hd,z1st,z2hd,z2st;// количество HD и STzhd,zst;Dhd,Dst,Dck;// количество обращений к HD,ST,CK

float R[5]={21.02,138.532,37.460,20.416,41.2};// трудоемкость процессорных операций в тысячахN[5][10]={ // ср. число обращений к файлам

{ 0, 0, 3, 5, 7, 9, 1, 0, 0, 0},

{ 0, 0, 0, 0, 7, 9,11, 8, 5, 0},

{ 0, 0, 6, 4, 8, 9,12, 0, 0, 0},

{ 1, 2, 4, 8,10, 0, 0, 0, 0, 0},

{ 0, 0, 0, 8,12, 6, 2, 4, 0, 0} };P[10];// вероятность использования файловVpr;//минимальное быстродействиеInn[10];// интенсивность обращения к файламT[10];// предельное время доступа к информацииM[10]={5,6,7,8,9,10,9,8,7,6};//длина файлаL[10]={10,9,8,7,6,5,6,7,8,9};//ср.длина записиThd=0.06,Tst=2.0;//ср.время доступа к даннымVhd=190,Vst=50;//скорость передачи данныхMhd=9,Mst=16;//емкость накопителяDp=4.5;//стоимостной коэффициентShd=80,Sst=35,Sck=150;//стоимость устройствn1=1,n2=3; //число нетиповых (CPU) и типовых (HD,ST,CK) устройствsqrt_q;//неопределенный коэффициентVi;//быстродействиеz_hd,z_st,z_ck;//количество типовых устройствU1;// задержка в решении задачи, связанная с округлениемU;S;//стоимость ВСU1z;//новое ограничение

float Sz;Szz;sqrt_q1;V1;z_hd1,z_st1,z_ck1;S0;i,j;

fprintf(fout," Синтез СОО минимальной конфигурации\n");

for (i=0,Ino=0;i<5;i++)+=In[i];

fprintf(fout,"Интенсивность потока заявок на решение средней задачи Ino=%3.2f\n",Ino);

for (i=0,buf=0;i<5;i++)+=In[i]*R[i];

Ro=buf/Ino;(fout,"Средняя трудоемкость при решении средней задачи Ro=%5.2f тысяч процессорных операций\n",Ro);(fout,"Среднее число обращений к файлам F[j]:\n");

for (i=0;i<10;i++)

{(j=0,buf=0;j<5;j++)

{+=In[j]*N[j][i];

}[i]=(buf/Ino);(fout," D(%u)=%5.3f\n",i+1,D[i]);

}(i=0,Do=0;i<10;i++)+=D[i];

fprintf(fout,"Суммарное число обращений к файлам при выполнении средней задачи Do=%5.3f\n",Do);(fout,"Вероятность использования файла F[j] при решении задач:\n");

for (i=0;i<10;i++)

{[i]=D[i]/(Do+1);(fout," P(%u)=%4.3f\n",i+1,P[i]);

}=Ro/(Do+1);(fout,"Средняя трудоемкость этапа счета Rp=%5.2f тысяч операций\n",Rp);

Po=1/(Do+1);(fout,"Вероятность выхода задачи из системы Po=%4.3f\n",Po);=((Boptim)/1000);(fout,"Быстродействие процессора, которое обеспечивает минимальную функцию штрафа ");(fout,"Vpr=%f тысяч операций в секунду\n",Vpr);(fout,"Интенсивность обращения к файлам F[j]:\n");

for (i=0;i<10;i++)

{[i]=(float)Ino*D[i];(fout," Inn(%u)=%4.3f\n",i+1,Inn[i]);

}(fout,"Предельное время доступа к информации:\n");

for (i=0;i<10;i++)

{(Inn[i]!=0)

{ T[i]=(float)1/Inn[i];(fout," T(%u)=%4.3f\t",i+1,T[i]);

}

{T[i]=-1;(fout," T(%u)=неопределенно\t",i+1);

}(T[i]!=-1)

{(T[i]<Tst)

{(fout,"необходимо размеcтить на HD\n");[i]='h';

}

{(fout,"необходимо размеcтить на ST\n");[i]='s';

}

}

{(fout,"неопределенно \n");

flags[i]='u';

}

}(i=0,Dhd=Dst=0;i<10;i++)

{(flags[i]=='h')+=D[i];+=D[i];

}(fout,"Количество обращений к HD Dhd=%5.3f\n",Dhd);

fprintf(fout,"Количество обращений к ST Dst=%5.3f\n",Dst);=Ino*Dhd;(fout,"Интенсивность обращения к HD Ihd=%5.3f\n",Ihd);=Ino*Dst;(fout,"Интенсивность обращения к ST Ist=%5.3f\n",Ist);

z1hd=(Ihd*Thd);st=(Ist*Tst);(fout,"Количество HD по коэффициенту загрузки Z1hd=%5.3f\n",z1hd);(fout,"Количество ST по коэффициенту загрузки Z1st=%5.3f\n",z1st);(i=0,z2hd=z2st=0;i<10;i++)

{(flags[i]=='h')hd+=M[i];st+=M[i];

}hd=(z2hd/Mhd);st=(z2st/Mst);(fout,"Количество HD по емкости Z2hd=%5.3f\n",z2hd);(fout,"Количество ST по емкости Z2st=%5.3f\n",z2st);((z1hd>0)&&(z2hd>0))

{(z1hd>z2hd)= ceil (z1hd);= ceil (z2hd);

}=0;((z1st>0)&&(z2st>0))

{(z1st>z2st)= ceil (z1st);= ceil (z2st);

}=0;

fprintf(fout,"Выбранное количество HD в проектируемой системе Zhd=%u\n",zhd);(fout,"Выбранное количество ST в проектируемой системе Zst=%u\n",zst);=Ino*Do;(fout,"Интенсивность обращения к селекторным каналам Ick=%5.3f\n",Ick);

for (i=0,Phd=Pst=Lhd=Lst=0;i<10;i++)

{(flags[i]=='h')

{+=P[i];+=L[i]*P[i];

}

{+=P[i];+=L[i]*P[i];

}

}(fout,"Вероятность обращения к HD Phd=%5.3f\n",Phd);(fout,"Вероятность обращения к ST Pst=%5.3f\n",Pst);

Lhd=Lhd/Phd;(Pst>0)=Lst/Pst;=0;

fprintf(fout,"Средняя длина записи при обращении к HD Lhd=%5.3f Кб\n",Lhd);(fout,"Средняя длина записи при обращении к ST Lst=%5.3f Кб\n",Lst);

Tck=Lhd*Phd/Vhd+Lst*Pst/Vst;

zck=ceil(Ick*Tck);(fout,"Среднее время передачи средней записи через селекторный канал Tck=%5.3f c\n",Tck);(fout,"Количество селекторных каналов Zck=%u\n",zck);

Upr=Ro/(Vpr-Ino*Ro);(zhd>0)=Thd/(1-Ihd*Thd/zhd);=0;(zst>0)=Tst/(1-Ist*Tst/zst);=0;(zck>0)=Tck/(1-Ick*Tck/zck);=0;=Upr+Dhd*Uhd+Dst*Ust+Do*Uck;

fprintf(fout,"Среднее время пребывания средней задачи на процессоре Upr=%6.3f c\n",Upr);(fout,"Среднее время пребывания на HD Uhd=%5.3f c\n",Uhd);(fout,"Среднее время пребывания на ST Ust=%5.3f c\n",Ust);(fout,"Среднее время пребывания заявки в селекторном канале Uck=%5.3f c\n",Uck);(fout,"Среднее время ответа в СОО Umin=%5.3f c\n",Umin);=Dp*Vpr+zck*Sck+zhd*Shd+zst*Sst;(fout,"Стоимость СОО Smin=%5.3f единиц стоимости",Smin);(fout,"\n\n Синтез СОО с заданным временем пребывания\n");=0.5*Umin;(fout,"Ограничение по времени пребывания Uz=%5.3f с\n",Uz);(fout,"Количество типовых устройств N1=%u\nКоличество нетиповых устройств N2=%u\n",n2,n1);=Dhd+Dst;=Uz-(Dhd*Thd+Dst*Tst+Dck*Tck);(fout,"Результирующее значение Uzz=%5.3f с\n",Uzz);_q=(sqrt(Ro*Dp)+(Thd*sqrt(Dhd*Ihd*Shd)+Tst*sqrt(Dst*Ist*Sst)+Tck*sqrt(Dck*Ick*Sck)))/Uzz;(fout,"Неопределенный коэффициент Лагранжа sqrt_q=%5.3f\n",sqrt_q);

Vi=Vpr+sqrt_q*sqrt(Ro/Dp);

fprintf(fout,"Быстродействие при первом приближении Vprmin=%5.3f тысяч операций в секунду\n",Vi);_hd=ceil(Ihd*Thd+Thd*sqrt_q*sqrt(Dhd*Ihd/Shd));

z_st=ceil(Ist*Tst+Tst*sqrt_q*sqrt(Dst*Ist/Sst));_ck=ceil(Ick*Tck+Tck*sqrt_q*sqrt(Dck*Ick/Sck));

fprintf(fout,"Количество типовых устройств:\n");

fprintf(fout,"\t HD=%u\n\t ST=%u\n\t CK=%u\n",z_hd,z_st,z_ck);(z_st>0)

{=Uz-((Dhd*z_hd*Thd/(z_hd-Ihd*Thd))+(Dst*z_st*Tst/(z_st-Ist*Tst))+(Dck*z_ck*Tck/(z_ck-Ick*Tck)));

}=Uz-((Dhd*z_hd*Thd/(z_hd-Ihd*Thd))+(Dck*z_ck*Tck/(z_ck-Ick*Tck)));

fprintf(fout,"Задержка в решении задачи U1=%5.3f c\n",U1);=Vpr+Ro/U1;(fout,"Скорректированное быстродействие нетипового устройства Vprmin=%5.3f тысяч операций в секунду\n",Vi);(z_st>0)

{=Ro/(Vi-Vpr)+((Dhd*z_hd*Thd/(z_hd-Ihd*Thd))+(Dst*z_st*Tst/(z_st-Ist*Tst))+(Dck*z_ck*Tck/(z_ck-Ick*Tck)));

}=Ro/(Vi-Vpr)+((Dhd*z_hd*Thd/(z_hd-Ihd*Thd))+(Dck*z_ck*Tck/(z_ck-Ick*Tck)));(fout,"Среднее время пребывания программы U=%5.3f c\n",U);

S=Dp*Vi+z_hd*Shd+z_st*Sst+z_ck*Sck;

fprintf(fout,"Стоимость вычислительной системы S=%5.3f единиц стоимости\n",S);(z_hd<zhd)

{(fout,"\n Поскольку число HD оказалось меньше, чем это же число в СОО с минимальной конфигурацией, то вычисляется новое ограничение в системе\n");_hd=zhd;z=Uz-Dhd*z_hd*Thd/(z_hd-Ihd*Thd);(fout,"Новое ограничение по времени Uz=%5.3f c\n",U1z);

Uzz=U1z-(Dst*Tst+Dck*Tck);

fprintf(fout,"Результирующее значение Uzz=%5.3f с\n",Uzz);_q=(sqrt(Ro*Dp)+(Tst*sqrt(Dst*Ist*Sst)+Tck*sqrt(Dck*Ick*Sck)))/Uzz;(fout,"Неопределенный коэффициент Лагранжа sqrt_q=%5.3f\n",sqrt_q);

Vi=Vpr+sqrt_q*sqrt(Ro/Dp);

fprintf(fout,"Быстродействие при первом приближении Vprmin=%5.3f тысяч операций в секунду\n",Vi);

z_st=ceil(Ist*Tst+Tst*sqrt_q*sqrt(Dst*Ist/Sst));_ck=ceil(Ick*Tck+Tck*sqrt_q*sqrt(Dck*Ick/Sck));

fprintf(fout,"Количество типовых устройств:\n");

fprintf(fout,"\t HD=%u\n\t ST=%u\n\t CK=%u\n",z_hd,z_st,z_ck);(z_st>0)

{=U1z-((Dst*z_st*Tst/(z_st-Ist*Tst))+(Dck*z_ck*Tck/(z_ck-Ick*Tck)));

}=Uz-((Dhd*z_hd*Thd/(z_hd-Ihd*Thd))+(Dck*z_ck*Tck/(z_ck-Ick*Tck)));

fprintf(fout,"Задержка в решении задачи U1=%5.3f c\n",U1);=Vpr+Ro/U1;(fout,"Скорректированное быстродействие нетипового устройства Vprmin=%5.3f тысяч операций в секунду\n",Vi);(z_st>0)

{=Ro/(Vi-Vpr)+((Dhd*z_hd*Thd/(z_hd-Ihd*Thd))+(Dst*z_st*Tst/(z_st-Ist*Tst))+(Dck*z_ck*Tck/(z_ck-Ick*Tck)));

}=Ro/(Vi-Vpr)+((Dhd*z_hd*Thd/(z_hd-Ihd*Thd))+(Dck*z_ck*Tck/(z_ck-Ick*Tck)));(fout,"Среднее время пребывания программы U=%5.3f c\n",U);

S=Dp*Vi+z_hd*Shd+z_st*Sst+z_ck*Sck;

fprintf(fout,"Стоимость вычислительной системы S=%5.3f единиц стоимости\n",S);

}(fout,"\n\n Синтез СОО заданной стоимости\n");(fout,"Предельная стоимость системы оперативной обработки Smin=");=2*Smin;(fout,"%5.3f единиц стоимости\n",Sz);

Szz=Sz-(Vpr+Shd*Ihd*Thd+Sst*Ist*Tst+Sck*Ick*Tck);(fout,"Szz=%5.3f единиц стоимости\n",Szz);_q1=Szz/(sqrt(Ro*Dp)+Thd*sqrt(Shd*Ihd*Dhd)+Tst*sqrt(Sst*Ist*Dst)+Tck*sqrt(Sck*Ick*Dck));(fout,"Неопределенный коэффициент 1/sqrt_q=%5.3f\n",sqrt_q1);=Vpr+sqrt_q1*sqrt(Ro/Dp);_hd1=ceil(Ihd*Thd+sqrt_q1*sqrt(Dhd*Ihd/Shd))*Thd;_st1=ceil(Ist*Tst+sqrt_q1*sqrt(Dst*Ist/Sst))*Tst;_ck1=ceil(Ick*Tck+sqrt_q1*sqrt(Dck*Ick/Sck))*Tck;

fprintf(fout,"Быстродействие процессора при первом приближении V1=%5.3f тысяч операций в секунду\n",V1);(fout,"Количество типовых устройств:\n");

fprintf(fout,"\t HD=%u\n\t ST=%u\n\t CK=%u\n",z_hd1,z_st1,z_ck1);=Sz-(z_hd1*Shd+z_st1*Sst+z_ck1*Sck+Vpr*Dp);

fprintf(fout,"Избыточная стоимость S0=%5.3f единиц стоимости\n",S0);=Vpr+S0/Dp;(fout,"Быстродействие процессора после распределения избыточной стоимости V1=%5.3f тысяч операций в секунду\n",V1);

S=Dp*V1+z_hd1*Shd+z_st1*Sst+z_ck1*Sck;

fprintf(fout,"Стоимость системы при полученных параметрах S=%5.3f единиц стоимости\n",S);(z_hd1<zhd)

{(fout,"\n Поскольку число HD оказалось меньше, чем это же число в СОО с минимальной конфигурацией, то вычисляется новое ограничeние в системе\n");(fout,"Предельная стоимость системы оперативной обработки ");(fout,"Sz=%5.3f единиц стоимости\n",Sz);

Szz=Sz-(Ino*Ro+Sst*Ist*Tst+Sck*Ick*Tck);(fout,"Szz=%5.3f единиц стоимости\n",Szz);_q1=Szz/(sqrt(Ro*Dp)+Tst*sqrt(Sst*Ist*Dst)+Tck*sqrt(Sck*Ick*Dck));(fout,"Неопределенный коэффициент 1/sqrt_q=%5.3f\n",sqrt_q1);=Vpr+sqrt_q1*sqrt(Ro/Dp);_hd1=zhd;_st1=ceil(Ist*Tst+sqrt_q1*sqrt(Dst*Ist/Sst))*Tst;_ck1=ceil(Ick*Tck+sqrt_q1*sqrt(Dck*Ick/Sck))*Tck;

fprintf(fout,"Быстродействие процессора при первом приближении V1=%5.3f тысяч операций в секунду\n",V1);(fout,"Количество типовых устройств:\n");

fprintf(fout,"\tHD=%u\n\tST=%u\n\tCK=%u\n",z_hd1,z_st1-1,z_ck1);=Sz-(z_hd1*Shd+z_st1*Sst+z_ck1*Sck+Vpr*Dp);

fprintf(fout,"Избыточная стоимость S0=%5.3f единиц стоимости\n",S0);=Vpr+S0/Dp;(fout,"Быстродействие процессора после распределения избыточной стоимости V1=%5.3f тысяч операций в секунду\n",V1);

S=Dp*V1+z_hd1*Shd+z_st1*Sst+z_ck1*Sck;

fprintf(fout,"Стоимость системы при полученных параметрах S=%5.3f единиц стоимости",S);

}

}main()

{=fopen("part1.txt","wt");

fprintf(fout,"Курсовая работа по Компьютерным Системам\n");(fout,"Студент Варич Максим СП-08а\n\n");(fout,"ОПРЕДЕЛЕНИЕ БЫСТРОДЕЙСТВИЯ ПРОЦЕССОРА\n");();(fout,"\nБЕСПРИОРИТЕТНАЯ ДИСЦИПЛИНА ОБСЛУЖИВАНИЯ");(0,Bmin);(fout,"\nДИСЦИПЛИНА ОБСЛУЖИВАНИЯ С ОТНОСИТЕЛЬНЫМ ПРИОРИТЕТОМ");(1,Bmin);(fout,"\nДИСЦИПЛИНА ОБСЛУЖИВАНИЯ С АБСОЛЮТНЫМ ПРИОРИТЕТОМ");(2,Bmin);(fout,"\nДИСЦИПЛИНА ОБСЛУЖИВАНИЯ СО СМЕШАННЫМ ПРИОРИТЕТОМ");

disciplina(3,Bmin);(fout);=fopen("part2.txt","wt");

sintezKS();(fout);

}

Похожие работы на - Проектування комп’ютерних систем з заданими параметрами

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!