Adam Kaliszan Mariusz Głąbowski
Katedra Sieci Telekomunikacyjnych i Komputerowych Politechnika Poznańska
ul. Piotrowo 3A, 60-965 Poznań e-mail: akalisz@et.put.poznan.pl
SYMULATOR WIĄZKI PEŁNODOSTĘPNEJ OBSŁUGUJĄCEJ ZINTEGROWANE NIE-POISSONOWSKIE STRUMIENIE ZGŁOSZEŃ
Streszczenie: W artykule przedstawiono sposoby prowadze- nia badań symulacyjnych wiązki pełnodostępnej obsługują- cej ruch zintegrowany, której oferowane są strumienie zgło- szeń Bernoullego, Pascala i Poissona. Opisany symulator opiera się na metodzie planowania zdarzeń. Metoda ta ofe- ruje więcej możliwości niż popularne symulacje typu Monte Carlo stosowane często w inżynierii ruchu. W artykule opi- sano sposoby symulowania różnych strumieni zgłoszeń oraz sposób ich obiektowej implementacji.
1. Wprowadzenie
Podstawowym systemem z ruchem zintegrowanym jest tzw. wiązka pełnodostępna, która jest modelem poje- dynczego łącza z nieograniczonym dostępem do zaso- bów. Wiązce tej oferowane są niezależne strumienie zgłoszeń. Jeśli założymy, że strumienie te są Poisso- nowskimi strumieniami to system taki może być symu- lowany metodą Monte Carlo [1]. Jeśli system rozsze- rzymy o obsługę nie-Poissonowskich strumieni zgło- szeń, takich jak strumienie Pascala lub Bernoullego, to konieczne jest stosowanie symulacji czasowej. Moż- liwości takie zapewnia m.in. metoda planowania zda- rzeń. Celem artykułu jest zaprezentowanie symulatora wiązki doskonałej z ruchem zintegrowanym o rozkła- dzie Poissona, Bernoullego i Pascala. Artykuł zorga- nizowany jest w następujący sposób. W rozdziale 2 opisano model wiązki pełnodostępnej oraz strumienie zgłoszeń Poissona, Bernoullego i Pascala. W rozdzia- le 3 przedstawiono metodę symulacji opisanych stru- mieni zgłoszeń. Rezultaty symulacji wybranych wią- zek oraz czasy trwania symulacji zostały przedstawio- ne w rozdziale 4. Rozdział 5 zawiera podsumowanie.
2. Wiązka pełnodostępna i oferowane jej strumienie zgłoszeń
Wiązka pełnodostępna obsługuje m klas zgłoszeń.
Każdą klasę opisują parametry takie jak: zasoby żąda- ne do obsługi pojedynczego zgłoszenia, strumień na- pływania zgłoszeń oraz strumień obsługi. Strumienie zgłoszeń mogą mieć różne rozkłady. Najpopularniej- sze rozkłady zostały opisane w artykule w następ- nych podrozdziałach. Czasy obsługi zgłoszeń wszyst- kich klas mają charakter wykładniczy z parametrami:
µ
1, µ
2, . . . , µ
m.
Wiązka 1 2 3. . . V Klasa nr 1: z
1, λ
1, µ
1-
Klasa nr 2: S
2, z
2, γ
2, µ
2-
Klasa nr m: N
m, z
m, γ
m, µ
m-
Rys. 1. Model systemu multi-rate z pojedynczym (separowanym) łączem
2.1. Model wiązki pełnodostępnej
Przyjmijmy, że zasoby wiązki żądane dla realizacji zgłoszeń poszczególnych klas ruchu stanowią wielo- krotność pewnej wartości przepływności, tzw. Podsta- wowej Jednostki Pasma
1. Wiązka pełnodostępna ma pojemność V PJP, które są dostępne dla wszystkich pojawiających się zgłoszeń. Oznacza to, że w wiąz- ce pełnodostępnej nie występuje zależność strumienia zgłoszeń od stanu, w którym system się znajduje [3].
Zgłoszenie klasy i wymaga z
iPJP do zestawienia po- łączenia. Opisany model wiązki pełnodostępnej obsłu- gującej m klas zgłoszeń przedstawiono na rysunku 1.
Parametry, które określają każdą klasę zgłoszeń, zo- stały omówione w dalszej części artykułu.
2.2. Strumień zgłoszeń Poissona
Strumień zgłoszeń Poissona określany jest często ja- ko strumień najprostszy. Posiada on następujące ce- chy: pojedynczość, brak następstw i stacjonarność [4].
Prawdopodobieństwo, że w czasie t napłynęło n zgło- szeń klasy i jest równe:
P
n(t) = (λ
i· t)
nn! · e
−λit. (1) Na podstawie wzoru (1) prawdopodobieństwo, że w czasie t nie pojawiło się żadne zgłoszenie, jest równe P
0(t) = e
−λit, (2)
1
Przy konstruowaniu modeli multi-rate dla systemów szero- kopasmowych B-ISDN przyjmuje się, że PJP jest największym wspólnym podzielnikiem pasm równoważnych wszystkich ofero- wanych systemowi strumieni zgłoszeń [2, 3].
2006
Poznańskie Warsztaty Telekomunikacyjne
Poznań 7 - 8 grudnia 2006
natomiast prawdopodobieństwo pojawienia się jedne- go zgłoszenia w czasie t jest równe:
P
1(t) = λ
it · e
−λit. (3) Prawdopodobieństwa te zależne są od długości prze- działu czasu t. Nie zależą one od czasu pojawienia się poprzedniego zgłoszenia. Na podstawie wzorów (2), (3) można obliczyć dystrybuantę F (t) pomiędzy ko- lejnymi zgłoszeniami, która określa prawdopodobień- stwo, że czas pomiędzy zgłoszeniami T będzie krótszy od zadanego czasu t. Prawdopodobieństwo takie jest równoważne prawdopodobieństwu, że w czasie t poja- wi się jedno lub więcej zgłoszeń klasy:
F (t) = X
∞ n=1P
n(t) = 1 − P
0(t) = 1 − e
−λit. (4)
Na podstawie dystrybuanty F (t) można zamienić próbki z generatora o rozkładzie równomiernym na próbki o rozkładzie opisanym przez dystrybuantę F (t). W tym celu próbki otrzymane z rozkładu rów- nomiernego o przedziale od 0 do 1 oznaczone jako p
Fnależy podstawić do funkcji dystrybuanty:
F (t) = p
F. (5)
Wzór (5) można tak przekształcić, by na podstawie znajomości funkcji F (t) rozkładu Poissona (wzór (4)) obliczyć t, które jest próbką z generatora losowego o rozkładzie Poissona:
t = − ln(p
F) λ
i. (6)
Gęstość rozkładu Poissona jest równa
f (t) = λ
ie
−λit. (7) Rozkład ten jest rozkładem wykładniczym. Średnia wartość tego rozkładu to λ
−1i. Niech π
i,1(t) oznacza prawdopodobieństwo, że w przedziale czasu o długości t pojawi się choć jedno zgłoszenie klasy i oraz niech Λ
i(t) oznacza intensywność strumienia zgłoszeń kla- sy i w czasie t, która jest równa:
Λ
i(t) = lim
∆t→0
π
i,1(t + ∆t)
∆t . (8)
Na podstawie właściwości strumienia Poissona, takich jak pojedynczość i brak następstw, można wykazać, że
Λ
i(t) = λ
i. (9)
2.3. Strumień zgłoszeń Bernoullego
Strumień zgłoszeń Bernoullego ma ograniczoną licz- bę źródeł ruchu. Przyjmijmy, że liczba źródeł ruchu klasy i, która oferuje strumień zgłoszeń o rozkładzie Bernoullego, jest równa S
i. Odstępy pomiędzy nowy- mi zgłoszeniami wygenerowanymi przez pojedyncze źródło mają rozkład wykładniczy. Źródła mogą być w dwóch różnych stanach. Jeśli źródło klasy i jest w stanie aktywnym, to jego intensywność generowania
zgłoszeń jest równa γ
i, a gdy jest w stanie nieaktyw- nym, to jego intensywność jest równa 0. Źródło jest w stanie nieaktywnym, gdy jest obsługiwane zgłosze- nie pochodzące od tego źródła. Czasy pomiędzy no- wymi zgłoszeniami pojedynczego źródła mogą być lo- sowane w taki sam sposób, co odstępy czasu pomiędzy zgłoszeniami w strumieniu Poissona:
t = − ln(p
F) γ
i. (10)
Nie jest określany moment pojawienia się nowego zgło- szenia, gdy źródło jest w stanie nieaktywnym. Inten- sywność strumienia zgłoszeń Bernoullego zależy od liczby źródeł, które są w stanie aktywnym. Liczba ak- tywnych źródeł zależy od liczby aktualnie obsługiwa- nych zgłoszeń y
i(t) i jest równa S−y
i(t). Można wyka- zać, że intensywność strumienia zgłoszeń Bernoullego jest równa
Λ
i(t) = (S
i− y
i(t)) · γ
i. (11) 2.4. Strumień zgłoszeń Pascala
W strumieniu Pascala początkowa liczba źródeł kla- sy i jest równa N
i. Każde źródło generuje zgłoszenia z intensywnością γ
i. Liczba źródeł klasy i zależy od liczby zgłoszeń w systemie i jest równa N
i+ y
i(t). In- tensywność zgłoszeń w strumieniu Pascala zależy od liczby źródeł tego strumienia i jest równa
Λ
i(t) = (N
i+ y
i(t)) · γ
i. (12) 2.5. Strumień obsługi
W artykule przyjęto, że czasy obsługi zgłoszeń mają rozkład wykładniczy i pojedyncze zgłoszenie klasy i obsługiwane jest z intensywnością µ
i. Generator liczb losowych o rozkładzie wykładniczym, odpowiadający czasom obsługi pojedynczych zgłoszeń, można zaim- plementować w analogiczny sposób co generator opi- sujący strumień pojedynczego źródła zgłoszeń:
t
obsł= − ln(p
F) µ
i, (13)
gdzie P
Fjest próbką z generatora o rozkładzie równo- miernym o wartościach od 0 do 1. Należy podkreślić, że t
obsłokreśla czas obsługi pojedynczego zgłoszenia w systemie, a system może obsługiwać wiele zgłoszeń równocześnie. W symulacji dla każdego takiego zgło- szenia należy indywidualnie wylosować czas obsługi.
Intensywność strumienia obsługi zgłoszeń klasy i za- leży od liczby obsługiwanych zgłoszeń tej klasy y
i(t).
Można wykazać, że intensywność strumienia obsługi klasy i jest równa [4]
N
i(t) = µ
iy
i(t). (14)
Model, w którym systemowi oferowany jest Poisso-
nowski strumień zgłoszeń, a czas obsługi pojedynczego
zgłoszenia jest wykładniczy, nazywany jest modelem
Erlanga. Model ten został przedstawiony na rysunku 2
dla systemu, który obsługuje tylko zgłoszenia poje-
dynczej klasy i. Rysunek 3 przedstawia model Engse-
0 λ
iz
i2z
i3z
i4z
i5z
i. . . µ
iλ
i2µ
iλ
i3µ
iλ
i4µ
iλ
i5µ
iλ
i6µ
iRys. 2. Diagram stanów procesu obsługi zgłoszeń w modelu Erlanga
0 z
i2z
i3z
i4z
i5z
i. . .
S
iγ
iµ
i(S
i−1)γ
i2µ
i(S
i−2)γ
i3µ
i(S
i−3)γ
i4µ
i(S
i−4)γ
i5µ
i(S
i−5)γ
i6µ
iRys. 3. Diagram stanów procesu obsługi zgłoszeń w modelu Engseta
ta, w którym strumień zgłoszeń ma rozkład Bernoulle- go a czas obsługi pojedynczego zgłoszenia ma rozkład wykładniczy. Zakładamy przy tym, że S > V . Po- dobnie zilustrowany system obsługuje tylko zgłosze- nia pojedynczej klasy i. Rysunek 4 przedstawia dia- gram stanów dla systemu ze strumieniem zgłoszeń o rozkładzie Pascala obsługującym tylko zgłoszenia kla- sy i. Zilustrowane systemy mają tylko stany o wielo- krotnościach z
i. Przez numer stanu rozumiemy licz- bę zajętych PJP przez zgłoszenia klasy i. Pojedyncze zgłoszenie tej klasy żąda z
iPJP, zatem po przyjęciu do obsługi kolejnego zgłoszenia tej klasy system prze- chodzi ze stanu n do stanu n + z
i. Jeśli założymy, że system obsługuje tylko zgłoszenia klasy i (tak jak na rysunkach 2–4) to stany, które nie są wielokrotnością z
inie są dozwolone.
3. Badania symulacyjne wiązki pełnodostępnej 3.1. Metoda planowania zdarzeń
W metodzie planowania zdarzeń występuje czas syste- mowy, według którego posortowane są zdarzenia prze- chowywane na liście zdarzeń. Proces symulacji pole- ga na pobieraniu pierwszego zdarzenia z listy zda- rzeń, przestawianiu czasu systemowego do czasu tego zdarzenia i „wykonaniu” pobranego zdarzenia. Przez
„wykonanie zdarzenia” należy rozumieć reakcję symu- lowanego systemu na to właśnie zdarzenie. Na przy- kład wykonywanie zdarzenia typu zakończenie obsłu- gi zgłoszenia polega na zwolnieniu zasobów zajętych przez to zgłoszenie w symulowanym systemie. Wyko- nanie zdarzenia często pociąga za sobą zaplanowanie nowych zdarzeń, które są dodawane do listy zdarzeń.
Przed rozpoczęciem symulacji konieczna jest jej inicja- cja, która polega na ustaleniu stanu początkowego sys- temu. W procesie inicjacji planowane jest też pierw- sze (lub kilka) zdarzenie, które zapoczątkuje proces
0 N z
i2z
i3z
i4z
i5z
i. . .
i
γ
iµ
i(N
i+1)γ
i2µ
i(N
i+2)γ
i3µ
i(N
i+3)γ
i4µ
i(N
i+4)γ
i5µ
i(N
i+5)γ
i6µ
iRys. 4. Diagram stanów procesu obsługi strumienia zgłoszeń Pascala
symulacji. Należy podkreślić, że po inicjacji w czasie procesu symulacji lista zdarzeń nigdy nie może być pusta.
3.2. Symulowanie wiązki obsługującej Poisso- nowskie strumienie zgłoszeń
Rozważmy symulację systemu obsługującego m klas z Poissonowskimi strumieniami zgłoszeń. W procesie inicjacji dodawane jest m zdarzeń typu pojawienie się nowego zgłoszenia klasy 1, 2, . . . , m i stan syste- mu ustawiany jest na n = 0.
W procesie symulacji zawsze wykonywane jest pierw- sze zdarzenie z listy zdarzeń. Jeśli tym zdarzeniem jest zdarzenie typu pojawienie się nowego zgłoszenia klasy i, to należy sprawdzić, czy system dysponuje wy- starczającymi zasobami by przyjąć do obsługi to zgło- szenie (n < V − z
i):
Tak Planowane jest nowe zdarzenie typu pojawienie się nowego zgłoszenia. Jego czas określany jest na podstawie rozkładu wykładniczego z intensywno- ścią λ
i. Następnie zajmowane są zasoby systemo- we (przechodzi on ze stanu n do stanu n + z
ii planowane jest zdarzenie typu zakończenie ob- sługi zgłoszenia klasy i. Jego czas określany jest na podstawie rozkładu wykładniczego z intensyw- nością µ
i,
Nie Planowane jest nowe zdarzenie typu pojawienie się nowego zgłoszenia. Jego czas określany jest na podstawie rozkładu wykładniczego z intensywno- ścią λ
i.
Jeśli wykonywanym zdarzeniem w procesie symulacji jest zdarzenie typu zakończenie obsługi zgłoszenia klasy i to zwalniane są zasoby zajęte przez obsłużo- ne zgłoszenie (system przechodzi ze stanu n do stanu n − z
i).
Podsumowując w symulacji m Poissonowskich stru- mieni zgłoszeń są dwa typy zdarzeń: pojawienie się no- wego zgłoszenia i zakończenie obsługi zgłoszenia. Na liście zdarzeń może być maksymalnie m + V elemen- tów.
3.3. Symulowanie strumienia zgłoszeń Berno- ullego
Rozważmy symulację wiązki, która obsługuje tylko zgłoszenia jednej klasy i. Przyjmijmy, że strumień zgłoszeń klasy i ma rozkład Bernoullego o S źródłach.
W procesie inicjacji należy dodać S zdarzeń typu poja- wienie się nowego zgłoszenia klasy i oraz ustawić stan zajętości systemu na n = 0.
W procesie symulacji, wykonując zdarzenie typu po- jawienie się nowego zgłoszenia klasy i, należy sprawdzić czy system dysponuje wolnymi zasobami by przyjąć do obsługi zgłoszenie klasy i:
Tak Planowane jest zdarzenie typu zakończenie ob-
sługi zgłoszenia klasy i oraz zajmowane są zaso-
by systemu. Czas zakończenia obsługi zgłoszenia
określany jst za pomocą losowego rozkładu wy-
kładniczego z intensywnością µ
i,
Nie Planowane jest zdarzenie typu pojawienie się no- wego zgłoszenia klasy i. Czas tego zgłoszenia określany jest zgodnie ze wzorem (10).
Wykonując zdarzenie typu zakończenie obsługi zgłoszenia klasy i należy zaplanować zdarzenie ty- pu pojawienie się nowego zgłoszenia i zwolnić zasoby systemu.
Podsumowując, w symulacji pojedynczego strumienia Bernoullego dla każdego źródła tego strumienia pla- nowane jest osobno zdarzenie typu pojawienie się no- wego zgłoszenia. Zatem strumień pojedynczej klasy i o rozkładzie Bernoullego ma zawsze S
izdarzeń typu pojawienie się nowego zgłoszenia lub jego zakończenie.
Opisana metoda pozwala na badanie systemu, które- mu oferowane jest wiele różnych strumieni zgłoszeń.
3.4. Symulowanie strumienia zgłoszeń Pascala Rozważmy symulację wiązki, w której klasa i oferuje strumień zgłoszeń o rozkładzie Pascala. W momencie inicjacji symulacji należy dla klasy i dodać N zdarzeń czasowych typu pojawienie się nowego zgłoszenia kla- sy i.
W procesie symulacji, wykonując takie zdarzenie typu pojawienie się nowego zgłoszenia klasy i, należy sprawdzić czy system dysponuje wolnymi zasobami by przyjąć do obsługi kolejne zgłoszenie:
Tak System przyjmuje do obsługi nowe zgłoszenia, planuje zdarzenia typu pojawienie się nowego zgłoszenia oraz zakończenie obsługi zgłoszenia.
Następnie system dodaje nowe źródło zgłoszeń, które powiązane jest z obsługiwanym właśnie zgłoszeniem. Dla nowego źródła planowane jest również zdarzenie typu pojawienie się nowego zgłoszenia pochodzącego od nowo dodanego źró- dła,
Nie System odrzuca przychodzące zgłoszenie i pla- nuje nowe zdarzenie typu pojawienie się nowego zgłoszenia.
Jeśli w symulacji wykonywane jest zdarzenie typu za- kończenie obsługi zgłoszenia klasy i, to zwalniane są zasoby zajmowane przez zgłoszenie tej klasy. Na- stępnie usuwane jest z symulacji źródło powiązane z wykonanym zdarzeniem (źródło, które zostało doda- ne do systemu w momencie rozpoczęcia obsługi te- go zgłoszenia) i zdarzenie typu pojawienie się nowego zgłoszenia, które pochodzi od usuwanego źródła.
Podsumowując pojedyncza klasa ze strumieniem zgło- szeń Pascala może mieć maksymalnie N +2V zdarzeń.
4. Porównanie wyników i czasów trwania symulacji
Badane systemy dysponowały pojemnością V = 50 PJP i obsługiwały 4 klasy zgłoszeń. Dla wszystkich badanych systemów intensywności strumieni zgło- szeń poszczególnych klas podzielono według proporcji:
a
1z
1: a
2z
2: a
3z
3: a
4z
4= 1 : 1 : 1 : 1 i zgłoszenia tych klas żądały odpowiednio z
1= 1, z
2= 3, z
3= 1,
1 0.5 0.2 0.1 0.05 0.02 0.01 0.005 0.002 0.001 0.0005 0.0002 0.0001
0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 a
Czas [ms]
klasa 1, 3 klasa 2, 4
Rys. 5. Prawdopodobieństwo strat B(t) dla systemu, któremu zaoferowano 4 Poissnowskie strumienie
zgłoszeń (V = 50, z
1= z
3= 1, z
2= z
4= 3, a
1z
1: a
2z
2: a
3z
3: a
4z
4= 1 : 1 : 1 : 1)
z
4= 3. Nie-Poissonowskie strumienie wraz ze wzro- stem liczby źródeł coraz bardziej przypominają stru- mienie Poissonowskie. Z tego względu pierwszy bada- ny system obsługiwał tylko klasy, które oferowały Po- issonowskie strumienie zgłoszeń. Rysunek 5 przedsta- wia zależność prawdopodobieństwa strat B
i(n) zgło- szeń klasy i od natężenia ruchu oferowanego jednost- ce pasma a = P
mi=1