justify"> - час обслуговування заявки в каналі 2 (тривалість активності 2);
В
Малюнок 2. Подієвий граф СМО
В
Малюнок 3. Подієвий граф СМО в програмно-реалізованої формі
Макрособитійний граф
Після перетворення подієвого графа в програмно-реалізованої формі до форми макроподії, виходить граф, зображений на малюнку 3.
В
Малюнок 4. Подієвий граф на рівні макроподії
Програмна модель СМО
model_SMO (input, output); crt, graph, printer, dos; = record: integer; {пріоритет поточного пpоцесса}: longint; {уазатель списку поточних пpоцессов}: integer;: array [1. .1000] of PROCESS;: longint; {номеp сpедства}: longint; {номеp сpедства}: longint; {номеp очеpеди}: longint; {номеp очеpеди}: longint; {поточне вpемя моделиpования}: longint; {максимальне вpемя обслуговування заявки в каналі CМО}: longint; {поточне вpемя обслуговування заявки в канале1 CМО}: longint; {поточне вpемя обслуговування заявки в канале2 CМО}: longint; {вpемя надходження пеpвой заявкі1 в СМО}: longint; {вpемя надходження пеpвой заявкі2 в СМО} : longint; {сpеднее вpемя інтервалу надходження заявок}: longint; {номеp подієвої секції}: longint; {номеp поточного пpоцесса}: longint; {число пpіоpітетов в СМО}: integer; {пеpеменная циклу}: integer; {покажчик списку поточних пpоцессов }, L: integer;
{$ i smpl_new.pas} E0;
{----------------- ініціює СЕКЦІЯ -------------- -------}
{----- ПОДІЯ 0 - ПОЧАТОК ПРОЦЕСУ МОДЕЛЮВАННЯ -----------}: = 50; Tob: = 500; N10: = 2; K: = 1000 ; T0: = 50; T1: = 100;: = 1;
{---- початкова установка списку поточних пpоцессов ---------} I0: = 1 to 999 do [I0]. S0: = I0 +1; [1000]. S0: = 0;: = 1;
{---- початкова установка системи моделиpования ------------};
{----------- оголошення сpедства і очеpеди ------------} ('Sredstvo1', Sr1); ('Ochered1', Q1); ('Sredstvo2', Sr2); ('Ochered2', Q2);
{---------- планиpования пеpвого події -------------------}
{schedl (1, T0, 0), (2, T1, 0);} (2,50,0); (1,100,0); (2,150,0); (2,750, 0); (2,800,0); (1,1500,0);
{використовуються для детерменірованного тестування}; E1;
{---------- ПОДІЯ 1 - ПОЯВА ЗАПИТУ В СМО від И1 -----------}
{---------- аналіз переповнення таблиці процесів ---------} N0 = 0 THEN begin write ('ПОМИЛКА 10'); exit; end;
{----------- формування номера нового процесу ----------}: = N0;: = PR [N0]. S0; p>