• Nie Znaleziono Wyników

Symulacja pól komutacyjnych z mechanizmami progowymi

7.1. Opis symulatora

W celu weryfikacji dokładności zaproponowanych w pracy metod analitycznego modelowa-nia pól komutacyjnych z mechanizmami progowymi i z wielousługowymi źródłami ruchu, opracowano symulator takich pól. Został on napisany w języku C++ z wykorzystaniem techniki programowania obiektowego. Do opracowania modelu symulacyjnego wykorzy-stano metodę interakcji procesów [101]. Opracowany symulator pozwala na wyznaczenie wartości prawdopodobieństwa blokady, prawdopodobieństwa strat, a także wartości ruchu obsłużonego (średniej liczby zajętych PJP w danej jednostce czasu) przez zgłoszenia po-szczególnych klas ruchu, w zależności od zastosowanego mechanizmu progowego, w polach komutacyjnych z selekcją punkt-punkt, punkt-grupa oraz punkt-grupa z kilkoma próbami zestawienia połączenia.

7.1.1. Dane wej´sciowe i warunek ko´ nca eksperymentu symula-cyjnego

Danymi wejściowymi symulatora są pojemność oraz struktura pola komutacyjnego. Dla każdej klasy ruchu podawana jest liczba żądanych PJP, czas obsługi oraz parametry zwią-zane z wprowadzonymi mechanizmami progowymi (żądana liczba PJP w poszczególnych obszarach progowych, granice progów). Definiowane są zbiory źródeł ruchu i ich typ (Erlang, Engset, Pascal). Podawana jest również wartość średnia ruchu oferowanego po-jedynczej PJP systemu.

W celu przeprowadzenia badań symulacyjnych pola komutacyjnego o pojemności kie-runków wyjściowych V , zbudowanego z komutatorów υ × υ łączy, w którym pojemność pojedynczego łącza wynosi f PJP, wprowadza się wartości następujących parametrów:

• liczbę zdefiniowanych klas ruchu m, 157

• liczbę tcżądanych PJP do zestawienia połączenia klasy c oraz średni czas µ−1c obsługi zgłoszenia klasy c,

• liczbę zbiorów źródeł ruchu sI Erlanga, sJ Engseta, sK Pascala,

• zbiory ZEr,i, ZEn,j i ZPa,k źródeł ruchu odpowiednio Erlanga, Engseta i Pascala, liczbę klas cEr,i, cEn,j i cPa,k należących odpowiednio do zbiorów CEr,i, CEn,j i CPa,k

klas ruchu, udział ηEr,i,c, ηEn,j,c i ηPa,k,c zgłoszeń klasy c w ruchu generowanym przez źródła należące odpowiednio do zbiorów ZEr,i,ZEn,j iZPa,k źródeł ruchu oraz liczbę NEn,j źródeł ruchu Engseta ze zbioru ZEn,j i SPa,k źródeł ruchu Pascala ze zbioru ZPa,k,

• granice progów Qc,u, zdefiniowane w kierunkach wyjściowych dla zgłoszeń klasy c,

• liczbę żądanych tc,u PJP przez zgłoszenia klasy c w obszarze progowym u oraz średni czas µ−1c,u obsługi zgłoszenia klasy c w obszarze u.

Dodatkowo podawany jest średni ruch a oferowany pojedynczej PJP kierunku wyjścio-wego. Na podstawie tych parametrów w symulatorze wyznaczana jest intensywność λEr,i, γEn,j lub γPa,kzgłoszeń generowanych przez źródła danego typu strumienia ruchu. W przy-padku strumieni Engseta i Pascala intensywności γEn,j oraz γPa,k określają intensywność zgłoszeń generowanych przez pojedyncze wolne źródło. Zatem, parametry λEr,i, γEn,j oraz γPa,k mogą być, w zależności od średniego ruchu oferowanego pojedynczej PJP, wyzna-czone na podstawie następujących wzorów:

λEr,i = aV υ

S[∑cc=1Er,itcηEr,i,c] [∑cc=1Er,iµcηEr,i,c], (7.1)

γEn,j = aV υ

S[∑cc=1En,jtcηEn,j,c] [∑cc=1En,jµcηEn,j,c]NEn,j, (7.2)

γPa,k = aV υ

S[∑cc=1Pa,ktcηPa,k,c] [∑cc=1Pa,kµcηPa,k,c]SPa,k, (7.3) gdzie S określa liczbę wszystkich zbiorów źródeł ruchu Erlanga, Engseta i Pascala.

Parametry wyznaczone na podstawie wzorów (7.1), (7.2) oraz (7.3) są traktowane jako parametry rozkładu wykładniczego, opisującego proces pojawiania się nowych zgłoszeń poszczególnych klas ruchu.

