Дослідження розімкнутих стохастичних моделей обчіслювальних систем (ОС)

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра автоматизованих систем управління

Інформація про роботу

Рік:
2012
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Планування експериментів

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти, науки, молоді і спорту України Національний університет «Львівська політехніка» Кафедра автоматизованих систем управління  Звіт до лабораторної роботи №1 з дисципліни «Планування експериментів» на тему: «Дослідження розімкнутих стохастичних моделей обчіслювальних систем (ОС)» Мета роботи - вивчити методи розрахунку розімкнутих стохастичних аналітичних моделей обчислювальних систем (ОС), основаних на представленні обчислювального процесу (ОП) марківським випадковим процесом. ОСНОВНІ ТЕОРЕТИЧНІ ПОЛОЖЕННЯ. Можливість інтерпретації роботи ОС стохастичними мережами основана на модульності побудови сучасних обчислювальних засобів, функціональної незалежності модулів і паралельній їх роботі. Будемо розглядати обчислювальний процес (ОП) як послідовність етапів рахунку і вводу-виводу інформації при зверненні до файлів F1,...,Fn, пов’язаних з конкретною реалізацією задачі. Типова діаграма такого процесу показана на рис. 1.  Рис. 1. Граф марківського ланцюга, що є моделлю обчислювального процесу: P0,i - ймовірності переходів:  Стан ОП, що відповідає етапу рахунку, позначений символом Е0, а стан, що відповідає зверненню до файлів F1,...,Fn, - символами Е1,...,Еn. Закінчення обчислювального процесу розглядається як перехід процесу в стан Еn+1. В цих позначеннях ОП - це послідовність станів Е(t0),E(t1),...,E(tk), що змінюються в моменти часу t0,t2,...,tk, причому E(ti)({E1,...,En} і заключний стан процесу E(tk)=En+1. Властивість марківської моделі ОП полягає в тому, що приймається припущення про відсутність післядії ОП, яка означає, що наступні стани ОП залежать тільки від біжучого його стану і не залежать від попередніх.  Рис.2. Розімкнута стохастична модель ОС. Відображаючи множину станів ОП на множину модулів ОС (процесори, канали вводу- виводу (КВВ), пристрої вводу-виводу (ПВВ)), з якими пов’язане обслуговування ОП при перебуванні його в цих станах, приходимо до наступної моделі ОС (рис.2). Модулі ОС представляються системами масового обслуговування (СМО). Перебування в стані Е0 ототожнюється з роботою процесора (ПР), а перебування в станах Еі  - з роботою ПВВ і КВВ. Передбачається, що файли Fi  знаходяться на ПВВ. Коли декілька файлів знаходяться на одному ПВВ, ймовірність звернення до цього пристрою дорівнює сумі ймовірностей звернень до розташованих на ньому файлів. Наприклад, якщо на ПВВ3 розташовані файли F5, F6, F10, з цього випливає, що P1,3=P0,5+P0,6+P0,10. Зображена на рис.2 стохастична модель ОС представляє собою розімкнуту мережу СМО. Особливість такої моделі заключається в тому, що в ній одночасно можуть існувати змінна кількість активних ОП, конкуруючих за захоплення ресурсів ОС. Процес розв`язку задачі полягає в реалізації ОП, що відповідає послідовному обслуговуванню відповідної заявки, яка циркулює в мережі СМО. Розглядаються експоненційні мережі, для яких існують точні аналітичні розв’язки. Для них характерним є експоненційний розподіл часу обслуговування СМО мережі і найпростіший вхідний потік заявок з інтенсивністю . Розімкнута стохастична мережа визначаєтья наступною сукупністю параметрів: 1) числом N СМО S1,..., SN (ПР,ПВВ,КВВ), що утворюють мережу (рис.2); 2) числом каналів К1,...,КN, що входять до складу систем S1,..., SN; 3) матрицею ймовірностей передач Р=[Pij], де Pij - ймовірність того, що заявка, яка залишає систему Si, поступить в систему Sj ; 4) інтенсивністю  джерела заявок S0, що визначає кількість генеруємих задач в одиницю часу; 5) середніми тривалостями обслуговування заявок ν1,...νN в системах S1,..., SN. При розрахунку мережі знаходяться ймовірності станів мережі Pr(M1,...,MN), де Mi - кількість заявок в системі Si, а також середні довжини черг заявок l1,...,lN, що очікують обслуговування в системах S1,...,SN, середнє число заявок m1,...,mN, що перебувають в кожній з систем мережі; середній час очікування w1,...,wN і середній час перебування u1,...,uN заявок в системах S1,..., SN. Аналогічні характеристики l, m, w i u мережі в цілому визначаються через відповідні значення li, mi, wi i ui . Величини w i u характерезують середній час відповідно очікування і перебування задач в ОС при їх розв’язку. Матриця ймовірностей передач для мережі, що зображеня на рис.2, має наступний вигляд:  (1) Ймовірності Рi,j визначають переходи заявок в мережі. Нехай - середня кількість звертань від пристрою, що моделюється системою Si, до пристрою, що моделюється системою Sj мережі за час розв`язку однієї задачі. Тоді середня кількість етапів обслуговування заявки в системі Si мережі при однократному розв`язку задачі ,  (2) В цьому випадку , тобто Pij - це частина заявок, що проходять через систему Si, які направляються в систему Sj. Якщо всі заявки, які обслуговуються системою Si поступають в систему Sj, то Pij=1. Якщо система Si не зв`язана по виходу з системою Sj, то Pij=0. Для елементів матриці Р повинна виконуватися наступна умова  (3) так як заявки в мережі не губляться і заявка, що залишає систему Si, обов`язково попадає в деяку іншу систему. Будемо розглядати тільки стаціонарний режим. В цьому випадку середнє число заявок, що поступили в систему Si за деякий проміжок часу, дорівнює середньому числу заявок, що залишили систему за той самий проміжок часу, тобто інтенсивності вхідного і вихідного потоків заявок для системи Si рівні між собою. Для експоненційних мереж ймовірність стану мережі в стаціонарному режимі визначається добутком ймовірностей станів систем, що складають мережу , при чому ймовірності станів систем визначаються для випадку, коли кожна з систем функціонує незалежно. Таким чином розімкнуту стохастичну мережу, що зображена на рис.2, можна звести до еквівалентної мережі, яка показана на рис.3, де  - сумарна інтенсивність потоку заявок, які поступають в систему Si від інших систем мережі. Визначивши послідовно характеристики li, mi, wi, ui систем  мережі, можна знайти аналогічні характеристики l, m, w, u мережі в цілому. Інтенсивності  визначаються з системи рівнянь вигляду  (4) яка випливає з умови усталеного режиму мережі. S1  S2  . . . Sn (n Рис. 3. Мережа, що еквівалентна розімкнутій експоненційній мережі рис.2. У векторній формі система рівнянь має такий вигляд , (5) де  - вектор-стовпчик: Р* - транспонована матриця передач Р. З системи (4) визначається співвідношення інтенсивностей потоків i  : . (6) Коефіцієнти  називаються коефіцієнтами передач і визначають середнє число етапів обслуговування системою Si в розрахунку на одну заявку, яка поступає від джерела S0, і відповідають раніше введеним величинам αi. Для розімкнутих стохастичних мереж відома інтенсивність джерела заявок . Тому система (4) має єдиний розв`язок вигляду (6). Умова існування стаціонарного режиму мережі пов`язана з існуванням стаціонарних режимів в її системах. Для системи Si стаціонарний режим існує, якщо завантаження системи  менше одиниці, тобто  (7) Для одноканальних СМО під  розуміється відносна частина часу, на протязі якого канал використовується, тобто зайнятий обслуговуванням вимог, що поступають, і визначається добутком . Для багатоканальних СМО величина  визначає середнє число зайнятих каналів ki. Тому для знаходження завантаження кожного з каналів необхідно поділити середнє число зайнятих каналів ki на загальне число каналів в системі Ki. Таким чином, як для одноканальної, так і для багатоканальної системи завантаження  (8) Підставляючи (8) в (7) отримаємо . (9) Звідки .З цього випливає , що стаціонарний режим буде існувати в розімкнутій мережі, якщо виконується умова . (10) Для багатоканальної СМО в стаціонарному режимі ймовірність того, що в системі Si знаходиться Mi заявок визначається з рівняння , (11) де  (12)  (13)  - ймовірність відсутності заявок в системі Sj і визначається з умови нормування: ; (14) ; (15) ; (16) для одноканальних СМО ; (17) Ймовірність стану мережі знаходимо, перемноживши ймовірності станів систем мережі: , (18) або . (19) Знайдемо характеристики lj, mj, wj, uj багатоканальної СМО. Середнє число заявок, що очікують обслуговування в системі Sj, тобто середня довжина черги, визначається як математичне сподівання випадкової величини :  . (20) Так як <1, оскільки розглядається стаціонарний режим,   (21) Середнє число заявок в системі Sj дорівнює сумі середньої довжини черги lj і середнього числа зайнятих каналів : ,  (22) Середній час очікування заявки в черзі згідно формулі Літла дорівнює частці від ділення середньої довжини черги lj на інтенсивність  вхідного потоку в систему Sj: ,  (23) Середній час перебування заявки в системі Sj дорівнює частці від ділення середнього числа заявок mj на інтенсивність : ,  (24) Використовуючи (21) - (24), визначаємо характеристики мережі в цілому. Середнє число заявок, що очікують обслуговування в мережі, . (25) Середнє число заявок, що перебувають в мережі, . (26) Кожна заявка поступає на обслуговування в систему Sj мережі в середньому  разів. Тому середній час очікування w (перебування u) заявкі в мережі дорівнює сумі зважених по коефіцієнтах передачі  середніх часів очікування wj (перебування uj) заявок в кожній з систем Sj: , (27) . (28) ПОРЯДОК ВИКОНАННЯ РОБОТИ Номер варіанту: II – 4 Вхідні дані         Рис.1. Розімкнута стохастична модель ОС. Результати розрахунку програми.  Графіки залежностей характеристик мереж l,m,w,u від інтенсивності вхідного потоку .  Код програми using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace lab_1wf { public partial class Form1 : Form { public Form1() { InitializeComponent(); comboBox1.Items.Add("0.03"); comboBox1.Items.Add("0.06"); comboBox1.Items.Add("0.09"); comboBox1.Items.Add("0.12"); comboBox1.Items.Add("0.15"); comboBox1.Items.Add("0.18"); comboBox1.SelectedIndex = 0; dataGridView2.Rows.Clear(); dataGridView1.Rows.Add(1); dataGridView1.Rows[0].SetValues("1", "1", "1", "1", "1", "1"); dataGridView2.Rows.Clear(); dataGridView2.Rows.Add(1); dataGridView2.Rows[0].SetValues("0.5", "0.4", "0.1", "0.3", "0.1", "0.1"); dataGridView3.Rows.Clear(); dataGridView3.Rows.Add(7); dataGridView3.Rows[0].SetValues("0", "1", "0", "0", "0", "0", "0"); dataGridView3.Rows[1].SetValues("0.1", "0", "0.25", "0.25", "0.4", "0", "0"); dataGridView3.Rows[2].SetValues("0", "0", "0", "0", "0", "1", "0"); dataGridView3.Rows[3].SetValues("0", "0", "0", "0", "0", "0", "1"); dataGridView3.Rows[4].SetValues("0", "0", "0", "0", "0", "0", "1"); dataGridView3.Rows[5].SetValues("0", "1", "0", "0", "0", "0", "0"); dataGridView3.Rows[6].SetValues("0", "1", "0", "0", "0", "0", "0"); } private void button1_Click(object sender, EventArgs e) { double[,] matricia_imovirnostey = { { 0, 1, 0, 0, 0, 0, 0 }, // записуємо матрицю ймовірностей { 0.1, 0, 0.25, 0.25, 0.4, 0, 0 }, { 0, 0, 0, 0, 0, 1, 0 }, { 0, 0, 0, 0, 0, 0, 1 }, { 0, 1, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 0, 0, 0 } }; double[] niu = { 0, 0.5, 0.4, 0.1, 0.3, 0.1, 0.1 }; // середній час обслуговування каналами систем мережі double[,] lamda = new double[6, 7]; // знаходимо інтенсивності вхідних потоків for (int i = 0; i < 6; i++) { lamda[i, 0] = 0.03 * (i + 1); lamda[i, 1] = lamda[i, 0] / 0.1; lamda[i, 2] = 0.25 * lamda[i, 0] / 0.1; lamda[i, 3] = 0.25 * lamda[i, 0] / 0.1; lamda[i, 4] = 0.4 * lamda[i, 0] / 0.1; lamda[i, 5] = 0.25 * lamda[i, 0] / 0.1; lamda[i, 6] = 0.65 * lamda[i, 0] / 0.1; } double[,] alfa = new double[6, 7]; // обчислюємо коефіцієнти передачі for (int j = 0; j < 6; j++) for (int i = 1; i < 7; i++) alfa[j, i] = lamda[j, i] / lamda[j, 0]; double min = 1 / (alfa[0, 1] * niu[1]); // перевіряєм виконання умов стаціонарного режиму розімкнутої мережі bool vykonuetsia; for (int i = 2; i < 7; i++) { double temp = 1 / (alfa[0, i] * niu[i]); if (temp < min) min = temp; } if (lamda[Convert.ToInt16(comboBox1.SelectedIndex), 0] < min) vykonuetsia = true; else vykonuetsia = false; double[,] ro = new double[6, 7]; // заходимо масив ро for (int j = 0; j < 6; j++) for (int i = 1; i < 7; i++) ro[j, i] = lamda[j, i] * niu[i]; double[,] pe = new double[6, 7]; // заходимо масив пе for (int j = 0; j < 6; j++) for (int i = 1; i < 7; i++) pe[j, i] = 1 - ro[j, i]; double[,] l = new double[6, 7]; // заходимо масив l for (int j = 0; j < 6; j++) for (int i = 1; i < 7; i++) l[j, i] = (Math.Pow(ro[j, i], 2) * pe[j, i]) / Math.Pow((1 - ro[j, i]), 2); double[,] m = new double[6, 7]; // заходимо масив m for (int j = 0; j < 6; j++) for (int i = 1; i < 7; i++) m[j, i] = l[j, i] + ro[j, i]; double[,] w = new double[6, 7]; // заходимо масив w for (int j = 0; j < 6; j++) for (int i = 1; i < 7; i++) w[j, i] = l[j, i] / lamda[j, i]; double[,] u = new double[6, 7]; // заходимо масив u for (int j = 0; j < 6; j++) for (int i = 1; i < 7; i++) u[j, i] = m[j, i] / lamda[j, i]; double[] suma_l = new double[6]; // знаходимо середні значення l, m, w, u double[] suma_m = new double[6]; double[] suma_w = new double[6]; double[] suma_u = new double[6]; for (int j = 0; j < 6; j++) for (int i = 1; i < 7; i++) { suma_l[j] += l[j, i]; suma_m[j] += m[j, i]; suma_w[j] += w[j, i] * alfa[j, i]; suma_u[j] += u[j, i] * alfa[j, i]; } int combo = comboBox1.SelectedIndex; dataGridView4.Rows.Clear(); dataGridView4.Rows.Add(1); dataGridView4.Rows[0].SetValues(lamda[combo, 0], lamda[combo, 1], lamda[combo, 2], lamda[combo, 3], lamda[combo, 4], lamda[combo, 5], lamda[combo, 6]); dataGridView5.Rows.Clear(); dataGridView5.Rows.Add(1); dataGridView5.Rows[0].SetValues(alfa[combo, 1], alfa[combo, 2], alfa[combo, 3], alfa[combo, 4], alfa[combo, 5], alfa[combo, 6]); label9.Text = ""; if (vykonuetsia == true) label9.Text = "Стаціонарний режим виконується"; else label9.Text = "Стаціонарний режим не виконується"; dataGridView6.Rows.Clear(); dataGridView6.Rows.Add(1); dataGridView6.Rows[0].SetValues(pe[combo, 1], pe[combo, 2], pe[combo, 3], pe[combo, 4], pe[combo, 5], pe[combo, 6]); dataGridView7.Rows.Clear(); dataGridView7.Rows.Add(1); dataGridView7.Rows[0].SetValues(l[combo, 1], l[combo, 2], l[combo, 3], l[combo, 4], l[combo, 5], l[combo, 6]); dataGridView8.Rows.Clear(); dataGridView8.Rows.Add(1); dataGridView8.Rows[0].SetValues(m[combo, 1], m[combo, 2], m[combo, 3], m[combo, 4], m[combo, 5], m[combo, 6]); dataGridView9.Rows.Clear(); dataGridView9.Rows.Add(1); dataGridView9.Rows[0].SetValues(w[combo, 1], w[combo, 2], w[combo, 3], w[combo, 4], w[combo, 5], w[combo, 6]); dataGridView10.Rows.Clear(); dataGridView10.Rows.Add(1); dataGridView10.Rows[0].SetValues(u[combo, 1], u[combo, 2], u[combo, 3], u[combo, 4], u[combo, 5], u[combo, 6]); label19.Text = ""; label20.Text = ""; label21.Text = ""; label22.Text = ""; label19.Text = suma_l[combo].ToString(); label20.Text = suma_m[combo].ToString(); label21.Text = suma_w[combo].ToString(); label22.Text = suma_u[combo].ToString(); string[] xval1 = new string[6]; // Задаєм параметри гістограми chart1.ChartAreas["ChartArea1"].AxisX.IsLabelAutoFit = true; chart1.ChartAreas["ChartArea1"].AxisX.Interval = 1; chart1.ChartAreas["ChartArea1"].AxisX.LabelAutoFitMinFontSize = 8; for (int i = 0; i < 6; i++) xval1[i] = (0.03 * (i + 1)).ToString(); this.chart1.Series.Clear(); // Будуємо гістограму this.chart1.Series.Add("L"); chart1.Series["L"].Points.DataBindXY(xval1, suma_l); string[] xval2 = new string[6]; // Задаєм параметри гістограми chart2.ChartAreas["ChartArea1"].AxisX.IsLabelAutoFit = true; chart2.ChartAreas["ChartArea1"].AxisX.Interval = 1; chart2.ChartAreas["ChartArea1"].AxisX.LabelAutoFitMinFontSize = 8; for (int i = 0; i < 6; i++) xval2[i] = (0.03 * (i + 1)).ToString(); this.chart2.Series.Clear(); // Будуємо гістограму this.chart2.Series.Add("M"); chart2.Series["M"].Points.DataBindXY(xval2, suma_m); string[] xval3 = new string[6]; // Задаєм параметри гістограми chart3.ChartAreas["ChartArea1"].AxisX.IsLabelAutoFit = true; chart3.ChartAreas["ChartArea1"].AxisX.Interval = 1; chart3.ChartAreas["ChartArea1"].AxisX.LabelAutoFitMinFontSize = 8; for (int i = 0; i < 6; i++) xval3[i] = (0.03 * (i + 1)).ToString(); this.chart3.Series.Clear(); // Будуємо гістограму this.chart3.Series.Add("W"); chart3.Series["W"].Points.DataBindXY(xval3, suma_w); string[] xval4 = new string[6]; // Задаєм параметри гістограми chart4.ChartAreas["ChartArea1"].AxisX.IsLabelAutoFit = true; chart4.ChartAreas["ChartArea1"].AxisX.Interval = 1; chart4.ChartAreas["ChartArea1"].AxisX.LabelAutoFitMinFontSize = 8; for (int i = 0; i < 6; i++) xval4[i] = (0.03 * (i + 1)).ToString(); this.chart4.Series.Clear(); // Будуємо гістограму this.chart4.Series.Add("U"); chart4.Series["U"].Points.DataBindXY(xval4, suma_u); } } } Висновки На цій лабораторній роботі я вивчив методи розрахунку розімкнутих стохастичних аналітичних моделей обчислювальних систем (ОС), основаних на представленні обчислювального процесу (ОП) марківським випадковим процесом. Та за допомогою даної програми обчисив усі необхідні параметри.
Антиботан аватар за замовчуванням

01.02.2013 03:02-

Коментарі

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

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!