BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET PROCESS EDİTÖRDE MODELLEMENİN TEMELLERİ 1
OPNET MODELER MODELLEME Process Modelleme 2
OPNET Hiyerarşik Modelleme Yapısı OPNET ile sistem modellenmesinde genellikle hiyerarşik yapı ilişkisi olan proses, düğüm ve proje editörleri kullanılır. Process Domain Node Domain Network Domain 3
Project Editör En yüksek seviyeli modelleme katmanıdır. Ağ modellerinin geliştirildiği, alt ağların oluşturulduğu, bağlantı hatları, düğümler (nodes) ve coğrafik içeriğin tanımlandığı editördür. Bu editör temel benzetim ve analiz yeteneklerini içerir. Project (Ağ) Editöründe; Ağ modelleri oluşturulabilir ve düzenlenebilir, Ağ node larının özellikleri değiştirilebilir, Ağ topolojileri tanımlanabilir, ithal edilebilir ve trafik üretilebilir, Simülasyon sonuçları elde edilip grafiksel olarak gösterilebilir 4
Düğüm (Node) Modelleme Proje editöründe kullanılan ağ modellerindeki nesnelerin (switch, router, workstation vb. düğümlerin) geliştirildiği editördür. Bu editörde her bir nesne içerisinde proses modellerin olduğu modüller ve modülleri birbirine bağlayan iletim hatlarından oluşur. Node editöründeki modüller Process editör kullanılarak tanımlanır. Düğüm (Node) Modelleme 5
Düğüm (Node) Nesneleri (modelleri) Düğüm editöründe kullanılan nesneler (modüller) Düğüm (Node) Modelleme İşlemci, genel amaçlı node model bloğudur. Kullanıcı tarafından process editör vasıtasıyla tamamen programlanabilir. Paket üretme, paket yok etme, ortam erişim düzenleme gibi işlemler için programlanabilir. Kuyruk, işlemcilerin tüm işlevlerine yerine getirir. İşlemci nin özelliklerine ek olarak verileri (data packets) depolaya bilir. Veri kayıplarının oluşmaması için kullanılır. Birden fazla ayrı alt kuyruk (subqueue) tanımlanabilir. 6
Düğüm (Node) Modelleme Düğüm (Node) Nesneleri (modelleri) Verici (Transmitter) ve Alıcı (Receiver) nesneler (modüller) Trafik sinyallerinin iletim işlemini yerine getirir, Kullanılan haberleşme ortamına bağlı olarak ilgili alıcı/verici seçilir, Veri iletim hızı (data rate) gibi özellikleri doğrudan tanımlanabilir. Point-to-point transceivers Bus transceivers Packet radio transceivers Antenna Transmitter Receiver Transmitter Receiver Transmitter Receiver 7
Düğüm (Node) Modelleme Düğüm (Node) Nesneleri (modelleri) Nesneler (modüller) arası bağlantı Packet Stream, kaynak modülden hedef modüle veri (data) paketlerini taşır Statistic Wire, kaynak modülden hedef modüle istatistik bilgisi taşır. Paket varma, ortamın boş olması v.b gibi bilgiler Logical tx/rx association, alıcı ve verici arasında mantıksal birleştirme için kullanılır 8
Proses (Process) Model Editörü Hiyerarşik modelleme yapısının en alt seviye editörüdür. Düğüm editöründeki nesnelerin yapısının, işlevinin, parametrelerinin ve davranışlarının tanımlandığı, kontrol edildiği ve değiştirildiği editördür. Durum geçiş diyagramları ve bunların işlevlerini belirleyen Proto-C kodlarını içerir. 9
Proses Modelleme Process Modelleme OPNET Proses modelleri, gerçek dünyadaki süreçleri mantıksal olarak tanımlayabilir. Haberleşme protokolleri ve algoritmaları Kaynak paylaşımlarını yönetme Kuyruklama disiplinleri (teknikleri) Özelleştirilmiş trafik üretimi İstatistik toplama mekanizmaları İşletim sistemleri Proses model, sonlu durum makinasıdır (Finite State Machine, FSM) FSM, olaylar vuku bulduğunda modüllerin davranışlarını belirler 10
Process Modelleme Proses Modelleme ile İlgili Kavramlar Olaylar (Event) Kesmeler (Interrupts) Olaya Dayalı Simülasyon (Event-Driven Simulation) Olay Listesi ve Simülasyon Zaman Saati (Event list and Simulation Time Clock) Çekirdek (Öz) Simülasyon (Simulation Kernel, SK) Süreçler ve Kesmeler (Processes and Interrupts) 11
Process Modelleme Olay (Event) ve Olay Listesi (Event List) Olay, özel bir aktivitenin belirli bir zamanda olması için istekte bulunmaktır. OPNET simülasyonları olay sürümlüdür (event-driven). Simülasyon zamanı bir olay olduğunda ilerler. OPNET simülasyonunda tek bir global olay listesi vardır. Tüm nesneler aynı simülasyon saatini kullanır. Olaylar zamanlarına göre sıralanırlar Olay listesi SK tarafından yönetilir. SK modüllerden istekleri alır ve yeni olayları olay listesine ekler. En üstteki olay interrupt olarak adlandırılır. Listenin en üstüne gelen olay (interrupt) SK tarafından ilgili modüle yönlendirilir. Head Olay listesinin en üstüne gelen olay SK tarafından interrupt olarak ilgili modüle iletilir Time Event Type Module 0.0 Initialize src.gen 0.0 Initialize src.rte 4.3 Timer expires src.gen 4.3 Packet arrives src.rte SK olayı listeden siler ve bir sonraki olay en üste gelir. Modül içerisindeki proses kontrolü SK dan alır ve interruptı işler SK kontrolü modülden tekrar alır 12
Process Modelleme Durumlar (State), Olaylar (Events), Eylemler (Actions) State Event Action State uykuda Alarm / Uyan uyanık Sistemin Durumu Sistemin Durumu 0:00 Zaman 6:00 Aynı anda 6:00 Zaman 8:00 13
Durumlar (States) Process Modelleme Proses Model, 3 tip duruma sahiptir. Initial state Forced state Unforced state Kırmızı veya Yeşil Yeşil Kırmızı 14
Forced State Process Modelleme Forced (green) states Enter executives çağırılır. Exit executives çağırılır. Tüm koşul ifadeleri değerlendirilir. Eğer koşul doğru ise bir sonraki duruma geçilir. Enter execs Exit execs Bloklama ya da bekleme yok Bir sonraki duruma geçiş Enter execs Bloklama ya da bekleme yok Exit execs Bir sonraki duruma geçiş 15
Unforced State Process Modelleme Unforced (red) states Enter executives çağırılır Durumun ortasına bir işaretçi konur. Kontrol SK ya geçer ve boş olarak bekler. Bir sonraki çağrıldığında işaretçi konulan yerden itibaren çalışır ve exit executive çalıştırılır. Koşullara göre bir sonraki duruma geçer. Enter execs Çağrı olduğunda exit exec çalıştırılır Bir sonraki duruma geçiş Enter execs Çağrı olduğunda exit exec çalıştırılır Bloklar ve bir sonraki çağrıyı bekler Çağrının başlangıcı Çağrının sonu Bloklar ve bir sonraki çağrıyı bekler Bir sonraki duruma geçiş 16
Process Modelleme Durumlar Arası Geçiş (Transitions) State ler arası geçiş ile sağlanır. State de Exit exec çalıştırıldıktan sonra durumdan giden tüm geçiş koşulları değerlendirilir. Doğru olan koşul true değerini alır. Proses akışı doğru koşula sahip geçişten bir sonraki duruma geçer. Default koşul değerine sahip geçiş diğer koşullar doğru değil ise true değerini alır Koşul değeri olmayan geçiş unconditional olarak adlandırılır ve sürekli true değerindedir. Geçiş Şartlarının içeriği Header Block ta tanımlanır Geçiş şartı sağlandığında birlikte bir fonksiyonda çalıştırılabilir. Örneğin (paket_sayisi>5)/reset_timer; 17
Process Modelleme Prosesler Interruptları Nasıl Ele Alır? (Başlangıç interruptları bu algoritmaya dahil değildir.) İşaretçiyi bul Exit execs i çalıştır Koşul ifadesini değerlendir. Hayır Bir sonraki duruma geç Enter execs i çalıştır Red state? Evet İşaretçi koy; bloke et ve yeni interruptı bekle Interruptı al 18
Örnek Bir Proses Model Process Modelleme 1. İlk ınterrupt alınır ve enter execs çalıştırılır. 4. Enter execs çalıştırılır. 7. Enter execs çalıştırılır. 3. Geçiş gerçekleştirilir. 6. Geçiş gerçekleştirilir. 8. İşaretçi konur ve Proses burada durdurulur. 2. Hemen Exit execs çalıştırılır. Geçiş koşulu (pk_count == 0) true yapılır. 5. Hemen Exit execs çalıştırılır. 19
Çekirdek Prosedürler (Kernel Procedures) Kernel Prosedürler (KP) önceden yazılmış fonksiyonlardır. Tüm KP ler, op kısaltması ile başlar. Çoğunlukla kullanılan KP ler Process Modelleme Packet Package: op_pk_create () op_pk_create_fmt () op_pk_copy () op_pk_get () op_pk_total_size_get () op_pk_nfd_set () op_pk_nfd_get () op_pk_send () op_pk_send_delayed () op_pk_destroy () Subq Package: op_subq_pk_insert () op_subq_pk_remove () ID, Topo and Internal Model Access Packages: op_id_self () op_topo_parent () op_topo_child () op_ima_obj_attr_get () Interrupt Package: op_intrpt_schedule_self () op_intrpt_type () op_intrpt_strm () op_intrpt_code () Stat Package: op_stat_reg () op_stat_write () op_stat_local_read () op_stat_scalar_write () Distribution Package: op_dist_load () op_dist_outcome () Simulation and Event Packages: op_ev_cancel () op_sim_time () 20