Warunkiem końca pracy eksperymentu symulacyjnego jest, przy określaniu prawdo-podobieństwa blokady, czas trwania poszczególnych serii niezbędny do wygenerowania określonej liczby zgłoszeń klasy najmniej aktywnej (najczęściej jest to klasa o najwięk-szej liczbie żądanych PJP). W przypadku prawdopodobieństwa strat warunkiem końca eksperymentu symulacyjnego jest zliczona odpowiednia liczba wygenerowanych zgłoszeń klasy najmniej aktywnej. Średni wynik jest obliczany na podstawie 5 serii. W praktyce,

do uzyskania przedziałów ufności nie większych niż 5% wartości średniej wyników uzy-skanych na podstawie eksperymentów symulacyjnych należy wygenerować około 1000000 zgłoszeń klasy najmniej aktywnej.

7.1.2. Model symulacyjny

Algorytm, według którego działa program symulacyjny, może zostać zapisany za pomocą następujących kroków:

1. Wstępna konfiguracja modelu symulacyjnego – utworzenie wszystkich źródeł gene-rujących zgłoszenia różnych klas ruchu.

2. Ustawienie czasu systemowego na wartość zero.

3. Aktywacja źródeł ruchu i umieszczenie zdarzeń (pojawienie się zgłoszenia) na liście.

4. Sprawdzenie warunku końca symulacji. Jeśli warunek końca jest spełniony, symu-lacja jest przerywana, a wyniki zapisywane są do pliku.

5. Uaktualnienie czasu systemowego do czasu pojawienia się pierwszego zdarzenia z li-sty.

6. Wykonanie się pierwszego zdarzenia z listy.

7. Usunięcie pierwszego zdarzenia z listy i powrót do kroku 4.

W modelu symulacyjnym pola komutacyjnego zdefiniowane zostały dwa zdarzenia:

pojawienie się nowego zgłoszenia oraz zakończenie obsługi zgłoszenia. Zgodnie z metodą interakcji procesów zdarzenia te obsługuje jedna funkcja. Funkcja ta ma inną postać dla każdego typu strumienia ruchu Erlanga, Engseta i Pascala.

Opisane podejście pozwala na zdefiniowanie w systemie wielu różnych klas ruchu i przy-pisanie ich do różnych typów zbiorów źródeł ruchu.

7.1.3. Symulowanie systemu ze zbiorami ´zródeł Erlanga

Rozważmy system, w którym zdefiniowano zbiór i źródeł ruchu ErlangaZEr,i. W systemie zdefiniowano także zbiór CEr,i = {1, 2, ..., cEr,i} klas ruchu, których zgłoszenia mogą być generowane przez źródła ze zbioru ZEr,i. We wstępnej konfiguracji systemu należy za-planować pojawienie się zgłoszenia klasy c ze zbioru CEr,i. Funkcja realizująca zdarzenia związane ze zbiorem źródeł ruchu Erlanga dla selekcji punkt-punkt1 może zostać opisana w następujący sposób:

1W przypadku selekcji punkt-grupa krok 2 (b) powtarza się dla każdego wolnego łącza żądanego kierunku wyjściowego, jeśli wcześniejsza próba zakończyła się niepowodzeniem.

1. Zaplanowanie pojawienia się nowego zgłoszenia, wygenerowanego przez źródło nale-żące do zbioru ZEr,i, zgodnie z rozkładem wykładniczym, którego parametrem jest intensywność λEr,i. Przyporządkowanie danemu zgłoszeniu klasy c ze zbioru CEr,i, na podstawie parametru ηEr,i,c, zgodnie z rozkładem równomiernym. Umieszczenie zdarzenia na liście.

2. Sprawdzenie, czy system dysponuje wystarczającymi zasobami, aby przyjąć zgło-szenie do obsługi:

(a) Sprawdzenie, czy którekolwiek z łączy żądanego kierunku wyjściowego dyspo-nuje przynajmniej tc wolnymi PJP. Jeśli nie – zgłoszenie jest tracone z powodu blokady zewnętrznej.

(b) Sprawdzenie, czy istnieje ścieżka pomiędzy łączem wejściowym, na którym po-jawiło się zgłoszenie, a łączem wyjściowym żądanego kierunku wyjściowego, która dysponuje przynajmniej tc wolnymi PJP. Jeśli nie – zgłoszenie jest tra-cone z powodu blokady wewnętrznej.

Jeśli którykolwiek z warunków (a) lub (b) nie jest spełniony, pomijamy następne kroki.

3. Zajęcie zasobów, żądanych przez zgłoszenie klasy c.

4. Zaplanowanie zakończenia obsługi zgodnie z rozkładem wykładniczym, którego pa-rametrem jest intensywność µc. Umieszczenie zdarzenia na liście.

5. Zakończenie obsługi i zwolnienie zasobów.

7.1.4. Symulowanie systemu ze zbiorami ´zródeł Engseta

Rozważmy system, w którym zdefiniowano zbiór j źródeł ruchu Engseta ZEn,j. W sys-temie zgłoszenia ze zbioru CEn,j ={1, 2, ..., cEn,j} klas ruchu mogą być generowane przez NEn,j źródeł ze zbioru ZEn,j. We wstępnej konfiguracji systemu należy zaplanować poja-wienie się zgłoszenia klasy c ze zbioruCEn,j, wygenerowanego przez każde z NEn,j źródeł.

