Lekcja 2. Tworzenie i uruchamianie prostej symulacji
|
|
- Daria Sowińska
- 8 lat temu
- Przeglądów:
Transkrypt
1 Lekcja 2. Tworzenie i uruchamianie prostej symulacji Lekcja druga poświęcona jest wyjaśnieniu budowy symulatora, implementacji modułów w C++ i ich kompilacji. Objaśnione zostaną potrzebne do symulacji funkcje, plik omnetpp.ini oraz krok po kroku przedstawione zostanie uruchamianie symulacji i obsługa interfejsów użytkownika. Budowa symulatora i uruchamiania symulacji Jak już było wspomniane w lekcji 1 do stworzenia kompletnego modelu symulacyjnego w OMNeT++ potrzebne są następujące elementy: opis topologii modelu NED (pliki z rozszerzeniem.ned) plik sterujący omnetpp.ini implementacje modułów prostych w języku C++ (pliki z rozszerzeniem.cpp oraz.h) definicje przesyłanych komunikatów (jeżeli są wykorzystywane) (pliki z rozszerzeniem.msg) Przed uruchomieniem symulacji pliki *.ned i *.msg muszą zostać skompilowane do postaci kodu w C++ za pomocą dostarczonych przez OMNeT++ kompilatorów, a następnie wszystkie pliki *.cpp i *.h są kompilowane i linkowane z dostarczoną biblioteką symulacyjną (kernelem - jądrem symulacji) i interfejsem użytkownika (ułatwia debugowanie, demonstracje oraz wsadowe uruchamianie symulacji). Proces budowy i uruchamiania symulacji najlepiej obrazuje poniższy schemat 11
2 Rys. 1. Schemat budowy i uruchamiania symulacji źródło: OMNeT++ User Manual v.4.2 OMNeT ++ ma obszerną bibliotekę klas C++, której można używać do implementacji modułów prostych. Posiadają one różne metody wykorzystywane do efektywnego modelowania symulacji: wysyłanie i odbieranie komunikatów: cmessage, cpacket dostęp do bram i parametrów modułu: cgate uzyskanie dostępu do innych modułów w sieci generowanie liczb losowych dostęp do parametrów modułu: cpar przechowywanie danych: cqueue zapisywanie statystyk do plików: coutvector zbieranie prostych statystyk: cstddev i cweightedstddev szacowanie rozkładów: clonghistogram, cdoublehistogram, cvarhistogram, cpsquare, cksplit Przykład Struktura poszczególnych plików symulacyjnych zostanie wyjaśniona na podstawie symulatora serwera bazodanowego (schemat sieci kolejkowej na rysunku 2). 12
3 żądanie od klienta CPU odpowiedź do klienta cache Dysk Rys. 2. Schemat sieci kolejkowej źródło: wykonanie własne Wykonany zostanie model symulacyjny klienta wysyłającego żądania do serwera, w skład którego wchodzi procesor, dysk oraz pamięć podręczna (cache). Schemat połączeń pomiędzy poszczególnymi elementami został przedstawiony na rysunku 3. serwer dysk klient CPU cache Rys. 3. Schemat połączeń źródło: wykonanie własne Częstotliwość, z jaką klienci będą wysyłali żądania jest rozkładem wykładniczym o wartości oczekiwanej 0,02s, a wielkość danych, które będą żądali jest rozkładem normalnym z wartością oczekiwaną μ=10000b i wariancją σ2=3333b. Przyjmiemy także, że żądanie trafia w pierwszej kolejności do procesora. Po otrzymaniu żądania demon serwera wykonujący obsługę żądania zużywa 527 ms na procesorze w celu przygotowania odpowiedzi. Jeśli dane nie znajdują się w pamięci podręcznej serwera demon pobiera dane z dysku (dla 80% żądań dane znajdują się w pamięci podręcznej). Natomiast jeżeli dane znajdują się w pamięci podręcznej, żądanie nie jest wysyłane do dysku, tylko powrotnie przesłane do kolejki procesora i odpowiedź do klienta. Dodatkowo przyjmijmy, że dysk ma być przeszukiwany w celu znalezienia danych w czasie 28ms, czas transmisji ma wynosić 410 μs na każde 4KB. Uzyskane dane w drodze powrotnej trafiają do pamięci podręcznej, a dalej do procesora. Po odnalezieniu danych procesor przesyła dane do klienta (koszt 13
4 transmisji na procesorze to 240 μs na każde 512B). Sieć, którą będzie połączony klient z serwerem ma nieskończoną przepustowość. Plik.ned Pliki *.ned były omówione w lekcji 1 i przygotowaliśmy już częściowy model topologii sieci dla tego zadania. Potrzebujemy jedynie uzupełnić go o podmoduł typu cache (i związane z nim bramy) oraz parametry, które potrzebujemy do zadania. simple Cache parameters: int procent_danych_w_pamieci; gates: inout oddo_procesora; inout oddo_dysku; Powyższe bramy należy uwzględnić w Symulatorze. Do poszczególnych modułów dopiszemy parametry wymagane do poprawnego działania programu, czyli wielkość przekazywanych żądań, czas wyszukiwania, czas transmisji, itd. simple Klient parameters: volatile int wielkosc_danych; volatile int czas_namyslu; gates: // simple Dysk_twardy parameters: int int gates: // simple Procesor 14
5 parameters: int int gates: // W sekcji connections można ustawić odpowiednią przepustowość danych (datarate) czyli szerokość pasma kanału. Przepustowość danych wyrażana jest w bitach na sekundę i jest używana do obliczenia czasu transmisji pakietu. Ponieważ mamy zaznaczone w zadaniu, że przepustowość między klientem a serwerem jest nieskończona, a taka właśnie jest domyślna, więc nie musimy zaznaczać tego w kodzie. network submodules: Host: Klient parameters: wielkosc_danych= lognormal(40,5,0); czas_namyslu= Komputer: connections: Host.oddo_klienta <--> Komputer.oddo_komputera; Pliki *.cpp i *.h Mamy już gotowy model modułów, więc teraz możemy przejść do ich implementowania w C++. W OMNeT++ to moduły proste odpowiadają obsługę zdarzeń zachodzących podczas symulacji. Typy modułów prostych tworzone są za pomocą klasy csimplemodule. W niej możemy zaimplementować następujące funkcje odpowiedzialne za odpowiednie działanie: void handlemessage (cmessage *msg)- funkcja, która będzie wykorzystywana dla każdej wiadomości, która przyjdzie do modułu (więcej informacji na temat tej funkcji opisane zostało w Lekcji5) void initiialize() wykonuje wszystkie funkcje inicjalizacji (czyta 15
6 parametry modułu, wprowadza zmienne, alokuje dynamiczne struktury danych). Wywołana jest przed przetworzeniem pierwszego zdarzenia. void activity() w niej definiujemy funkcje, dzięki którym można m.in. odbierać wiadomości (receive()), zawiesić działanie modułu na jakiś czas (wait()), wysłać wiadomość (send()), void finish() rejestruje statystyki po zakończeniu symulacji. Wywołana jest tylko w przypadku poprawnego zakończenia symulacji (bez błędów). Nie posiada dostępu do zmiennych lokalnych funkcji activity(). Zaczniemy od implementowania modułu Klient, który generuje żądania do procesora i ustawia je do kolejki. Zarówno funkcja handlemessage() jak i activity() są używane podczas przetwarzania i wpływają na zachowanie modelu. Wykorzystamy funkcje activity() oraz klasę cqueue, które zdefiniujemy w pliku nagłówkowym.h. CQueue działa jako kolejka. Można przechowywać w niej obiekty typów np. cmessage czy cpar. Jej podstawowe funkcje to insert(cobject *obj) służy do wprowadzania elementów do kolejki oraz pop(), która pobiera elementy z kolejki. Funkcja empty() informuje czy kolejka jest pusta. Możemy również sprawdzić liczbę obiektów w kolejce wykorzystując metodę length(). class Klient : public csimplemodule protected: virtual void initialize(); virtual void handlemessage(cmessage *msg); public: Klient() : csimplemodule(8192) cqueue kolejka; ; virtual void activity(); Klasa csimplemodule musi być zadeklarowana w OMNeT++ za pomocą komendy Define_Module(). Definicja modułu musi koniecznie znajdować się w pliku.cpp. W przypadku naszego zadania będzie to plik klient.cpp. Define_Module(Klient); Musimy również dołączyć plik klient.h i inne potrzebne pliki nagłówkowe za pomocą include. #include "klient.h" 16
7 Możemy przejść do inicjowania funkcji activity(). Funkcja activity() standardowo składa się z niekończącej się pętli. Możemy w niej wykorzystać m.in. metody takie jak wait(), receive() czy send(). Wiemy, że nasz klient generuje zadania i wysyła je do kolejki serwera, więc musimy zadeklarować tą kolejkę. void Klient::activity() kolejka.setname("kolejka"); for (;;) //... Jak już było wspomniane w lekcji 1 moduły w OMNeT++ komunikują się ze sobą za pomocą wysyłanych komunikatów należących do klasy cmessage. Nowe komunikaty tworzymy za pomocą operatora new i usuwamy przy pomocy delete. Odwołujemy się do nich przez wskaźnik (cmessage *wskaznik) oraz możemy nadać im nazwę (new cmessage("nazwa )). W pętli for zadeklarujemy, więc wskaźnik na wiadomość, którą chcemy wysłać do modułu Serwer. char nazwa[20]; strcpy(nazwa, "oddo_klienta"); cpacket *zadanie = new cpacket(nazwa); Za pomocą metody par() uzyskamy dostęp do parametrów modułu określonych w topologii modelu. Wykorzystamy również setkind do określenia rodzaju komunikatu. Będzie nam to przydatne do określania, od którego modułu przyszedł komunikat. int wielkosc_danych; wielkosc_danych=par ("wielkosc_danych"); zadanie->setbytelength(wielkosc_danych); zadanie->setkind(1); ev << "Klient: Wielkosc wygenerowanego zadania: " << wielkosc_danych << endl; ev << "Klient: Rodzaj komuniaktu od klienta: " << zadanie->getkind () << endl; Dzięki ev możemy wyświetlać w oknie głównym informacje na temat danych 17
8 wyjściowych, co pozwoli nam śledzić wartości pojawiające się podczas symulacji. Teraz możemy już wysłać wiadomość do serwera. Wysyłanie wiadomości odbywa się przy pomocy funkcji send(cmessage *msg, nazwa_bramy ). Musimy również pamiętać o tym, że zadania mają trafiać do kolejki. Bramy dwukierunkowe mają dodatkowo oznaczenie rodzaju portu wejściowy lub wyjściowy ( nazwa$i, nazwa$o ). double czas_namyslu;... send(zadanie, "oddo_klienta$o"); czas_namyslu=par ("czas_namyslu"); waitandenqueue((double) czas_namyslu, &kolejka); kolejka.clear (); Kolej na zaimplementowanie podmodułów Serwera: Procesor, Cache oraz Dysk_twardy. Pliki nagłówkowe tworzymy analogicznie jak dla klient.h: deklarujemy klasy Procesor, Cache, Dysk_twardy za pomocą klasy csimplemodule oraz potrzebne do symulacji funkcje. Funkcja handlemessage jest wywoływana za każdym razem gdy przybywa wiadomość. W zależności od bramki do której trafia wiadomość handlemessage wywołuje różne funkcje obsługi *Msg do daleszej obróbki wiadomości. Dla procesora plik procesor.h będzie wyglądał następująco: #ifndef PROCESOR_H #define PROCESOR_H #include <omnetpp.h> class Procesor : public csimplemodule protected: virtual void initialize(); virtual void handlemessage(cmessage *msg); public: Procesor() : csimplemodule(32768) cqueue kolejka; cpacket *zadanie; virtual void activity(); ; virtual void obsluz_zad_na_procesorze(cpacket *); virtual void wysyla_do_klient(cpacket *); 18
9 #endif Pliki cachek.h oraz dysk_twardy.h będą różniły się oczywiście wykorzystanymi funkcjami: class Cache : public csimplemodule public: Cache() : csimplemodule(32768) virtual void activity(); ; virtual void obsluz_zad_na_cache(cpacket *); virtual void wyslij_do_dysku(cpacket *); class Dysk_twardy : public csimplemodule public: Dysk_twardy() : csimplemodule(32768) ; virtual void activity(); virtual void wysylanie_do_cache(cpacket *); Następnie musimy w plikach *.cpp zadeklarować klasy csimplemodule za pomocą komendy Define_Module(nazwa_modułu). Ponieważ żądanie od klienta trafia najpierw do procesora, więc omówiony zostanie ten moduł jako pierwszy. Funkcję activity() wykorzystamy do sprawdzenia czy w kolejce są już jakieś zadania do obsłużenia. Jeśli kolejka jest pusta to zadanie jest od razu obsłużone, natomiast w przeciwnym wypadku obsłużymy zadanie z kolejki. Do odbioru wiadomości w funkcji activity() służy funkcja receive(). Za pomocą kind() musimy sprawdzić czy zadanie przyszło od klienta, czy od dysku i wywołać odpowiednią funkcję. Możemy to sprawdzić, ponieważ w każdym module ustawiamy rodzaj wiadomości za pomocą setkind(). Wiadomość od klienta ustawiliśmy na 1, wiadomość od procesora do pamięci podręcznej ustawimy na 2, od cache do dysku na 3, od dysku do cache 4, od cache do procesora na 5, a odpowiedź od procesora do klienta na 6. 19
10 Teraz nie mamy już problemu ze sprawdzeniem, który moduł przysłał zadanie. Define_Module(Procesor); void Procesor::activity() kolejka.setname("kolejka"); for (;;) if (kolejka.empty()) zadanie = (cpacket *) receive(); else zadanie = (cpacket *)kolejka.pop(); if (zadanie->getkind()==1) //od klienta obsluz_zad_na_procesorze(zadanie); if (zadanie->getkind()==5) //od pamięci podręcznej wysyla_do_klient(zadanie); Jeśli żądanie zostało przysłane od Klienta to musimy je obsłużyć i wysłać przez odpowiednią bramę do Cache. void Procesor::obsluz_zad_na_procesorze(cPacket *zadanie) char nazwa [15]; double czas_wyszukiwania_danych = (double) par("czas_wyszukiwania_danych") ; waitandenqueue(czas_wyszukiwania_danych, &kolejka); ev << "procesor: Wyslanie zadania do cache" << endl; zadanie->setkind(2); ev << "procesor: Rodzaj komuniaktu wsylanego do cache: " << zadanie->getkind () << endl; send (zadanie, "oddo_cache$o"); Funkcja ta nie wymaga wyjaśnień, ponieważ wykorzystaliśmy metody już wcześniej omawiane. Podobnie jest w przypadku funkcji wysyłającej odpowiedź do klienta. void Procesor::wysyla_do_klient(cPacket *zadanie) 20
11 char nazwa [15]; double czas_transmisji_do_klienta; czas_transmisji_do_klienta= (double) par ("czas_transmisji_do_klienta")* ( zadanie-> getbytelength ()/512); if (czas_transmisji_do_klienta>0 ) waitandenqueue(czas_transmisji_do_klienta, &kolejka); ev << "procesor: Wysylanie odpowiedzi do klienta" << endl; zadanie->setkind(6); send (zadanie, "oddo_klienta$o"); Po wysłaniu żądania do Cache musimy sprawdzić czy znajdują się tam poszukiwane dane (z treści zadania wiemy, że dla 80% żądań dane znajdują się w pamięci podręcznej). Będziemy losowali jakaś wartość z określonego zakresu liczb, w którym 80% liczb będzie odpowiadało znalezieniu danych. Jeśli wystąpi liczba z tych 20% to wysłany zostanie komunikat do dysku i tam zostanie obsłużone żądanie, w przeciwnym wypadku wysłany zostanie komunikat powrotem do procesora. Define_Module( Cache ); void Cache::activity() double procent_danych_w_pamieci; for (;;) zadanie = (cpacket *) receive(); //jeśli wiadomość przyszła od procesora if (zadanie->getkind()==2) procent_danych_w_pamieci= rand () %10 +1; if (procent_danych_w_pamieci <= 8) obsluz_zad_na_cache(zadanie); else wyslij_do_dysku(zadanie); //jęsli wiadomość przyszła od dysku if (zadanie->getkind()==4) obsluz_zad_na_cache(zadanie); Funkcje wysyłania komunikatów do dysku oraz procesora są analogiczne do funkcji występujących w module Procesor. 21
12 Pozostaje nam już tylko napisane pliku konfiguracyjnego. Plik konfiguracyjny Plik omnetpp.ini przeznaczony jest do umieszczania w nim wartości parametrów dla modułów oraz ustala się w nim przebieg całej symulacji. Plik ten czytany jest przez program przy starcie symulacji i składa się z sekcji, których nazwy zapisuje się w kwadratowych nawiasach: [General] w tej sekcji mogą znajdować się takie opcje jak dynamiczne ładowanie modułów (preload-ned-files=*ned), domyślna sieć dla uruchamianej symulacji (network=nazwa_sieci), limit czasu symulacji (sim-time-limit = czas_symulacyjny), limit rzeczywistego czasu działania programu (CPU-time-limit=rzeczywisty_czas), nazwy plików z danymi statystycznymi dla narzędzi scalars i plove (output-vectorfile = plik.vec, output-scalar-file = plik.sca). W przypadku naszego zadania sekcja ta wyglądać, więc będzie tak: [General] network = Symulator [Config nazwa] w tej sekcji można umieścić dowolnie nazwane konfiguracje symulacyjne. Przykładem takich danych mogą być zmienne wykorzystywane w symulacji: [Config Lekcja2] Lekcja2.Komputer.cpu.czas_wyszukiwania_danych= Lekcja2.Komputer.cpu.czas_transmisji_do_klienta= Lekcja2.Komputer.dysk.czas_transmisji = Lekcja2.Klient1.wielkosc_danych = normal(10000,57.73,0) Lekcja2.Klient1.czas_namyslu = exponential(0.02) Lekcja2.Klient1.iden=1 W wersji 4.2 Omnet a++ dostępny jest obok widoku source z zawartością pliku omnetpp.ini formularz, w którym zamiast wpisywania kolejnych linii kodu możemy wypełnić dany formularz konfiguracyjny. Widok tego formularza przedstawiony został na rys 4. Ponadto (w wersji 4.2)nie jest konieczna sekcja parameters, gdyż wszystkie parametry symulacyjne ujęte zostały w sekcjach parameters poszczególnych modułów ( w plikach.ned). Większość parametrów ujętych jest w pliku serwer.ned module Serwer 22
13 @display("bgb=351,230"); gates: inout oddo_komputera; submodules: cpu: Procesor parameters: czas_wyszukiwania_danych= 0.527us; czas_transmisji_do_klienta= dysk: Dysk_twardy parameters: czas_transmisji = 14us; czas_przeszukiwania_i_oczekiwania= bufor: Cache parameters: procent_danych_w_pamieci= uniform(1, connections: oddo_komputera <--> cpu.oddo_klienta; cpu.oddo_cache <--> bufor.oddo_procesora; bufor.oddo_dysku <--> dysk.oddo_cache; Rys. 4. Formularz konfiguracyjny źródło: wykonanie własne 23
14 Parametry losowe rozkłady Numeryczne parametry mogą zawierać losowe wartości o różnych rozkładach. Takie parametry zwracają różne wartości, za każdym razem, gdy są inicjowane, gdy są czytane z modułu prostego. Parametry takie mogą być deklarowane jako const, jeśli chcemy, aby wartość losowa została im przypisana tylko raz na początku. Generatory liczb losowych (RNGs) mogą wykorzystywać rozkłady dostarczone przez OMNeT++. Funkcja Dystrybucje ciągłe Opis uniform (a, b, rng=0) Rozkład jednostajny w przedziale[a,b ) exponential (mean, rng=0) Rozkład wykładniczy z nadanym parametrem mean normal (mean, stddev, Rozkład normalny z nadanym rng=0) parametrem mean i standardowym odchyleniem stddev truncnormal (mean,stddev, Rozkład normalny skrócony do rng=0) wartości nieujemnych gamma_d (alpha, beta, Rozkład gamma z parametrami alfa > rng=0) 0, beta >0 beta (alphal, alpha2, Rozkład beta z parametrami alfa1>0, rng=0) alfa2 >0 Erlang_k (k, mean, rng=0) Rozkład erlang stopnia k>0 i nadaną wartością średnią chi_square (k, rng=0) Rozkład chi-square ze stopniem k>0 student_t (i, rng=0) Rozkład student-t ze stopniem i>0 Cauchy (a, b, rng=0) Rozkład cauchy z parametrami a,b gdzie b>0 triang (a, b, c, rng=0) Rozkład trójkątny z paramertami a< = b<=c, a!=c longnormal (m, s, rng=0) Rozkład logarytmiczno-normalny z wartością średnią m i odchyleniem s>0 weibull (a, b, rng=0) Rozkład weibull z parametrami pareto_shifted (a, b, c, rng=0) a>0,b>0 Uogólniony rozkład Pareto z parametrami a, b i przesunięciem c Dystrybucje nieciągłe intuniform (a, b, rng=0) Jednolita liczba całkowita od a.,b bernoulli (p, mg=0) Rozkład próby Bernoulliego z 24
15 binomial (n, p, rng=0) geometric (p, rng=0) negbinomial (n, p, rng=0) poisson (lambda, mg=0) prawdopodobieństwem 0<=p<=1 Rozkład binomial z parametrami n>=0 i prawdopodobieństwem 0<=p<=1 Rozkład geometryczny z prawdopodobieństwem 0<=p<=1 Rozkład binomial z parametrami n>0 i prawdopodobieństwem 0<=p<=1 Rozkład poisson z parametrem lambda Jeśli nie wyszczególnimy opcjonalnego argumentu rng, funkcje użyją generatora liczb losowych 0. Uruchamianie symulacji Skoro mamy już gotowe wszystkie potrzebne do symulacji pliki możemy przystąpić do tworzenia pliku wykonywalnego. Przed przystąpieniem do kompilacji należy skopiować do jednego folderu np. Lekcja2 (nazwa folderu) wszystkie pliki modelu symulacyjnego: pliki *.ned, pliki *.cpp, pliki *.h oraz plik sterujący omnetpp.ini. Kompilację i symulację możemy uruchomić zarówno w konsoli (mingwenv.cmd) lub w środowisku graficznym. Są dwa sposoby uruchomienia symulacji: w trybie linii poleceń Cmdenv w trybie graficznym - Tkenv Tryb linii poleceń nie posiada wizualizacji, więc informacje z przebiegu symulacji są jedynie drukowane na ekran lub zapisane do pliku. W tym trybie mamy do wyboru tylko dwie możliwości uruchamiania: normal (non-expres) wszystkie informacje są wypisywane na ekran w trakcie symulacji express nadaje się do dłuższych symulacji, może wypisywać zbiorcze informacje tylko co pewien czas lub po zakończeniu symulacji. Aby korzystać z tego trybu uruchamiania w pliku omnetpp.ini powinna znaleźć się sekcja [Cmdenv]. Jej podstawowe opcje to: express-mode = yes przeznaczone dla długich symulacji, nie wypisuje komunikatów na ekran, domyślnie tryb jest ustawiony na normal-mode module-messages = yes - tylko w trybie normal, wypisuje na ekran wszystkie komunikaty z modułów event-banners = yes - tylko w trybie normal, wypisuje informacje o zajściu zdarzenia status-frequency= tylko w trybie express, wypisuje stan symulacji co określoną liczbę zdarzeń 25
16 message-trace=no - wypisuje informacje o każdym zdarzeniu wysyłania komunikatu (domyślnie wyłączone) Interfejs Tkenv jest graficznym okienkowym interfejsem użytkownika. Korzystając z tego trybu jest możliwość szczegółowej wizualizacji przebiegu całej symulacji, oraz możliwość oglądania statystyk i wektorów wyjściowych podczas symulacji oraz po jes zakończeniu. Ze względu na możliwość przeglądania każdego modułu (także każdego w osobnym oknie) można z łatwością zmieniać im parametry. W pliku omnetpp.ini należy umieścić sekcje [Tkenv]. Najważniejsza opcja tej sekcji to default-run=1. Oznacza domyślny wariant przy uruchamianiu symulacji w przypadku, gdy jest więcej niż jeden wariant. Pozostałe opcje są dostępne w oknie głównym symulatora. Ze względu na możliwość obserwacji przebiegu symulacji uruchomimy nasz przykład w trybie graficznym. Przy starcie program najpierw czyta plik konfiguracyjny omnetpp.ini. Po uruchomieniu tego pliku zobaczymy gotowy program do przeprowadzenia symulacji z trzema okienkami: Rys. 5. TKEN - Okno główne symulacji 26
17 Rys. 6. Okno modułu Symulator Rys. 7. Okno modułu Komputer 27
18 Naciśnij przycisk Run na pasku narzędzi lub F5 w celu uruchomienia symulacji. Powinieneś zobaczyć wysyłanie przez klienta komunikatu do serwera. Rys. 8. Wysyłanie komunikatów źródło: wykonanie własne W głównym oknie pokazany jest czas symulacji. Jest to wirtualny czas, który nie ma nic wspólnego z aktualnym czasem (czy zegarem ściennym). Rys. 8. Linia czasu symulacyjnego źródło: wykonanie własne Klikając na punkt na linii czasu wyświetlone zostaną parametry komunikatów, np. nazwa, rodzaj (getkind), długość, czas wysłania oraz czas powrotu komunikatu. Możesz zwalniać animację albo przyspieszać za pomocą suwaka znajdującego się na górze okna grafiki. W oknie głównym symulatora masz do wyboru jeden z kilku trybów działania: Możesz zatrzymać symulację przez wciśnięcie F8 (równoważne przyciskowi STOP na pasku narzędzi), oglądać symulację w pojedynczych krokach (F4 lub STEP), włączyć tryb bez animacji (F6 lub FAST) lub tryb ekspresowy (F7 lub 28
19 EXPRES), który zupełnie wyłącza cechy śledzenia dla maksymalnej szybkości. Opcja until powoduje ze symulator działa do ustawionej (w pliku omnetpp.ini) liczby zdarzeń lub czasu symulacyjnego w wybranym trybie normal, fast lub Express. Na pasku informacyjnym znajduje się (wyliczając od lewego górnego pola) aktualny wariant symulacji i sieć symulacyjna, aktualne zdarzenie w przebiegu symulacji, aktualny czas symulacji oraz obiekt, którego będzie dotyczyć następne zdarzenie, liczba komunikatów na stosie zdarzeń przyszłych, liczba komunikatów utworzonych od początku symulacji, liczba zdarzenia 1 sekundę czasu rzeczywistego, liczbę sekund czasu symulacji w stosunku do czasu rzeczywistego oraz liczbę zdarzeń na 1 sekundę czasu symulacyjnego. Rys. 9. Pasek informacyjny okna głównego Teknv źródło: wykonanie własne Możesz wyjść z programu symulacji przez kliknięcie na Close albo wybieranie File Exit. Tworzenie własnej klasy dziedziczącej po cpacket Rozróżnianie źródła wiadomości w modułach może być zrealizowane w bardziej przejrzysty sposób niż zostało to zaprezentowane. W takim wypadku należy stworzyć plik z rozszerzeniem *.msg zawierający dodatkowe atrybuty przenoszonej wiadomości. Plik taki tworzy się poprzez kliknięcie prawym przyciskiem na Project Explorer w bieżącym projekcie, wybranie nowego pliku Message Definition (msg), któremu następnie należy następnie nadać nazwę (np. MyPacket.msg) i wybrać w kreatorze Empty Message File. W utworzonym pliku dodajemy zmienne adresu źródłowego oraz docelowego. packet MyPacket int srcaddress; int destaddress; ; Po zbudowaniu projektu automatycznie torzone są pliki: MyPacket_m.cc MyPacket_m.h Z nowej klasy można skorzystać w następujący sposób: 29
20 #include "MyPacket_m.h"... MyPacket *pkt = new MyPacket("pkt"); pkt->setsrcaddress(localaddr); pkt->setdestaddress(1);... int dest = pkt->getdestaddress();... Adresy źródłowe i docelowe pozwalają na rozpoznawanie komunikatów i przesyłanie ich niezależnie od nadanych im kind'ów. Sieć z ograniczoną przepustowością łącza Ograniczenie przepustowości łącza można zrealizować poprzez zdefiniowanie kanału. Channel Ethernet extends ned.dataratechannel Datarate = 100Mbps; Następnie należy określić, które połączenia w modelowanej sieci mają być ograniczone parametrami zdefiniowanego kanału. W celu prawidłowego przebiegu transmisji przy zmniejszonej przepustowości łącza należy utworzyć dodatkowy moduł prosty Siec.ned, który będzie odpowiedzialny za sprawdzanie czy łącze, przez które ma zostać przesłana wiadomość, jest wolne. W utworzonym module deklarujemy dwie bramy: input wejscie; output wyjscie; Sprawdzanie zajętości kanału odbywa się w funkcji activity()w pliku siec.cc w następujący sposób: cchannel *channel = gate("wyjscie")->gettransmissionchannel(); simtime_t txfinishtime = channel->gettransmissionfinishtime(); Zmienna txfinishtime zawiera informację o symulacyjnym czasie zakończenia bieżącej transmisji. Należy zatem sprawdzić, czy ten czas jest mniejszy od aktualnego czasu symulacji. Jeśli tak jest, to znaczy, że kanał jest wolny i zadanie może zostać wysłane. W przeciwnym wypadku należy odczekać różnicę czasu, a następnie przesłać zadanie. Podczas oczekiwania na zwolnienie kanału, zadania, które przychodzą do modułu, są umieszczane w kolejce. if (txfinishtime <= simtime()) 30
21 send(zadanie,"wyjscie"); else waitandenqueue(txfinishtime-simtime(),&kolejka); send(zadanie,"wyjscie"); Zadanie do samodzielnego przygotowania: Wykonaj model symulacyjny sieci kolejkowej, w której 2 klientów wysyła żądania do serwera, w skład którego wchodzi procesor, pamięć podręczna cache oraz dwa dyski. Schemat sieci został przedstawiony na rysunku 10. serwer Klient 1 dysk1 Klient 2 CPU cache dysk2 Rys. 10. Schemat połączeń w sieci Częstotliwość, z jaką klienci będą wysyłali żądania jest rozkładem wykładniczym o wartości oczekiwanej 0,2s, a wielkość danych, które będą żądali jest rozkładem normalnym z wartością oczekiwaną μ=5000b i wariancją σ2=333b. Proszę nie dopuścić do wysyłania żądań o wielkości mniejszej niż 200B. Załóżmy, że żądanie trafia w pierwszej kolejności do procesora, a następnie do pamięci cache i ewentualnie dalej do dysku (proszę pamiętać o zaimplementowaniu kolejki w dysku). Procesor obsługując żądania zużywa 527 μs na wyszukanie danych oraz 240 μs na transmisję każdych 512 B danych do klienta. Prawdopodobieństwo znalezienia danych w pamięci cache wynosi 70%. Jeśli żądany plik nie znajduje się w pamięci cache to żądanie idzie do pierwszego dysku z prawdopodobieństwem 30% lub drugiego dysku z prawdopodobieństwem 70%. Przyjmijmy również, że dysk ma być przeszukiwany w celu znalezienia danych w czasie 5ms, czas transmisji danych przez dysk wynosi 410 μs na każde 4KB 31
22 danych. Sieć, którą będzie połączony klient z serwerem ma przepustowość 100 Mb/s. 32
Lekcja 5. Funkcje handlemessage() i initialize(), konstruktor i destruktor
Lekcja 5. Funkcje handlemessage() i initialize(), konstruktor i destruktor W lekcji 5 objaśniane jest działanie i zastosowanie funkcji handlemessage() oraz initialize(). Omówiony zostanie również konstruktor
Lekcja 4. Wektory bram i wektory modułów
Lekcja 4. Wektory bram i wektory modułów W lekcji 4 wyjaśnione zostają zagadnienia korzystania z wektorów modułów oraz wektorów bram ułatwiających budowę dużych symulacji. Bardzo często zdarza się, że
Lekcja 1. Środowisko OMNeT++
Lekcja 1. Środowisko OMNeT++ W przygotowanym materiale zostanie omówione środowisko OMNeT++, pokazane zostanie, w jaki sposób tworzyć modele topologii. Język topologii NED Model OMNeT ++ składa się z hierarchicznie
Lekcja 3. Statystyki narzędzie Result Analysis
Lekcja 3. Statystyki narzędzie Result Analysis Lekcja 3 ma na celu zapoznanie czytelnika z narzędziami do prowadzenia statystyk i analizowania rezultatów symulacji. Objaśnione zostaną zagadnienia związane
Ćwiczenie 1. Kolejki IBM Message Queue (MQ)
Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając
WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.
WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy
PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec
PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.
Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą
Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR
Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać
IIIIIIIIIIIIIIIMMIMMIII
IIIIIIIIIIIIIIIMMIMMIII O programie Program Itelix itender Manager przeznaczony jest do zarządzania zapytaniami ofertowymi przesyłanymi za pomocą poczty elektronicznej przez firmy korzystające z systemu
Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller
Dokumentacja systemu NTP rekrut Autor: Sławomir Miller 1 Spis treści: 1. Wstęp 1.1 Wprowadzenie 1.2 Zakres dokumentu 2. Instalacja 2.1 Wymagania systemowe 2.2 Początek 2.3 Prawa dostępu 2.4 Etapy instalacji
Windows 10 - Jak uruchomić system w trybie
1 (Pobrane z slow7.pl) Windows 10 - Jak uruchomić system w trybie awaryjnym? Najprostszym ze sposobów wymuszenia na systemie przejścia do trybu awaryjnego jest wybranie Start a następnie Zasilanie i z
Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
VComNet Podręcznik użytkownika. VComNet. Podręcznik użytkownika Wstęp
VComNet Podręcznik użytkownika Wstęp VComNet przeznaczony jest do wdrażania aplikacji komunikacyjnych uruchomionych na komputerze PC z systemem Windows z urządzeniami połączonymi poprzez RS485 (RS422/RS232)
PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl
PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl Do połączenia z serwerem A&B w celu załadowania lub pobrania materiałów można wykorzystać dowolny program typu "klient FTP". Jeżeli nie
Wprowadzenie do środowiska Qt Creator
1.Instalacja środowiska Qt Creator Qt Creator jest wygodnym środowiskiem programistycznym przeznaczonym do tworzenia projektów, czyli aplikacji zarówno konsolowych, jak i okienkowych z wykorzystaniem biblioteki
Budowanie listy Odbiorców
Budowanie listy Odbiorców W tym przewodniku dowiesz się jak Skutecznie budować listę Odbiorców, korzystając z narzędzi dostępnych w Twoim koncie oraz zarządzać ustawieniami subskrypcji. Budowanie listy
MentorGraphics ModelSim
MentorGraphics ModelSim 1. Konfiguracja programu Wszelkie zmiany parametrów systemu symulacji dokonywane są w menu Tools -> Edit Preferences... Wyniki ustawień należy zapisać w skrypcie startowym systemu
Instrukcja konfiguracji funkcji skanowania
Instrukcja konfiguracji funkcji skanowania WorkCentre M123/M128 WorkCentre Pro 123/128 701P42171_PL 2004. Wszystkie prawa zastrzeżone. Rozpowszechnianie bez zezwolenia przedstawionych materiałów i informacji
Materiały dodatkowe. Simulink Real-Time
Katedra Inżynierii Systemów Sterowania Materiały dodatkowe Simulink Real-Time Opracowali: mgr inż. Tomasz Karla Data: Listopad, 2016 r. Wstęp Simulink Real-Time jest środowiskiem pozwalającym na tworzenie
Programowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Sieci Komputerowe 2 / Ćwiczenia 2
Tematyka Sieci Komputerowe 2 / Ćwiczenia 2 Opracował: Konrad Kawecki na podstawie materiałów: http://www.isi.edu/nsnam/ns/tutorial/index.html Na ćwiczeniach zapoznamy się z symulatorem
NS-2. Krzysztof Rusek. 26 kwietnia 2010
NS-2 Krzysztof Rusek 26 kwietnia 2010 1 Opis ćwiczenia Symulator ns-2 jest potężnym narzędziem, szeroko stosowanym w telekomunikacji. Ćwiczenie ma na cele przedstawić podstawy symulatora oraz symulacji
Przewodnik... Budowanie listy Odbiorców
Przewodnik... Budowanie listy Odbiorców W tym przewodniku dowiesz się jak Skutecznie budować listę Odbiorców, korzystając z narzędzi dostępnych w Twoim koncie oraz zarządzać ustawieniami subskrypcji. Każda
Konfiguracja konta pocztowego w Thunderbird
Konfiguracja konta pocztowego w Thunderbird Sygnity SA 2013 Wszystkie prawa zastrzeżone. Znaki firmowe oraz towarowe użyte w opracowaniu są prawną własnością ich właścicieli. Autor dokumentacji: Magdalena
Włączanie/wyłączanie paska menu
Włączanie/wyłączanie paska menu Po zainstalowaniu przeglądarki Internet Eksplorer oraz Firefox domyślnie górny pasek menu jest wyłączony. Czasem warto go włączyć aby mieć szybszy dostęp do narzędzi. Po
Program dla praktyki lekarskiej
Program dla praktyki lekarskiej ErLab Instrukcja konfiguracji i obsługi Spis Treści 1. Wstęp... 2 2. Konfiguracja... 3 2.1. Serwer... 3 2.2. Laboratorium... 3 2.3. Punkt pobrań... 4 3. Wysyłanie skierowania...
5.4. Tworzymy formularze
5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania
Klient poczty elektronicznej - Thunderbird
Klient poczty elektronicznej - Thunderbird Wstęp Wstęp Klient poczty elektronicznej, to program który umożliwia korzystanie z poczty bez konieczności logowania się na stronie internetowej. Za jego pomocą
Instrukcja EQU Kantech
Instrukcja EQU Kantech Pobranie konfiguracji Konfiguracje Kantecha do IFTER EQU pobieramy za pomocą opcji we właściwościach integracji Kantech wskazując lokalizacje katalogu..\data\kantech. Po wskazaniu
Instrukcja. importu dokumentów. z programu Fakt do programu Płatnik. oraz. przesyłania danych do ZUS. przy pomocy programu Płatnik
Fakt Dystrybucja, Instrukcja z dnia 06.2010 Instrukcja importu dokumentów z programu Fakt do programu Płatnik oraz przesyłania danych do ZUS przy pomocy programu Płatnik 1/22 1 Eksport danych z Programu
Modelowanie obiektowe - Ćw. 1.
1 Modelowanie obiektowe - Ćw. 1. Treść zajęć: Zapoznanie z podstawowymi funkcjami programu Enterprise Architect (tworzenie nowego projektu, korzystanie z podstawowych narzędzi programu itp.). Enterprise
1 Moduł E-mail. 1.1 Konfigurowanie Modułu E-mail
1 Moduł E-mail Moduł E-mail daje użytkownikowi Systemu możliwość wysyłania wiadomości e-mail poprzez istniejące konto SMTP. System Vision może używać go do wysyłania informacji o zdefiniowanych w jednostce
Laboratorium 1 - Programowanie proceduralne i obiektowe
Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?
Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl
Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z
Kopiowanie przy użyciu szyby skanera. 1 Umieść oryginalny dokument na szybie skanera stroną zadrukowaną skierowaną w dół, w lewym, górnym rogu.
Skrócony opis Kopiowanie Kopiowanie Szybkie kopiowanie 3 Naciśnij przycisk na panelu operacyjnym 4 Po umieszczeniu dokumentu na szybie skanera dotknij opcji Zakończ zadanie, aby powrócić do ekranu głównego.
1. Proszę wejść na stronę: poczta.home.pl i zalogować się do nowej skrzynki e-mail za pomocą otrzymanych danych.
1. Proszę wejść na stronę: poczta.home.pl i zalogować się do nowej skrzynki e-mail za pomocą otrzymanych danych. 2. Po poprawnym zalogowaniu się, przejdziemy do nowej skrzynki. Ważną informacją jest zajętość
Aplikacje WWW - laboratorium
Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,
Archiwum DG 2016 PL-SOFT
2 1 to kompleksowe narzędzie ochrony Twoich danych genealogicznych utworzonych w programie Drzewo genealogiczne. Aplikacja nie wymaga instalacji na komputerze i jest uruchamiana bezpośrednio z dysku USB.
Układy VLSI Bramki 1.0
Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie
Platforma e-learningowa
Platforma e-learningowa skrócona instrukcja obsługi. Aby uruchomić platformę e-learningową, należy otworzyć przeglądarkę internetową, a następnie wpisać adres http://aok.learnway.eu/ - wyświetlony zostanie
SZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4
SZYBKI START Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2 Szyfrowanie/odszyfrowanie danych 4 Szyfrowanie/odszyfrowanie tekstu 6 Tworzenie nowego połączenia w celu
Informatyka II. Laboratorium Aplikacja okienkowa
Informatyka II Laboratorium Aplikacja okienkowa Założenia Program będzie obliczał obwód oraz pole trójkąta na podstawie podanych zmiennych. Użytkownik będzie poproszony o podanie długości boków trójkąta.
Przydziały (limity) pojemności dyskowej
Przydziały (limity) pojemności dyskowej W dużych sieciach lokalnych bądź w przypadku, gdy z danego komputera korzysta kilku różnych użytkowników, administrator może zechcieć mieć kontrolę nad przydziałem
BACKUP BAZ DANYCH FIREBIRD
BACKUP BAZ DANYCH FIREBIRD SPIS TREŚCI Informacje ogólne... 2 Tworzenie projektu... 2 Krok 1: Informacje podstawowe... 2 Krok 2: Dane... 3 Backup bazy umieszczonej na serwerze... 3 Bezpośredni backup pliku
Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6
Zawartość Wstęp... 1 Instalacja... 2 Konfiguracja... 2 Uruchomienie i praca z raportem... 6 Wstęp Rozwiązanie przygotowane z myślą o użytkownikach którzy potrzebują narzędzie do podziału, rozkładu, rozbiórki
Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV
Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium
Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.
Część XVII C++ Funkcje Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. 2 3 Tworzymy deklarację i definicję funkcji o nazwie pobierzln() Funkcja
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Laboratorium 7 Blog: dodawanie i edycja wpisów
Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą
Deklaracja struktury w C++
Struktury to złożone typy danych pozwalające przechowywać różne informacje. Za pomocą struktur możliwe jest grupowanie wielu zmiennych o różnych typach w jeden obiekt. Strukturę można nazywać obiektem
Pracownia internetowa w każdej szkole (edycja Jesień 2007)
Instrukcja numer D1/05_03/Z Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 Ręczne zakładanie kont użytkowników (D1) Jak ręcznie założyć konto w systemie
Pracownia internetowa w każdej szkole (edycja Jesień 2007)
Instrukcja numer D1/04_01/Z Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 (D1) Tworzenie kopii zapasowej ustawień systemowych serwera - Zadania do wykonania
Poradnik korzystania z usługi FTP
Poradnik korzystania z usługi FTP 1. Wstęp FTP (ang. File Transfer Protocol) to usługa pozwalająca na wymianę plików poprzez Internet w układzie klient-serwer. Po podłączeniu się do serwera za pomocą loginu
Instrukcja obsługi programu CMS Dla rejestratorów HANBANG
Instrukcja obsługi programu CMS Dla rejestratorów HANBANG 1. Wymagania sprzętowe: Minimalne wymagania sprzętowe: System operacyjny: Windows Serwer 2003 Standard Edition SP2 Baza danych: Mysql5.0 Procesor:
Podstawy Programowania 2
Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu
Tworzenie prezentacji w MS PowerPoint
Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje
Warsztaty AVR. Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR. Dariusz Wika
Warsztaty AVR Instalacja i konfiguracja środowiska Eclipse dla mikrokontrolerów AVR Dariusz Wika 1.Krótki wstęp: Eclipse to rozbudowane środowisko programistyczne, które dzięki możliwości instalowania
1. Opis. 2. Wymagania sprzętowe:
1. Opis Aplikacja ARSOFT-WZ2 umożliwia konfigurację, wizualizację i rejestrację danych pomiarowych urządzeń produkcji APAR wyposażonych w interfejs komunikacyjny RS232/485 oraz protokół MODBUS-RTU. Aktualny
Wyszukiwanie plików w systemie Windows
1 (Pobrane z slow7.pl) Bardzo często pracując na komputerze prędzej czy później łapiemy się na pytaniu - Gdzie jest ten plik? Zapisujemy i pobieramy masę plików i w nawale pracy pewne czynności są wykonywane
Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE
Katedra Elektroniki Akademia Górniczo-Hutnicza w Krakowie Projektowanie układów VLSI-ASIC techniką od ogółu do szczegółu (top-down) przy użyciu pakietu CADENCE opis układu w Verilog, kompilacja i symulacja
D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44
Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne
ROZDZIAŁ 1: Instrukcja obsługi oprogramowania VMS
ROZDZIAŁ 1: Instrukcja obsługi oprogramowania VMS 1. Instalacja oprogramowania: Oprogramowanie VMS składa się z dwóch częśći - VMS serwer oraz VMS klient.. Przy instalacji mozna wybrać, którą funkcję chcesz
WPROWADZENIE DO ŚRODOWISKA SCICOS
Politechnika Gdańska Wydział Elektrotechniki i Automatyki WPROWADZENIE DO ŚRODOWISKA SCICOS Materiały pomocnicze do ćwiczeń laboratoryjnych Oryginał: Modeling and Simulation in Scilab/Scicos Stephen L.
Tomasz Greszata - Koszalin
T: Konfiguracja usługi HTTP w systemie Windows. Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołów HTTP oraz HTTPS i oprogramowania IIS (ang. Internet Information Services).
Nieskonfigurowana, pusta konsola MMC
Konsola MMC Aby maksymalnie, jak to tylko możliwe, ułatwić administrowanie systemem operacyjnym oraz aplikacjami i usługami w systemie Windows XP, wszystkie niezbędne czynności administracyjne można wykonać
procertum CLIDE Client 2.1 wersja 1.0.2
Instrukcja obsługi kwalifikowany znacznik czasu do użycia z procertum SmartSign 3.2 procertum CLIDE Client 2.1 wersja 1.0.2 Spis treści 1. INSTALACJA OPROGRAMOWANIA... 3 2. URUCHOMIENIE APLIKACJI... 8
Generatory pomocy multimedialnych
Generatory pomocy multimedialnych Storna 1 Instalacja generatorów oraz praca z generatorem puzzli, memory oraz grupowania.* *Projekt jest całkowicie finansowany z programu Kapitał Ludzki, III Wysoka jakoś
Kancelaria 2.26 zmiany w programie czerwiec 2014
Aktualizacja musi odbyć się przy zamkniętych programach na wszystkich końcówkach. Przed zainstalowaniem nowej wersji programu należy wykonać kopię zapasową bazy danych oraz całego folderu, w którym znajduje
Zadanie 1. Stosowanie stylów
Zadanie 1. Stosowanie stylów Styl to zestaw elementów formatowania określających wygląd: tekstu atrybuty czcionki (tzw. styl znaku), akapitów np. wyrównanie tekstu, odstępy między wierszami, wcięcia, a
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM
Podręczna pomoc Microsoft Power Point 2007
Podręczna pomoc Microsoft Power Point 2007 Animacja (przejście) slajdu... 2 Wybór przejścia slajdu... 2 Ustawienie dźwięku dla przejścia... 3 Ustawienie szybkości przejścia slajdu... 4 Sposób przełączenia
Szpieg 2.0 Instrukcja użytkownika
Szpieg 2.0 Instrukcja użytkownika Spis treści: Wstęp: 1. Informacje o programie 2. Wymagania techniczne Ustawienia: 3. Połączenie z bazą danych 4. Konfiguracja email 5. Administracja Funkcje programu:
Kolejki FIFO (łącza nazwane)
Kolejki FIFO (łącza nazwane) Systemy Operacyjne 2 laboratorium Mateusz Hołenko 6 listopada 2011 Plan zajęć 1 Łącza w systemie Linux kolejki FIFO vs. potoki specyfika łączy nazwanych schemat komunikacji
Tworzenie pliku źródłowego w aplikacji POLTAX2B.
Tworzenie pliku źródłowego w aplikacji POLTAX2B. Po utworzeniu spis przekazów pocztowych klikamy na ikonę na dole okna, przypominającą teczkę. Następnie w oknie Export wybieramy format dokumentu o nazwie
Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe
Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache
Konfiguracja podglądu obrazu z kamery IP / rejestratora BCS przez sieć LAN.
Konfiguracja podglądu obrazu z kamery IP / rejestratora BCS przez sieć LAN. Aby oglądać obraz z kamery na komputerze za pośrednictwem sieci komputerowej (sieci lokalnej LAN lub Internetu), mamy do dyspozycji
Instalowanie VHOPE i plików biblioteki VHOPE
Instalowanie VHOPE i plików biblioteki VHOPE Krok 1. Zainstaluj aplikację VHOPE Przed rozpoczęciem korzystania z materiałów prezentacyjnych znajdujących się na tym dysku USB należy zainstalować na komputerze
etrader Pekao Podręcznik użytkownika Strumieniowanie Excel
etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie
Wykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
SPOSOBY DYSTRYBUCJI OPROGRAMOWANIA PANDA
SPOSOBY DYSTRYBUCJI OPROGRAMOWANIA PANDA Panda Security oferuje trzy sposoby dystrybucji oprogramowania na stacje końcowe: - Lokalne pobranie pliku instalacyjnego z portalu zarządzającego - Generacja instalacyjnego
1. Instalacja Programu
Instrukcja obsługi dla programu Raporcik 2005 1. Instalacja Programu Program dostarczony jest na płycie cd, którą otrzymali Państwo od naszej firmy. Aby zainstalować program Raporcik 2005 należy : Włożyć
Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości
Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy dwie Encje (tabele) prawym
Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa
Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa Instalacja roli kontrolera domeny, Aby zainstalować rolę kontrolera domeny, należy uruchomić Zarządzenie tym serwerem, po czym wybrać przycisk
5.2. Pierwsze kroki z bazami danych
5.2. Pierwsze kroki z bazami danych Uruchamianie programu Podobnie jak inne programy, OO Base uruchamiamy z Menu Start, poprzez zakładkę Wszystkie programy, gdzie znajduje się folder OpenOffice.org 2.2,
Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne.
Karty pracy W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne. Ustawienia Pierwszym krokiem w rozpoczęciu pracy z modułem Karty Pracy jest definicja
Zgrywus dla Windows v 1.12
Zgrywus dla Windows v 1.12 Spis treści. 1. Instalacja programu. 2 2. Pierwsze uruchomienie programu.. 3 2.1. Opcje programu 5 2.2. Historia zdarzeń 7 2.3. Opisy nadajników. 8 2.4. Ustawienia zaawansowane...
Konfiguracja serwera OPC/DDE KEPSServerEX oraz środowiska Wonderware InTouch jako klienta DDE do wymiany danych
Ustawienia serwera 1. Uruchomić serwer KEPServerEX w trybie administracji 2. Wywołać ustawienia serwera 3. W zakładce Runtime Process ustawić opcję Process Mode w tryb Interactive 4. Zaakceptować ustawienia
Jak wypełnić zeznanie podatkowe przez Internet PIT-37, e- pity
Jak wypełnić zeznanie podatkowe przez Internet PIT-37, e- pity Nota Materiał powstał w ramach realizacji projektu e-kompetencje bez barier dofinansowanego z Programu Operacyjnego Polska Cyfrowa działanie
1.Wstęp. 2.Generowanie systemu w EDK
1.Wstęp Celem niniejszego ćwiczenia jest zapoznanie z możliwościami debuggowania kodu na platformie MicroBlaze oraz zapoznanie ze środowiskiem wspomagającym prace programisty Xilinx Platform SDK (Eclipse).
Satel Integra FIBARO
Konfiguracja systemu alarmowego Satel Integra do współpracy z systemem FIBARO Poznań, 15 maja 2015r. 1 FIBARO Home Center 2 umożliwia integrację z systemem alarmowym Satel. Jest to realizowane na poziomie
Wstęp. Skąd pobrać program do obsługi FTP? Logowanie
Wstęp FTP - (ang. File Transfer Protocol - protokół transmisji danych) jest to protokół typu klient-serwer, który umożliwia przesyłanie plików na serwer, oraz z serwera poprzez program klienta FTP. Dzięki
Instrukcja wypełniania formularza Ankieta Trwałości
Instrukcja wypełniania formularza Ankieta Trwałości 1. Logowanie Ankieta dostępna jest jako formularz w systemie SEZAM, z którego wysyłane były wnioski: aplikacyjny oraz o płatność. Należy zalogować się
Wykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Dodawanie stron do zakładek
Dodawanie stron do zakładek Aby dodać adres strony do zakładek otwieramy odpowiednią stronę a następnie wybieramy ikonę Dodaj zakładkę Po wybraniu ikony otworzy się okno umożliwiające dodanie adresy strony
FlowSoft02. Przeznaczenie programu
FlowSoft02 Przeznaczenie programu FlowSoft02 jest programem przeznaczonym do obsługi systemu zdalnych odczytów w systemach opartych o magistralę MBUS. Program jest przygotowany dla systemu Windows. Wymagania
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Instrukcja instalacji i konfiguracji Karty EDGE/GPRS SonyEricsson GC85
Instrukcja instalacji i konfiguracji Karty EDGE/GPRS SonyEricsson GC85 SPIS TREŚCI SPIS TREŚCI...2 WSTĘP...2 INSTRUKCJA INSTALACJI I KONFIGURACJI...3 SCHEMAT INSTALACJI KARTY SIM W SE GC85...3 INSTALACJA