Zatem, funkcja realizująca zdarzenia związane ze zbiorem źródeł ruchu Engseta może zostać przedstawiona w następujący sposób:

1. Sprawdzenie czy system dysponuje wystarczającymi zasobami do przyjęcia zgłosze-nia do obsługi:

(a) Sprawdzenie, czy którekolwiek z łączy żądanego kierunku wyjściowego dyspo-nuje przynajmniej tc wolnymi PJP. Jeśli nie – zgłoszenie jest tracone z powodu blokady zewnętrznej.

(b) Sprawdzenie, czy istnieje ścieżka pomiędzy łączem wejściowym, na którym po-jawiło się zgłoszenie, a łączem wyjściowym żądanego kierunku wyjściowego, która dysponuje przynajmniej tc wolnymi PJP. Jeśli nie – zgłoszenie jest tra-cone z powodu blokady wewnętrznej.

Jeśli którykolwiek z warunków (a) lub (b) nie jest spełniony, przejście do kroku 5.

2. Zajęcie zasobów, żądanych przez zgłoszenie klasy c.

3. Zaplanowanie zakończenia obsługi zgodnie z rozkładem wykładniczym, którego pa-rametrem jest intensywność µc. Umieszczenie zdarzenia na liście.

4. Zakończenie obsługi i zwolnienie zasobów.

5. Zaplanowanie pojawienia się nowego zgłoszenia, wygenerowanego przez wolne źró-dło ze zbioru ZEn,j źródeł ruchu, zgodnie z rozkładem wykładniczym, którego para-metrem jest intensywność γJ,j. Przyporządkowanie wygenerowanego zgłoszenia do klasy c ze zbioru CEn,j na podstawie parametru ηEn,j,c zgodnie z rozkładem równo-miernym. Umieszczenie zdarzenia na liście.

7.1.5. Symulowanie systemu ze zbiorami ´zródeł Pascala

Rozważmy system, w którym zdefiniowano zbiór źródeł ruchu PascalaZPa,k. W systemie zdefiniowano także zbiór CPa,k ={1, 2, ..., cPa,k} klas ruchu, których zgłoszenia mogą być generowane przez SPa,k źródeł ze zbioru ZPa,k. We wstępnej konfiguracji systemu należy zaplanować pojawienie się zgłoszenia klasy c ze zbioruCPa,k, wygenerowanego przez każde z SPa,k źródeł. Zatem, funkcja realizująca zdarzenia związane ze zbiorem źródeł ruchu Pascala, prowadzi do realizacji następującego zadania:

1. Zaplanowanie pojawienia się nowego zgłoszenia, wygenerowanego przez źródło ze zbioru ZPa,k, zgodnie z rozkładem wykładniczym, którego parametrem jest inten-sywność γPa,k. Przyporządkowanie zgłoszenia do klasy c ze zbioru CPa,k, na podsta-wie parametru ηPa,k,c, zgodnie z rozkładem równomiernym. Umieszczenie zdarzenia na liście.

2. Sprawdzenie czy system dysponuje wystarczającymi zasobami do obsługi zgłoszenia:

(a) Sprawdzenie, czy którekolwiek z łączy żądanego kierunku wyjściowego dyspo-nuje przynajmniej tc wolnymi PJP. Jeśli nie – zgłoszenie jest tracone z powodu blokady zewnętrznej.

(b) Sprawdzenie, czy istnieje ścieżka pomiędzy łączem wejściowym, na którym po-jawiło się zgłoszenie, a łączem wyjściowym żądanego kierunku wyjściowego, która dysponuje przynajmniej tc wolnymi PJP. Jeśli nie – zgłoszenie jest tra-cone z powodu blokady wewnętrznej.

Jeśli którykolwiek z warunków (a) lub (b) nie jest spełniony, pomijane są następne kroki.

3. Zajęcie zasobów, żądanych przez zgłoszenie klasy c.

4. Zaplanowanie zakończenia obsługi zgodnie z rozkładem wykładniczym, którego pa-rametrem jest intensywność µc. Umieszczenie zdarzenia na liście.

5. Dodanie nowego źródła (w momencie przyjęcia danego zgłoszenia). Zaplanowa-nie pojawienia się nowego zgłoszenia wygenerowanego przez nowe źródło ze zbioru ZPa,k zgodnie z rozkładem wykładniczym, którego parametrem jest intensywność γPa,k. Przyporządkowanie nowego zgłoszenia do klasy c ze zbioru CPa,k na podsta-wie parametru ηPa,k,c zgodnie z rozkładem równomiernym. Umieszczenie zdarzenia na liście.

6. Zakończenie obsługi i zwolnienie zasobów.

(a) Usunięcie nowego, nie obsługiwanego aktualnie, źródła w momencie zakończe-nia obsługi danego zgłoszezakończe-nia.

(b) Usunięcie zdarzeń związanych z usuniętym źródłem.

7.2. Badania symulacyjne pól komutacyjnych z