Usługi i sieci teleinformatyczne następnej generacji aspekty techniczne, aplikacyjne i rynkowe

Wielkość: px
Rozpocząć pokaz od strony:

Download "Usługi i sieci teleinformatyczne następnej generacji aspekty techniczne, aplikacyjne i rynkowe"

Transkrypt

1 Numer Projektu Badawczego Zamawianego: -MNiSW-02-II/2007 Tytuł projektu: Usługi i sieci teleinformatyczne następnej generacji aspekty techniczne, aplikacyjne i rynkowe Tytuł tematu badawczego: Architektury i protokoły sieciowe Tytuł zadania badawczego 4: Metody zwiększania wydajności przetwarzania strumieni danych w stosach protokolarnych IPv4 i IPv6 w kontekście współczesnych sieciowych systemów operacyjnych dla sieci standardu Ethernet (IEEE 802.3) implementacje sprzętowe i programowe Tytuł raportu zadania badawczego 4.4: Analiza i pomiary rozwiązań sprzętowych i programowych mających na celu zwiększenie wydajności / szybkości transmisji na punkcie styku interfejs sieciowy / inne komponenty serwerowe / system operacyjny / aplikacja użytkownika warstwa I. Rozwiązania sprzętowe jak Intel I/O Acceleration, mechanizmy sprzętowe IPSec Offloading, iscsi Offloading, i inne. Pomiary wydajnościowe implementacji rozwiązań sprzętowych. Wybór rozwiązań najlepszych. Pomiary dla systemów operacyjny w wersjach Standard. Termin dostarczenia raportu: Kierownik zadania: Krzysztof Nowicki Wykonawcy: Tomasz Gierszewski, Marcin Hasse, Krzysztof Nowicki, Bernard Kilarski, Jacek Światowiak Słowa kluczowe: stos TCP/IP, IPv4, IPv6, sieci Ethernet, interfejs IEEE 802.3, PCIExpress, RSS, NDIS, Windows, Linux, obciążenie procesora, protokół VRRP, Schedule, ALR, TCP Offloading/Chimney

2 Bernard Kilarski, Krzysztof Nowicki Analiza wydajności obciążonego jądra systemu operacyjnego Linux pod kątem obsługi zadań sieciowych Streszczenie: W pracy dokonano oceny wpływu obciążenia jądra systemu Linux na opóźnienia w realizacji zadań sieciowych w szczególności implementacji protokołu VRRP. Do przeprowadzenia badań stworzono moduł jądra systemu Linux zapewniający odpowiednie obciążenie systemu, oraz programy i skrypty pomocnicze. Wyniki badań przedstawiono w kontekście wykorzystania przy projektowaniu wielofunkcyjnych systemów jednoprocesorowych. Spis treści 1 Wstęp Zarządzanie zadaniami w systemie Linux Obsługa sieci w systemie Linux Architektura Warstwa urządzeń sieciowych Wysyłanie danych Odbieranie danych Warstwa protokołów Warstwa interfejsu dla aplikacji Protokół VRRP Badania Planowane badania Opis środowiska pomiarowego Środowisko pomiarowe Moduł jądra Narzędzia pracujące w przestrzeni użytkownika Program pm Program pmt Analiza wyników Obciążanie zadaniami o priorytetach niższych od priorytetów czasu rzeczywistego Niskie priorytety Średnie priorytety Wysokie priorytety

3 6.1.4 Zaobserwowane anomalie Podsumowanie Obciążanie zadaniami o priorytetach czasu rzeczywistego Pomiary sieciowe Punkt odniesienia Obciążanie zadaniami o priorytetach niższych od priorytetów czasu rzeczywistego Podsumowanie Dodatki Moduł jądra Program pm Program pmt

4 1 Wstęp Współcześnie wiele uwagi poświęca się systemowi operacyjnemu Linux i jego możliwościom spełniania założonych restrykcji czasowych. Podstawowa wersja systemu Linux nie jest systemem czasu rzeczywistego, a jest tak zwanym systemem słabego czasu rzeczywistego1 (ang. soft real time )[16]. Tworzone są specjalne łaty (ang. patch ), a nawet całe dystrybucje[18][19][20] mające na celu uczynienie z Linuxa system czasu rzeczywistego. Natomiast rzadko poruszana jest kwestia zachowania zwykłego systemu Linux pod obciążeniem. Autorom nie udało się dotrzeć do żadnej publikacji określającej wpływ obciążenia systemu na opóźnienia w wykonaniu pozostałych procesów pracujących na tym systemie. Podobnie sytuacja ma się z publikacjami na temat zachowania procesów z różnymi priorytetami. W związku z coraz większą uniwersalnością systemu Linux oraz wraz ze wzrostem mocy obliczeniowej współczesnych komputerów, coraz częściej maszyny Linuxowe spełniają wiele odmiennych funkcji. Sytuacja w której na jednym komputerze uruchomiany jest serwer DHCP, FTP, DNS, WWW i jeszcze dodatkowo komputer ten pełni rolę routera (ang. router ) jest coraz powszechniejsze. Trend ten jest również coraz bardziej widoczny w urządzeniach sieciowych. Integrują one w sobie obsługę coraz to większej liczby protokołów oraz funkcjonalności. Powoduje to powstawanie nowych problemów wynikających ze współistnienia tych funkcjonalności na jednej platformie. Czy jeśli komponent A (np. usługa NAT) zacznie mocno obciążać zasoby systemu to czy pozostałe komponenty będą pracowały prawidłowo? Celem badań jest określenie wpływu obciążenia systemu Linux na realizację zadań powiązanych z siecią. W związku z tym, że jest to bardzo obszerne zagadnienie zostało ono ograniczone do wpływu obciążenia procesora, na działanie protokołu VRRP. W badaniach założono wykorzystanie wersji jądra systemu Linux bez żadnych dodatkowych łat (ang. patch ) oraz że cała praca dotyczy tylko platformy jednoprocesorowej. 2 Zarządzanie zadaniami w systemie Linux Linux jest to system operacyjny z udostępnionym kodem źródłowym stworzony na podobieństwo komercyjnego systemu UNIX. Istnieje wiele wariantów systemu Linux nazywanych dystrybucjami. Wspólnym elementem wszystkich dystrybucji jest jądro systemu. Jest ono takie same dla wszystkich dystrybucji2. Linux jest dostępny na wiele różnych platform. Procesami w systemie Linux zarządza scheduler (ang. scheduler ). To on decyduje jakie zadanie 1 słaby system czasu rzeczywistego to taki system który spełnia wymagania czasowe w przypadku średnim, natomiast w najgorszym przypadku może dojść do przekroczenia wymaganych terminów. 2 Różnią się co najwyżej łatami nakładanymi przez twórców poszczególnych dystrybucji 3

5 wykonuje się w danej chwili na procesorze. Istnieje wiele różnych algorytmów wyznaczania kolejności wykonania zadań na procesorze. Różnią się one kryteriami które mają optymalizować (np. czas od rozpoczęcia do zakończenia, opóźnienie wywołania). W związku z tym, że kryteria te są od siebie zależne, nie istnieje możliwość stworzenia jednego algorytmu optymalizującego te wszystkie kryteria[11]. Przyjęte w systemie Linux mechanizmy działania schedulera (ang. scheduler ) pozwalają na stosunkowo elastyczne dostosowanie jego zachowania do wymagań stawianych systemowi. Linuxowe zarządzanie zadaniami bazuje na systemie priorytetów. Oznacza to, że zadania o wyższych priorytetach powinny być faworyzowane względem zadań posiadających niższe priorytety. W systemie Linux uprzywilejowanie to uzyskuje się z wykorzystaniem dwóch parametrów. Wielkości kawałka czasu (ang. timeslice ), oraz dynamicznego priorytetu zadania. Kawałek czasu (ang. timeslice ) jest to ilość czasu jaką zadanie może być wykonywane na procesorze do momentu wywłaszczenia[1]. Dynamiczny priorytet zadania jest to wartość która ostatecznie decyduje które zadanie powinno być wykonywane na procesorze. Sam mechanizm wybierania zadania o najwyższym priorytecie jest stosunkowo prosty, ale za to bardzo dobrze zaprojektowany, gdyż dokonuje tego w stałym czasie3. Stąd potoczna nazwa tego schedulera (ang. scheduler ) scheduler O(1). Zapewnione jest to w następujący sposób. Do każdego procesora przypisana jest struktura rq 4 Przechowuje ona informację o zadaniach w stanie TASK_RUNNING. Rysunek 2 przedstawia w jaki sposób są zorganizowane struktury powiązane ze schedulerem (ang. scheduler ). Struktura rq zawiera w sobie wskaźnik na dwie struktury prio_array. Jedną do zadań które wyczerpały swój kawałek czasu (ang. time slice ), a drugą do zadań które nie wyczerpały. Stąd nazwy wskaźników na te struktury active oraz expired. Struktury te zawierają w sobie 3 pola: nr_active liczba aktywnych zadań powiązanych ze strukturą bitmap[bitmap_size] tablica bitowa umożliwiająca odczytanie informacji o tym jaki jest najwyższy priorytet zadania w kolejce queue[max_prio] tablica zawierająca listy zadań o takich samych priorytetach. Liczba MAX_PRIO jest to liczba priorytetów w systemie. Podczas dodawania zadania do zadań active w tablicy bitmap zapalany jest odpowiedni bit, odpowiadający priorytetowi wstawianego zadania. Zadanie to jest następnie umieszczane w tablicy list queue w miejscu odpowiadającemu swojemu priorytetowi. Dzięki takiej organizacji struktur możliwe jest wyznaczenie zadania o najwyższym priorytecie w stałym (niezależnym od liczby zadań w systemie) czasie. Wyznaczenie to odbywa się w następujący sposób: 3 Niezależym od liczby zadań w systemie. Złożoność obliczeniowa O(1). 4 We wcześniejszych wersjach jądra, struktura ta nazywała się runqueue 4

6 Przeszukiwana jest tablica bitowa bitmap w poszukiwaniu pierwszego zapalonego bitu. Tablica ma stały rozmiar (równy liczbie dostępnych priorytetów w systemie), dlatego możliwe jest jej przeszukanie w stałym czasie. Przykładowo, w momencie gdy pierwszym zapalonym bitem jest bit sto dwudziesty, oznacza to, że zadanie o najwyższym priorytecie ma priorytet 120. Następnie z tablicy list spod indeksu 120 brane jest pierwsze z brzegu zadanie. Jest to zadanie o najwyższym priorytecie w systemie i to ono powinno być wykonywane na procesorze. Podczas normalnej pracy schedulera (ang. scheduler ) wszystkie zadania, które nie wyczerpały swojego kawałka czasu (ang. timeslice ) przechowywane są w strukturze do której wskazuje wskaźnik active. W momencie wyczerpania przez zadanie swojego kawałka czasu (ang. timeslice ) zadania jest przekładane do struktury wskazywanej przez expired oraz jego kawałek czasu (ang. timeslice ) jest obliczany na nowo. Gdy już wszystkie zadania w strukturze wskazywanej przez active wyczerpią swój kawałek czasu (ang. timeslice ) następuje zamiana struktur wskazywanych przez wskaźniki active i expired. Dzięki tak prostej operacji nie jest konieczne przeniesienie wszystkich zadań z powrotem do struktury wskazywanej przez active Czas wykonania takiej operacji byłby zależny od liczby zadań w systemie i mógłby prowadzić do nieprzewidywalnych opóźnień podczas pracy systemu.

7 ts [ms] Priorytet Rysunek 1: Wykres wielkości kawałka czasu (ang. "timeslice") w zależności od wielkości statycznego priorytetu W systemie Linux wielkość kawałka czasu (ang. timeslice ) jest zależna od statycznego priorytetu zadania. Statyczny priorytet to priorytet nadany zadaniu jawnie6. Wielkość kawałka czasu może wahać się od 5ms (zadania o najniższym priorytecie) do 800ms (zadania o najwyższym priorytecie nie czasu rzeczywistego). Dla domyślnej wartości priorytetu (120), kawałek czasu ma wartość 100ms. Rysunek 17 przedstawia wykres wartości kawałka czasu (ang. timeslice ) w zależności od statycznego priorytetu zadania. Wartość ta jest obliczana w następujący sposób: ts= 140 st 20, gdy st 120 ts= 140 st 5, gdy st 120 ts kawałek czasu (ang. time slice ) w milisekundach 6 Nie jest to ostateczna wartość która decyduje o pierwszeństwie wykonania zadania. 7 Liczby na osi X celowo maleją od lewej do prawej, ponieważ mniejsza liczba oznacza większy priorytet. 6

8 st statyczny priorytet zadania Rysunek 2: Organizacja struktur powiązanych z schedulerem (ang. "scheduler"). Źródło: Opracowanie własne W celu minimalizacji czasu oczekiwania na wykonanie zadań w systemie Linux wprowadzono kilka mechanizmów wyróżniających zadania interaktywne (nazywane dalej IO-bound ). Jednym z takich mechanizmów jest mechanizm dynamicznego priorytetu. Polega on na tym, że zadanie oprócz statycznego priorytetu nadawanego zadaniu przez użytkownika posiada dodatkowo priorytet dynamiczny. Priorytet dynamiczny jest to wartość która ostatecznie decyduje o tym, które zadanie powinno być aktualnie wykonywane na procesorze8. Jego wartość jest obliczana na podstawie priorytetu statycznego danego zadania oraz ilości czasu jakie zadanie spędza uśpione (ang. sleep ). Jest on obliczany w następujący sposób: dp = max 100, min sp bonus 5, Jeśli tylko zadanie nie wyczerpało swojego kawałka czasu (ang. time slice ) 7

9 gdzie: dp dynamiczny priorytet zadania sp statyczny priorytet zadania bonus wartość z przedziału <0,10> zależna od ilości czasu jakie zadnie przebywa w stanie uśpienia (ang. sleep). Im więcej zadanie śpi tym bonus ma większa wartość. Innym mechanizmem poprawiającym wrażenia użytkownika oraz minimalizującym opóźnienie wykonania jest uznawanie zadania za interaktywne. Uznanie zadania za interaktywne powoduje, że po wyczerpaniu swojego kawałka czasu (ang. time slice ) nie jest ono przekładane do kolejki expired, tylko ponownie wkładane do kolejki active. Zadanie jest uznawane za interaktywne gdy: dp 3 sp / 4 28 gdzie: dp dynamiczny priorytet zadania sp statyczny priorytet zadania W praktyce formuła ta przekłada się na to, że im wyższy priorytet zadania tym łatwiej 9 dane zadanie jest uznawane za interaktywne. Zadania o najniższych priorytetach nigdy nie mogą zostać uznane za interaktywne. Dodatkowo, aby zapobiec zagłodzeniu zadań w kolejce expired, monitorowany jest czas ostatniego przełączenia pomiędzy kolejkami active i expired. Gdy do przełączenia doszło wystarczająco dawno, nawet zadania interaktywne przekładane są do kolejki expired. Zapobiega to zagłodzeniu zadań w przypadku gdy w systemie uruchomionych jest wiele zadań uznanych za interaktywne. Wszystko co zostało opisane powyżej dotyczy zadań o zwykłych priorytetach (z zakresu ). Sposób w jaki scheduler (ang. scheduler ) traktuje te zadania nazywa się polityką SCHED_NORMAL (ang. SCHED_NORMAL policy ). Istnieją również inne rodzaje polityk schedulera (ang. scheduling policy ), SCHED_FIFO i SCHED_RR. Polityki te dotyczą zadań posiadających priorytety czasu rzeczywistego (ang. real time priority ), czyli z wartością priorytetów z przedziału (0-99). Priorytety czasu rzeczywistego są traktowane przez scheduler (ang. scheduler ) inaczej niż zadania o zwykłych priorytetach. Mają one zawsze pierwszeństwo przed zadaniami o zwykłych priorytetach, bez względu na wartość swojego kawałka czasu (ang. time slice ). Kawałek czasu (ang. time slice ) zadań o priorytetach czasu rzeczywistego jest wykorzystywany tylko, gdy stosowana jest wobec nich polityka SCHED_RR. Służy on wtedy do dzielenia czasu procesora pomiędzy zadaniami czasu rzeczywistego o takich samych priorytetach. Zadaniom tym przydzielany jest wówczas czas procesora według wartości ich kawałka czasu oraz 9 Mniej czasu musi spędzać w stanie uśpienia (ang. sleep ). 8

10 algorytmu round-robin. W przypadku polityki SCHED_FIFO zadania wykonywane są według kolejności zgłoszenia zapotrzebowania na czas procesora. Wykonywane zadanie czasu rzeczywistego jest zastępowane innym zadaniem tylko wtedy gdy: pojawiło się zadanie o wyższym priorytecie czasu rzeczywistego zadanie zmieniło swój stan TASK_UNINTERRUPTIBLE) na stan uśpienia (TASK_INTERRUPTIBLE lub zadanie zakończyło działanie zadanie zrzekło się dobrowolnie procesora zadanie zostało zastąpione przez zadanie o takim samym priorytecie po wyczerpaniu swojego kawałka czasu (tylko w przypadku polityki SCHED_RR) Oznacza to, że priorytetów czasu rzeczywistego należy używać z dużą ostrożnością ponieważ mogą one doprowadzić do zagłodzenia innych zadań w systemie. 3 Obsługa sieci w systemie Linux 3.1 Architektura W związku z dużą złożonością podsystemu sieciowego w systemie Linux[14], którego pełne omówienie wykracza zdecydowanie poza ramy tej pracy, jego omówienie zostanie okrojone do podstawowych mechanizmów mogących mieć wpływ na przeprowadzane pomiary. W przypadku gdy będzie istniało kilka rozwiązań omawiane będą mechanizmy charakterystyczne dla sieci Ethernet/IP/TCP. Ewentualne odniesienia do kod sterownika dotyczą sterownika karty sieciowej opartej o układ Realteka 8139C Kod sterownika jest elementem jądra systemu Linux. 9

11 Rysunek 3: Wysokopoziomowa architektura stosu sieciowego w systemie Linux. Źródło: Podsystem sieciowy w systemie Linux posiada architekturę stosu. Rysunek 3 przedstawia wysokopoziomową architekturę podsystemu sieciowego systemu Linux. Łatwo można zauważyć, że jądro systemu odpowiada za realizację funkcji warstw 2,3 i 4 modelu OSI. Wewnątrz jądra możemy wyróżnić 3 główne warstwy (od najniższej): warstwa urządzeń sieciowych jest to najniższa warstwa odpowiedzialna za bezpośredni kontakt z urządzeniami sieciowymi, oraz za dostarczenie niezależnego sprzętowo interfejsu dla warstw wyższych. Warstwa ta jest dokładniej omówiona w rozdziale 3.2. warstwa protokołów odpowiada ona za wykonanie czynności związanych z obsługą protokołów. Warstwa ta będzie dokładniej omówiona w rozdziale 3.3 warstwa interfejsu dla aplikacji zapewnia interfejs dla aplikacji z przestrzeni użytkownika, dając im elastyczny dostęp do różnych funkcji sieciowych. Warstwa ta będzie omówiona w rozdziale

12 Rysunek 4: Poglądowy schemat organizacji struktury "sk_buff". Źródło: "The Linux Network Architecture: Design and Implementation of Network Protocols in the Linux Kernel"[14] Dane wędrujące przez stos oprawione są w strukturę sk_buff. Struktura ta jest alokowana dla każdego przetwarzanego w systemie pakietu (wysyłanego i odbieranego). Nie przechowuje ona danych do wysłania w sobie tylko zawiera wskaźnik na pakiet dla którego została stworzona.można powiedzieć, że przez stos wędruje tak naprawdę struktura sk_buff a nie dane wysyłanego/odbieranego pakietu. Dzięki takiemu rozwiązaniu dane są kopiowane tylko dwa razy podczas drogi przez stos sieciowy. Podczas wysyłania raz z przestrzeni użytkownika do przestrzeni jądra i raz z przestrzeni jądra do bufora karty sieciowej. Podczas odbierania dane są kopiowane w odwrotne strony. Organizację struktur oraz dana zawarte w strukturze sk_buff przedstawia rysunek Warstwa urządzeń sieciowych W celu zapewnienia jednolitego interfejsu dla wielu urządzeń sieciowych, stworzono w Linuxie pojęcie interfejsu sieciowego (ang. network interface ). Dla każdego urządzenia sieciowego tworzony jest interfejs sieciowy11, który reprezentowany jest w systemie poprzez strukturę net_device zdefiniowaną w linux/netdevice.h. Niezależność ta jest uzyskana poprzez 11 Jedno urządzenie może być powiązane z wieloma interfejsami sieciowymi. Dodatkowe interfejsy nazywane są wirtualnymi i są powiązane z dodatkowymi funkcjami jakie może pełnić interfejs np. loopback. Interfejsy wirtualne nie są poruszone w tej pracy. 11

13 implementację przez sterownik danego urządzenia sieciowego wymaganych funkcji. Tak jak jest to widoczne na rysunku 5. Podstawowymi metodami implementowanymi w ramach interfejsu sieciowego są; int dev_open(struct net_device *dev) przygotowuje interfejs sieciowy do użycia. Ustawia adres fizyczny interfejsu, aktywuje kolejkę wysyłania i wysyła powiadomienie o podniesieniu interfejsu. Często potocznie mówi się, że podnosi interfejs (ang. up ). W praktyce wywołuje odpowiednią funkcję sterownika. Zwracaną wartością jest status wykonania (sukces lub kod błędu). int dev_close(struct net_device *dev) zamyka interfejs sieciowy. Wysyła powiadomienia o rozpoczęciu wyłączania oraz o wyłączeniu. W praktyce wywołuje odpowiednią funkcję sterownika. Zawsze kończy się pomyślnie. int dev_queue_xmit(struct sk_buff *skb) dodaje dane (struktura sk_buff omówiona w rozdziale 3.3) do kolejki wysyłania. Wywoływana przez warstwy wyższe w celu wysłania pakietu. Może być wywołana z kontekstu przerwania. Zwraca status wykonania12. int netif_rx(struct sk_buff *skb) funkcja wywoływana przez sterownik urządzenia sieciowego w momencie otrzymania pakietu. Przekazuje odebrany pakiety warstwom wyższym. Zawsze wykonuje się poprawnie. Zwraca status wykonania. 12 Pozytywne zakończenie nie oznacza, że pakiet został wysłany. Może on zostać porzucony (ang. drop ) np. przez mechanizm kontroli obciążenia (ang. congestion control ) 12

14 Rysunek 5: Niezależny od sprzętu interfejs urządzenia sieciowego. Źródło: "The Linux Network Architecture(...)"[14] Interfejs sieciowy zapewnia też możliwość powiadamiania o zmianach swojego stanu. Jest to realizowane poprzez zarejestrowanie się na powiadomienia (ang. notifier ) zmiany stanu urządzenia. Możliwe powiadomienia są zdefiniowane w linux/notifier.h. Powiadomienia mogą informować na przykład o podnoszeniu (ang. up ), opuszczaniu lub zmianie adresu interfejsu (odpowiednio NETDEV_UP, NETDEV_DOWN, NETDEV_CHANGEADDR). Rejestracja (wyrejestrowanie) odbywa się poprzez funkcje register_netdevice_notifier ( unregister_netdevice_notifier ) Wysyłanie danych Gdy wyższa warstwa chce wysłać dane, wywołuje funkcje dev_queue_xmit. W funkcji tej dane są wkładane do kolejki qdisc. W przypadku interfejsów nie posiadających takiej kolejki (np. interfejsy wirtualne) dane są wysyłane bezpośrednia za pomocą funkcji dev_hard_start_xmit. Nazwa kolejki qdisc pochodzi z angielskiego queing discpipline, co w wolnym tłumaczeniu oznacza reguły kolejkowania. Z wykorzystaniem tej struktury możliwe jest łatwe zaimplementowanie reguł priorytetyzacji wysyłania danych poprzez odpowiednie funkcje dodające/usuwające dane z kolejki. Podczas podnoszenia interfejsu sieciowego, tworzona jest struktura qdisc domyślnie implementująca kolejkę pfifo. Po włożeniu danych do wysłania do kolejki qdisc następuje próba wysłania tych danych. Są one pobierane z kolejki, a następnie następuje próba wysłania ich do karty sieciowej z wykorzystaniem funkcji dev_hard_start_xmit. 13

15 Gdy próba ta nie powiedzie się (np. z powodu zapełnienia bufora karty sieciowej), dane są kolejkowane ponownie oraz uruchamiany jest mechanizm softirq którego zadaniem jest podjęcie próby ponownego wysłania wiadomości. Precyzując, w przypadku dużego obciążenia mechanizmu softirq, zadanie późniejszego wysłania pakietu jest przekazywane wątkowi ksoftirqd. Zaletą takiego rozwiązania jest to, że wykonanie tego zadania może być przerywane przez inne procesy wykonujące się na procesorze nie doprowadzając do ich zagłodzenia[1]. Dodatkowym atutem tego rozwiązania jest to, że w przypadku systemów wieloprocesorowych zadanie to może zostać wykonane, na innym procesorze. Wynika to z zasady działania mechanizmu softirq. Dane dostarczane sterownikowi karty sieciowej wkładane są do tak zwanego pierścienia (ang. ring ). Jest to bufor kołowy (w przypadku karty opartej o układ Realteka 8139C+ mieszczący 64 wpisy), zaalokowany w pamięci umożliwiającej transfer DMA do karty sieciowej, zarządzany przez sterownik. Dane do wysłania kasowane są dopiero po otrzymaniu przerwania ( net_tx ) od karty sieciowej potwierdzającego poprawne wysłanie danych. Jest to optymalizacja wykorzystująca fakt, że istnieje duże prawdopodobieństwo retransmisji niewysłanego pakietu[14]. Rysunek 6: Podglądowy schemat mechanizmu odbierania i wysyłania danych. Źródło: "Understanding Linux Network Internals"[17] Odbieranie danych Podglądowy schemat mechanizmu odbierania i wysyłania danych przedstawiony jest na rysunku 6. W momencie otrzymania przerwania od karty sieciowej uruchamiana jest procedura obsługi sterownika która rozpoznaje przyczynę przerwania. Przyczyny wywołania przerwania można 14

16 podzielić na 3 główne grupy: odebranie wiadomości, potwierdzenie poprawnego wysłania, wystąpienie błędu. Sprawdzenie przyczyny na ogół odbywa się poprzez odczytanie wartości rejestrów karty sieciowej. Gdy przerwanie spowodowane było odebraniem danych, zgłaszana jest potrzeba wykonania softirq NET_RX_SOFTIRQ. Warto zwrócić uwagę, że obsługo przerwania została ograniczona do minimum. Świadczy o tym fakt, że odebrane dane są kopiowane z karty sieciowej dopiero w momencie obsługi softirq, a nie podczas obsługi przerwania. Rozwiązanie takie przenosi większość niezbędnego przetwarzania na mechanizm softirq, który ma niższy priorytet wykonania13 niż przerwania sprzętowe. Minimalizuje to możliwość ataku typu DOS poprzez wywoływanie dużej liczby przerwań spowodowanych przychodzącymi pakietami. W trakcie przetwarzania danych możliwe dochodzić do odebrania kolejnych porcji danych przez kartę sieciową. Takie zjawisko mogłoby prowadzić do ciągłego przetwarzania danych, a w rezultacie do zagłodzenia procesów użytkownika. W związku z tym wprowadzono dodatkowe zabezpieczenie, które nie pozwala na jednorazowe przetwarzanie pakietów dłuższe niż 114 jiffie 15. Wraz z pojawieniem się szybkich interfejsów sieciowych pojawił się problem odbierania dużej liczby pakietów w krótkim czasie. Okazało się, że wąskim gardłem była bardzo duża ilość przerwań generowana podczas odbierania tych pakietów. Jedno przerwanie na każdy odebrany pakiet. W związku z tym wprowadzono rozwiązanie nazywane NAPI (ang. New API ). Podstawową różnicą w stosunku do wcześniejszego rozwiązania jest to, że w sytuacji dużego ruchu sieciowego wywoływane jest tylko jedno przerwanie które powoduje odebranie wielu pakietów naraz. Zyski z takiego rozwiązania są znaczące, na 1Gb interfejsie sieciowym podczas odbierania pakietów na sekundę generuje się tylko 17 przerwań (zamiast przerwań)[15]. Po skopiowaniu danych z bufora karty sieciowej, następuje wywołanie funkcji netif_rx którą sterownik przekazuje dane do przetwarzania przez warstwy wyższe. Funkcja netif_rx oznacza do wykonania softirq w trakcie obsługi którego wykonywana jest funkcja net_receive_skb która to rozporządza kopią danych przesyłając ją do obsługi przez zarejestrowane protokoły warstw wyższych. W przypadku, gdy sterownik wspiera NAPI funkcja net_revceive_skb jest wywoływana bezpośrednio przez funkcję sterownika wykonywaną w trakcie obsługi softirq, zaraz po skopiowaniu danych. 13 Nie mylić z priorytetami procesów. 14 Dokłanie rzecz biorąc okres ten wacha się w przedziale (1,2) jiffie. Wynika to z warunku jiffies - start_time > 1 oraz od momentu rozpoczęcia przetwarzania softirq. 15 jiffie jest to podstawowa jednostka czasu w systmie Linux zależna od częstotliwości timera (ang. timer ) systemowego. Wynosi 1/HZ gdzie HZ to wybrana podczas kompilacji częstotliwość timera (ang. timer ) systemowego. Najczęstsze wartości to 1ms, 4ms, 100ms. 15

17 3.3 Warstwa protokołów Obsługa protokołów odbywa się poprzez ich rejestrowanie w systemie. Aby przyśpieszyć wyszukiwanie funkcji obsługi właściwego protokołu, funkcje obsługi protokołów zorganizowane są w tablicę list. Indeksowanie w tej tablicy odbywa się z wykorzystaniem prostej funkcji skrótu (ang. hash function ). Dodawanie obsługi nowych protokołów odbywa się poprzez funkcje dev_add_pack, a usuwa się je za pomocą funkcji dev_remove_pack. Rysunek 7: Warstwa protokołów - architektura. Opracowanie własne na podstawie "Understanding Linux Network Internals"[17] Podczas wykonania funkcji net_receive_skb następuje przekazanie wiadomości do obsługi przez protokoły warstw wyższych. Na podstawie informacji zawartej w otrzymanym pakiecie wyznaczany jest typ protokołu warstwy wyższej. Przykładowo dla protokołu IP wywoływana jest funkcja ip_rcv. Przeprowadza ona analizę nagłówka IP a następnie na podstawie otrzymanych informacji podejmuje decyzje o dalszych losach pakietu. Gdy z zawartych w nagłówku IP informacji wynika, że protokołem warstwy wyższej jest TCP wywoływana jest dla tego pakietu funkcja obsługi protokołu TCP. Jeśli zaś chodzi o wysyłanie danych to do tego celu wykorzystywane są 3 podstawowe funkcje ip_append_data, ip_append_page oraz ip_queue_xmit. Podział taki został wprowadzony w celu optymalizacji szybkości działania. Funkcje te różnią się ilością przetwarzania dokonywanego 16

18 przed utworzeniem nagłówka IP (np. funkcja ip_append_data zapewnia, że dane dostarczane warstwie IP będą posiadały odpowiedni rozmiar). Wszystkie operacje między warstwami, oraz wewnątrz warstw odbywają się na zasadzie zwykłych wywołań funkcji. Nie wykorzystuje się tam żadnych bardziej zaawansowanych mechanizmów takich jak softirq, tasklety (ang. tasklets ) lub przerwania. W związku z tym z punktu widzenia niniejszej pracy mogą one zostać potraktowane jako jedna długo wykonująca się funkcja. 3.4 Warstwa interfejsu dla aplikacji Aplikacja użytkownika komunikuje się z jądrem systemu za pomocą wywołań przerwań systemowych (ang. system call ), tak jak jest to widoczne na poniższym rysunku. Podstawowymi przerwaniami systemowymi pozwalającymi na korzystanie z sieci są przerwania dotyczące obsługi socketów (ang. socket ). Rysunek 8: Sockety (ang. "socket") w jądrze systemu Linux. Opracowanie własne na podstawie: "The Linux Network Architecture: Design and Implementation of Network Protocols in the Linux Kernel"[14] Sockety (ang. socket ) zapewniają aplikacjom interfejs niezależny od używanych protokołów. Rysunek 8 przedstawia uproszczoną architekturę i umiejscowienie socketów (ang. socket ) w systemie Linux. Zachowanie socketów (ang. socket ) w stosunku do warstw niższych (np. z jakich 17

19 korzystają protokołów) zależne jest od typu socketu (ang. socket ). Typ socketu (ang. socket ) zdefiniowany jest za pomocą trzech parametrów family, type i protocol. Obecnie jedną z najważniejszych rodzin protokołów jest rodzina PF_INET (ang. protocol family internet )[14]. W niej zdefiniowane są 3 typy socketów (ang. socket ), SOCK_STREAM, SOCK_DGRAM i SOCK_RAW. Odpowiadają one odpowiednio protokołom TCP, UDP, IP. Inną ważną rodziną socketów (ang. socket ) jest rodzina PF_PACKET. Umożliwia ona przekazywanie pakietów bezpośrednio do urządzenia sieciowego. 4 Protokół VRRP Protokół VRRP jest protokołem opisanym w RFC3768[21] służącym do dynamicznego wyboru fizycznego routera pełniącego rolę routera głównego. Poprzez wprowadzenie pojęcia routera wirtualnego umożliwia on wprowadzenie redundancji na krańcach sieci a co za tym idzie podniesienie niezawodności sieci. Rysunek 9 pokazuje przykładowe wykorzystanie protokołu VRRP. Rysunek 9: Przykładowe wykorzystanie protokołu VRRP. Źródło: Linux on zseries and S/390: Virtual Router Redundancy Protocol Implementation on VM Guest LAN[22] 18

20 Wirtualny router jest to abstrakcyjny twór charakteryzujący się adresem IP oraz identyfikatorem routera wirtualnego (ang. Virtual Router Identifier ). Pełni on rolę bramy dla klientów z podłączonej do niego sieci LAN. W poprawnie działającej i skonfigurowanej sieci, jego rolę pełni pojedynczy router fizyczny implementujący protokół VRRP. Komputer pełniący rolę routera wirtualnego będzie w tej pracy nazywany routerem głównym. Router główny VRRP jest to router pełniący w danej chwili rolę routera wirtualnego. Router zapasowy VRRP jest to router monitorujący stan routera głównego poprzez odbieranie wysyłanych przez niego wiadomości (lub ich braku), oraz w razie potrzeby przejmujący rolę routera głównego VRRP. Grupa VRRP jest to grupa maszyn skonfigurowanych do obsługi protokołu VRRP składająca się z jednego routera głównego oraz routerów zapasowych. Podczas normalnej pracy w prawidłowo skonfigurowanej sieci LAN wszystkie komputery jako adres bramy mają ustawiony adres routera wirtualnego. Jego reprezentacją fizyczną jest sprawny router o najwyższym priorytecie w grupie, router główny. W trakcie działania router główny wysyła na adres multicastowy wiadomości ADVERTISEMENT. Format wiadomości przedstawiono na rysunku 10, a pola omówiono w tabeli 1. W związku z tym, że wiadomości wysyłane są na adres multicastowy, powinny one zostać odebrane przez wszystkie routery zapasowe. Jeżeli router zapasowy nie otrzyma takiej wiadomości przez określony czas to przełącza się on w tryb pracy routera głównego. W momencie przełączania wysyłana jest wiadomość ze źródłowym adresem MAC równym adresowi MAC routera wirtualnego. Ma to na celu powiadomienie innych routerów w grupie oraz poinformowanie przełączników o możliwej zmianie położenia routera głównego. Rysunek 10: Struktura wiadomości protokołu VRRP. Źródło: 19

21 Nazwa pola Opis Version Numer wersji protokołu Type Typ wiadomości. Obecnie tylko równy 1, czyli ADVERTISEMENT Virtual Rtr ID Identyfikatorem routera wirtualnego (ang. Virtual Router Identifier ) Priority Priorytet routera dla danego identyfikatora routera wirtualnego. Count IP Addrs Ilość adresów IP umieszczonych w dalszej części wiadomości Auth Type Rodzaj uwierzytelniania użyty w tej wiadomości Advet Int Przedział czasowy pomiędzy wysłaniami kolejnych wiadomości typu ADVERTISE Checksum Suma kontrolna wiadomości VRRP IP address 1-n Adresy IP powiązane z danym routerem wirtualnym Authentication Data Dane zależne od metody uwierzytelniania. Tabela 1: Opis pól wiadomości protokołu VRRP 5 Badania 5.1 Planowane badania Celem wykonywanych pomiarów jest określenie opóźnień w dostępie do procesora jakie mogą wystąpić podczas działania systemu operacyjnego Linux. Ogólna idea pomiarów: W systemie pracuje zadanie główne (symulujące zadanie o narzuconych restrykcjach czasowych). W roli zadania głównego występują programy pm lub pmt mogące monitorować opóźnienie. Programy opisane są w dalszej części dokumentu. Następnie system zostaje obciążony (sposób obciążenia jest zależny od pomiaru) i monitorowane są opóźnienia w wykonaniu zadania głównego. Planowane jest przeprowadzenie następujących pomiarów: 1. Obciążanie zadaniami o priorytetach niższych od priorytetów czasu rzeczywistego Celem tego pomiaru jest określenie wpływu obciążenia systemu zadaniami o priorytetach od 139 do 100. Jest to symulacja rywalizacji zadania głównego z zadaniami z przestrzeni użytkownika (priorytety inne niż priorytety czasu rzeczywistego). W ramach tego pomiaru będzie przeprowadzone również badanie jak poprawia się sytuacja gdy zadania główne ma priorytet czasu rzeczywistego. 20

22 2. Obciążanie zadaniami o priorytetach czasu rzeczywistego Celem tego pomiaru jest określenie wpływu obciążenia systemu zadaniami o priorytetach większych od Obciążenie a zadania sieciowe Celem tego pomiaru jest określenie wpływu obciążenia systemu na regularność wysyłanych wiadomości. Niektóre protokoły sieciowe do poprawnego funkcjonowania wymagają regularnego wysyłania wiadomości np. VRRP. Pomiar ten ma określić jakiego rodzaju odchyłki od założonej wartości czasów pomiędzy wiadomościami można się spodziewać dla wiadomości ADVERTISEMENT protokołu VRRP. Rysunek 11: Przebieg czasowy pomiaru W przypadku pierwszych dwóch pomiarów wykorzystana będzie następująca metoda. Najpierw uruchamiana jest zadanie główne (program pm lub pmt ). Jego czas działania jest jawnie określony i wynosi około 120 sekund. Dłuższy czas pomiaru nie zmieniał wyników pomiarów, a dużo krótsze czasy mogłyby doprowadzić do nie wychwycenia niektórych zachowań systemu. Wartość ta została dobrana na podstawie przeprowadzonych obserwacji zachowania systemu Linux. Dokładność odmierzania tych 120 sekund zależna jest od aplikacji oraz od obciążenia systemu (zostanie to poruszone w dalszej części pracy podczas omawiania wyników pomiarów). Dla aplikacji pmt dokładność wynikająca z zasady działania programu wynosi jedną sekundę, a dla aplikacji pm jest pomijalnie mały17. Zadania obciążające nie ma jawnie określonego czasu działania. Okres jego działania jest zdefiniowany poprzez ilość iteracji jakie mają wykonać. Czas wykonania zależny jest od stosunku priorytetów zadań pracujących w systemie (zostanie to poruszone w dalszej części pracy). Z tego powodu możliwe są dwa przypadki: zadania obciążające kończą się przed zadaniem głównym zadanie obciążające kończy się po zadaniu głównym Różnice pomiędzy tymi przypadkami nie mają wpływu na metodę pomiarową. Obciążenie jest uruchamiane około 20 sekund po uruchomianiu zadania głównego. Czas ten jest istotny z kilku względów: 16 Większy priorytet, czyli mniejsza liczba. 17 W najgorszym wypadku jest on równy czasowi wykonania jednego obiegu głównej pętli algorytmu 21

23 Pozwala stwierdzić czy nie występują żadne zaburzenia wywołane programami nie powiązanymi z pomiarami Daje schedulerowi (ang. scheduler ) czas na określenie dynamicznego priorytetu zadania głównego Pozwala określić na ile jest wywłaszczany proces gdy system nie jest obciążony Może ułatwić wykrycie wszelkiego rodzaju anomalii W przypadku trzeciego pomiaru metoda pomiarowa będzie podobna. Występują dwie istotne różnice w stosunku do dwóch wcześniejszych pomiarów. Pierwsza jest taka, że zamiast zadania głównego będzie uruchomiany program implementujący protokół VRRP. Drugą istotną różnicą jest sposób mierzenia opóźnień. W tym wypadku będą one mierzone poprzez dodatkowy komputer odbierający pakiety wysłane przez VRRP. Dzięki temu środowisko pomiarowe będzie podobne do rzeczywistych warunków pracy. Dodatkowym argumentem przemawiającym za takim rozwiązaniem jest fakt, że uwzględnione zostaną wszystkie możliwe opóźnienia opóźnienia. Konfiguracja taka niweluje też wpływ obciążenia na dokładność pomiarów ponieważ maszyna mierząca czasy nie jest obciążana w trakcie pomiarów i pełni tylko rolę czasomierza. Rysunek 12: Idea pomiarów sieciowych. Źródło: Opracowanie własne Ustawianie priorytetów zadań W systemie Linux niemożliwe jest ustawienie priorytetu procesu przed lub w trakcie jego tworzenia. Ustawianie priorytetu może nastąpić zaraz po uruchomieniu danego procesu. W ten sposób działa dobrze znane wszystkim użytkownikom systemu Linux polecenie nice [1]. W momencie wywołania tego polecenia tworzony jest nowy proces, który ustawia swój priorytet na zadaną wartość, a następnie wczytuje i wykonuje zadany program. W ten sposób program użytkownika wykonywany jest z zadanym priorytetem od samego początku działania. W przypadku wątków jądra, sytuacja jest bardzo podobna. Ich priorytet również nie może być ustawiony przed lub w trakcie tworzenia wątku. W związku z tym, aby wykonywane zadania miały od początku wykonania pożądany przez nas priorytet, najpierw modyfikujemy priorytet zadania które utworzy nam zadania obciążające. 22

24 5.2 Opis środowiska pomiarowego Środowisko pomiarowe Sprzęt W tabelach 2-4 przedstawiono konfigurację komputerów używanych w trakcie pomiarów. W opisie konfiguracji pominięto elementy całkowicie nieistotne dla przeprowadzanych pomiarów (np. karta dźwiękowa). Pomiary 1 i 2 zostały wykonane na komputerze A (laptop HP Omnibook xe4500). Do sieciowej części pomiarów wymagane są dwa komputery. W związku z tym wykorzystano więcej komputerów których konfiguracje sprzętowe są opisane w tabelach 2,3 i 4. Komputery te były połączone w następujące konfiguracje testowe: Konfiguracja 1 Komputer A w roli komputera badanego połączony był za pomocą kabla UTP cat. 5E z komputerem B Konfiguracja 2 Komputer C w roli komputera badanego połączony z innym egzemplarzem komputera C za pomocą kabla UTP cat. 5e (interfejsy 1Gb) Konfiguracja 3 Komputer C w roli komputera badanego połączony z innym egzemplarzem komputera C za pomocą światłowodu (interfejsy 10Gb) Konfiguracje te przedstawione są na rysunku 13. Procesor: Pentium 4-M 1.7GHz Pamięć RAM: 768MB (512MB+256MB) Dysk twardy: IBM Travelstar 30GB Procesor graficzny: Karta WiFi: Karta sieciowa ATI Mobility M6 D-Link DWL-G630 (PCMCI, zewnętrzna) National Semiconductor Corporation DP /100 Mb (Ethernet) Tabela 2: Konfiguracja sprzętowa komputera A 23

25 Procesor: AMD Athlon(tm) 64 X2 Dual Core Processor Pamięć RAM: 2GB Dysk twardy: Seagate Barracuda GB Procesor graficzny: Nvidia 8600GT Karta WiFi: Karta sieciowa brak Pentagram Realtek 8169 Gigabit Ethernet Tabela 3: Konfiguracja sprzętowa komputera B Procesor: Xeon E5405 2GHz Pamięć RAM: 32GB Dysk twardy: Seagate Barracuda GB Procesor graficzny: Nvidia 6200LE Karta WiFi: brak Karta sieciowa 1 Intel 82598EB 10 Gigabit AF Dual Port Network Controller Karta sieciowa 2 Intel 82575EB Gigabit Ethernet Tabela 4: Konfiguracja sprzętowa komputera C 24

26 Rysunek 13: Konfiguracje pomiarowe użyte przy pomiarach sieciowych Oprogramowanie Bazą do wykonania wszystkich pomiarów był system bazujący na jądrze Linux (wersja jądra ). Jądro zostało okrojone do bardzo podstawowej funkcjonalności aby dodatkowe funkcjonalności nie wpływały na wyniki pomiarów. Wyłączone zostały takie funkcjonalności takich jak SNP (obsługa wielu procesorów) oraz CPU frequency scaling które mogłyby w sposób bardzo znaczący wpłynąć na wyniki pomiarów. Szczegółowe informacje na temat bazowej konfiguracji jądra można znaleźć w dodatku A. Niektóre pomiary zostały przeprowadzone z użyciem zmodyfikowanych parametrów jądra (np. częstotliwość timera) w celu określenia ich wpływu na zachowanie systemu. Jądro to zostało poddane drobnej modyfikacji umożliwiającej dokładniejsze pomiary, więcej szczegółów w opisie modułu jądra Moduł jądra W celu obciążania procesora oraz przeprowadzania pomiarów zaimplementowano prosty moduł jądra systemu Linux. Rysunek 14 przedstawia uproszczoną architekturę modułu jądra, nazywanego dalej również workaholic. Podstawowe moduły to: Procfs bufory wejścia/wyjścia wraz z funkcjami ich obsługi dla systemu plików 25

27 procfs (ang. proces file system ). Odpowiada również za utworzenie pliku workaholic w systemie plików procfs podczas inicjalizacji modułu. Command parser - przetwarza komendy zapisane w buforze wejścia i w zależności od polecenia wywołuje odpowiednią funkcję CPU Loader - moduł obciążający procesor. Umożliwia odpalenie wybranej ilości wątków jądra na zadany czas (wyrażony nie wprost). Task switch monitor - moduł odpowiadający za logowanie informacji o przełączeniu zadań wykonywanych na procesorze. Wymaga drobnej modyfikacji jądra systemu. Modyfikacja ta polega na wstawieniu wywołania funkcji logującej do funkcji obsługi schedulera (ang. scheduler ) schedule(void) (w pliku kernel/sched.c ) w miejscu przełączenia zadań. Network monitor - moduł odpowiadający za logowanie informacji o przychodzących pakietach. Wymaga drobnej modyfikacji jądra systemu Linux. Modyfikacja ta polega na wstawieniu wywołania funkcji logującej do funkcji odbierających pakiety netif_receive_skb(struct sk_buff *skb). Wstawienie wywołania funkcji logującej do funkcji netif_rx(struct sk_buff *skb) nie zdało egzaminu ponieważ niektóre sterowniki korzystające z NAPI pomijają tą funkcję podczas przetwarzania pakietów i wywołują bezpośrednio netif_receive_skb(struct sk_buff *skb). Rysunek 14: Architektura zaimplementowanego modułu jądra. Źródło: Opracowanie własne Komunikacja z systemem odbywa się przez system plików procfs. Z wykorzystaniem interfejsu procfs zaimplementowano proste bufory wejścia/wyjścia które umożliwiają komunikację poprzez zapis/odczyt do/z pliku /proc/workaholic. Po zapisaniu polecenia do pliku /proc/workaholic jest 26

28 ono zapisywane w buforze wejścia i wywoływana jest funkcja przetwarzająca argumenty (ang. command parser ). Po przetworzeniu polecenia następuje wywołanie odpowiedniej funkcji. Polecenia wraz z ich kodami opisane są w podręczniku użytkownika w rozdziale Narzędzia pracujące w przestrzeni użytkownika Program pm Program pm jest prostym programem pracującym w przestrzeni użytkownika symulującym obciążenie typu CPU bound 18, oraz mierzącym czas wywłaszczenia (okres czasu przez jaki proces pm nie był wykonywany na procesorze, nazywany dalej czasem wywłaszczenia ). Zasada działania programu jest bardzo prosta. W pętli pobiera on aktualny czas oraz porównuje go z czasem pobranym we wcześniejszym obiegu pętli. Jeśli różnica jest większa niż wcześniej ustalony próg, oznacza to, że doszło do wywłaszczenia. Na rysunku 15 zobrazowano trzy podstawowe przypadki jakie mogą wystąpić podczas pracy programu pm. Przedział czasowy wskazywany przez t1 jest to przypadek gdy kolejne pobrania czasu wystąpiły po sobie bez żadnych zakłóceń. W tym wypadku wartość t1 jest zbliżona do czasu potrzebnego na pobranie czasu. Przedział czasowy wskazywany przez t2 przedstawia przypadek gdy nastąpiła przerwa pomiędzy kolejnymi pobraniami czasu, ale przerwa ta była nie istotna z punktu widzenia tej pracy. Przedział czasowy wskazywany przez t3 jest to przypadek gdy nastąpiła długa (istotna dla tej pracy) przerwa pomiędzy pobraniami czasu. Oznacza to, że najprawdopodobniej19 doszło do wywłaszczenia procesu pm na rzecz innego procesu. Uproszczony algorytm przedstawiony jest na rysunku 16. Rysunek 15: Uproszczona zasada działania programu pm 18 Patrz rozdział Błąd: Nie znaleziono źródła odwołania 19 Możliwe są inne przyczyny takiej przerwy (np. seria przerwań sprzętowych), ale w użytych konfiguracjach są one bardzo mało prawdopodobne. 27

Wykład Nr 4. 1. Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Wykład Nr 4. 1. Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia Sieci komputerowe Wykład Nr 4 1. Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia Sieci bezprzewodowe Sieci z bezprzewodowymi punktami dostępu bazują na falach radiowych. Punkt dostępu musi mieć

Bardziej szczegółowo

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1. Zakład Elektronicznych Urządzeń Pomiarowych POZYTON sp. z o. o. 42-200 Częstochowa ul. Staszica 8 p o z y t o n tel. : (034) 361-38-32, 366-44-95, 364-88-82, 364-87-50, 364-87-82, 364-87-62 tel./fax: (034)

Bardziej szczegółowo

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji. 1 Moduł Modbus TCP Moduł Modbus TCP daje użytkownikowi Systemu Vision możliwość zapisu oraz odczytu rejestrów urządzeń, które obsługują protokół Modbus TCP. Zapewnia on odwzorowanie rejestrów urządzeń

Bardziej szczegółowo

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci UNIX: architektura i implementacja mechanizmów bezpieczeństwa Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci Plan prezentacji: Wprowadzenie do struktury systemów rodziny UNIX

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

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

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

Oprogramowanie. DMS Lite. Podstawowa instrukcja obsługi

Oprogramowanie. DMS Lite. Podstawowa instrukcja obsługi Oprogramowanie DMS Lite Podstawowa instrukcja obsługi 1 Spis treści 1. Informacje wstępne 3 2. Wymagania sprzętowe/systemowe 4 3. Instalacja 5 4. Uruchomienie 6 5. Podstawowa konfiguracja 7 6. Wyświetlanie

Bardziej szczegółowo

Laboratorium Komputerowe Systemy Pomiarowe

Laboratorium Komputerowe Systemy Pomiarowe Jarosław Gliwiński, Łukasz Rogacz Laboratorium Komputerowe Systemy Pomiarowe ćw. Zastosowanie standardu VISA do obsługi interfejsu RS-232C Data wykonania: 03.04.08 Data oddania: 17.04.08 Celem ćwiczenia

Bardziej szczegółowo

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego 2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego produktu. 23 czerwca 2014 Spis treści 3 Spis treści...5

Bardziej szczegółowo

Spis treści. Instalacja oprogramowania...j... 8 Instalacja pakietów poprzez rpm...j... 10. Listowanie zawartości folderu...j... 14

Spis treści. Instalacja oprogramowania...j... 8 Instalacja pakietów poprzez rpm...j... 10. Listowanie zawartości folderu...j... 14 Spis treści Rozdział 1. Rozdział 2. Wstęp...z...z...... 5 Aktualizacja oprogramowania...z... 7 Aktualizacja...j...j... 7 Instalacja oprogramowania...j... 8 Instalacja pakietów poprzez rpm...j... 10 Konsola

Bardziej szczegółowo

UNIFON podręcznik użytkownika

UNIFON podręcznik użytkownika UNIFON podręcznik użytkownika Spis treści: Instrukcja obsługi programu Unifon...2 Instalacja aplikacji Unifon...3 Korzystanie z aplikacji Unifon...6 Test zakończony sukcesem...9 Test zakończony niepowodzeniem...14

Bardziej szczegółowo

Metody obsługi zdarzeń

Metody obsługi zdarzeń SWB - Przerwania, polling, timery - wykład 10 asz 1 Metody obsługi zdarzeń Przerwanie (ang. Interrupt) - zmiana sterowania, niezależnie od aktualnie wykonywanego programu, spowodowana pojawieniem się sygnału

Bardziej szczegółowo

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016

Bardziej szczegółowo

Veronica. Wizyjny system monitorowania obiektów budowlanych. Instrukcja oprogramowania

Veronica. Wizyjny system monitorowania obiektów budowlanych. Instrukcja oprogramowania Veronica Wizyjny system monitorowania obiektów budowlanych Instrukcja oprogramowania 1 Spis treści 1. Aplikacja do konfiguracji i nadzoru systemu Veronica...3 1.1. Okno główne aplikacji...3 1.2. Edycja

Bardziej szczegółowo

Podstawowe zagadnienia

Podstawowe zagadnienia SWB - Systemy operacyjne w systemach wbudowanych - wykład 14 asz 1 Podstawowe zagadnienia System operacyjny System czasu rzeczywistego Systemy wbudowane a system operacyjny Przykłady systemów operacyjnych

Bardziej szczegółowo

CONFidence 13/05/2006. Jarosław Sajko, PCSS Jaroslaw.sajko@man.poznan.pl

CONFidence 13/05/2006. Jarosław Sajko, PCSS Jaroslaw.sajko@man.poznan.pl IPTables Hacking CONFidence 13/05/2006 Jarosław Sajko, PCSS Jaroslaw.sajko@man.poznan.pl 1 Zamiast planu 2 ZB PCSS Praca operacyjna w ramach ogólnopolskiej szerokopasmowej sieci PIONIER oraz zasobów Centrum

Bardziej szczegółowo

9. System wykrywania i blokowania włamań ASQ (IPS)

9. System wykrywania i blokowania włamań ASQ (IPS) 9. System wykrywania i blokowania włamań ASQ (IPS) System Intrusion Prevention w urządzeniach NETASQ wykorzystuje unikalną, stworzoną w laboratoriach firmy NETASQ technologię wykrywania i blokowania ataków

Bardziej szczegółowo

Spis treści. 1 Moduł RFID (APA) 3

Spis treści. 1 Moduł RFID (APA) 3 Spis treści 1 Moduł RFID (APA) 3 1.1 Konfigurowanie Modułu RFID..................... 3 1.1.1 Lista elementów Modułu RFID................. 3 1.1.2 Konfiguracja Modułu RFID (APA)............... 4 1.1.2.1

Bardziej szczegółowo

16MB - 2GB 2MB - 128MB

16MB - 2GB 2MB - 128MB FAT Wprowadzenie Historia FAT jest jednym z najstarszych spośród obecnie jeszcze używanych systemów plików. Pierwsza wersja (FAT12) powstała w 1980 roku. Wraz z wzrostem rozmiaru dysków i nowymi wymaganiami

Bardziej szczegółowo

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych Wykład 2: Budowanie sieci lokalnych 1 Budowanie sieci lokalnych Technologie istotne z punktu widzenia konfiguracji i testowania poprawnego działania sieci lokalnej: Protokół ICMP i narzędzia go wykorzystujące

Bardziej szczegółowo

4. Podstawowa konfiguracja

4. Podstawowa konfiguracja 4. Podstawowa konfiguracja Po pierwszym zalogowaniu się do urządzenia należy zweryfikować poprawność licencji. Można to zrobić na jednym z widżetów panelu kontrolnego. Wstępną konfigurację można podzielić

Bardziej szczegółowo

WOJSKOWA AKADEMIA TECHNICZNA

WOJSKOWA AKADEMIA TECHNICZNA WOJSKOWA AKADEMIA TECHNICZNA LABORATORIUM DIAGNOSTYKA I WIARYGODNOŚĆ SYSTEMÓW KOMPUTEROWYCH Stopień, imię i nazwisko prowadzącego Stopień, imię i nazwisko słuchacza Grupa szkoleniowa dr inż. Zbigniew Zieliński

Bardziej szczegółowo

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c Wymagania edukacyjne w technikum SIECI KOMPUTEROWE kl. 2c Wiadomości Umiejętności Lp. Temat konieczne podstawowe rozszerzające dopełniające Zapamiętanie Rozumienie W sytuacjach typowych W sytuacjach problemowych

Bardziej szczegółowo

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer Plan prezentacji 1. Cel projektu 2. Cechy systemu 3. Budowa systemu: Agent

Bardziej szczegółowo

Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4. Dokumentacja dla Scandroid. Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4. Scandroid to aplikacja przeznaczona

Bardziej szczegółowo

Oprogramowanie IP - pytania i odpowiedzi. JPEG (Mb/s) kl./s BASIC SUPER FINE BASIC SUPER FINE 5 0,46 1,45 1,02 2,5 12,5 1,17 3,6 2,53 6,32

Oprogramowanie IP - pytania i odpowiedzi. JPEG (Mb/s) kl./s BASIC SUPER FINE BASIC SUPER FINE 5 0,46 1,45 1,02 2,5 12,5 1,17 3,6 2,53 6,32 Oprogramowanie IP - pytania i odpowiedzi Ile kamer może pracować w sieci 100 Mb/s i 1 Gb/s? Liczba kamer mogących poprawnie pracować w sieci zależy od parametrów wysyłanego przez nie obrazu. Strumień danych

Bardziej szczegółowo

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego

Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego Ćwiczenie Nr 7 Instalacja oraz konfiguracja wskazanego systemu operacyjnego Cel ćwiczenia: Celem zajęć jest zdobycie doświadczenia i umiejętności instalacji systemu operacyjnego z rodziny Unix bez wykorzystania

Bardziej szczegółowo

Rys. 1. Wynik działania programu ping: n = 5, adres cyfrowy. Rys. 1a. Wynik działania programu ping: l = 64 Bajty, adres mnemoniczny

Rys. 1. Wynik działania programu ping: n = 5, adres cyfrowy. Rys. 1a. Wynik działania programu ping: l = 64 Bajty, adres mnemoniczny 41 Rodzaje testów i pomiarów aktywnych ZAGADNIENIA - Jak przeprowadzać pomiary aktywne w sieci? - Jak zmierzyć jakość usług sieciowych? - Kto ustanawia standardy dotyczące jakości usług sieciowych? - Jakie

Bardziej szczegółowo

(Pluggable Authentication Modules). Wyjaśnienie technologii.

(Pluggable Authentication Modules). Wyjaśnienie technologii. Bezpieczeństwo systemów komputerowych. Temat seminarium: Moduły PAM (Pluggable Authentication Modules). Wyjaśnienie technologii Autor: Bartosz Hetmański Moduły PAM (Pluggable Authentication Modules). Wyjaśnienie

Bardziej szczegółowo

Szpieg 2.0 Instrukcja użytkownika

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:

Bardziej szczegółowo

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Tworzenie i obsługa wirtualnego laboratorium komputerowego Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ochociński nr albumu: 236401 Praca magisterska na kierunku informatyka stosowana Tworzenie i obsługa wirtualnego

Bardziej szczegółowo

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie informatycznej. Zadaniem systemu jest rejestracja i przechowywanie

Bardziej szczegółowo

1. Pamięć wirtualna. 2. Optymalizacja pliku pamięci wirtualnej

1. Pamięć wirtualna. 2. Optymalizacja pliku pamięci wirtualnej 1. Pamięć wirtualna Jeśli na komputerze brakuje pamięci RAM wymaganej do uruchomienia programu lub wykonania operacji, system Windows korzysta z pamięci wirtualnej, aby zrekompensować ten brak. Aby sprawdzić,

Bardziej szczegółowo

Rozkład menu narzędzi

Rozkład menu narzędzi Tylko administrator systemu ma dostęp do wszystkich opcji Narzędzi. Ustawienia urządzenia Ogólne Oszczędzanie energii Inteligentny Uruchamiany pracą Planowany Data i godzina Strefa czasowa (różnica dla

Bardziej szczegółowo

Instrukcja użytkownika ARSoft-WZ1

Instrukcja użytkownika ARSoft-WZ1 05-090 Raszyn, ul Gałczyńskiego 6 tel (+48) 22 101-27-31, 22 853-48-56 automatyka@apar.pl www.apar.pl Instrukcja użytkownika ARSoft-WZ1 wersja 3.x 1. Opis Aplikacja ARSOFT-WZ1 umożliwia konfigurację i

Bardziej szczegółowo

PC0060. ADAPTER Kabel Easy Copy PC-Link USB 2.0 Proste kopiowanie, bez instalacji. Instrukcja obsługi

PC0060. ADAPTER Kabel Easy Copy PC-Link USB 2.0 Proste kopiowanie, bez instalacji. Instrukcja obsługi PC0060 ADAPTER Kabel Easy Copy PC-Link USB 2.0 Proste kopiowanie, bez instalacji Instrukcja obsługi Rozdział 1 Produkt 1.1 Instrukcja Produkt PC0060 to najlepsze rozwiązanie w zakresie przesyłania danych.

Bardziej szczegółowo

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu inż. Daniel Solarz Wydział Fizyki i Informatyki Stosowanej AGH 1. Cel projektu. Celem projektu było napisanie wtyczki

Bardziej szczegółowo

Dysk CD (z Oprogramowaniem i Podręcznikiem użytkownika)

Dysk CD (z Oprogramowaniem i Podręcznikiem użytkownika) Do skonfigurowania urządzenia może posłużyć każda nowoczesna przeglądarka, np. Internet Explorer 6 lub Netscape Navigator 7.0. DP-G310 Bezprzewodowy serwer wydruków AirPlus G 2,4GHz Przed rozpoczęciem

Bardziej szczegółowo

IO - Plan testów. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

IO - Plan testów. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006 IO - Plan testów M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak 5 czerwca 2006 1 SPIS TREŚCI 2 Spis treści 1 Historia zmian 3 2 Zakres testów 3 2.1 Integration testing - Testy spójnosci.............. 3 2.2

Bardziej szczegółowo

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...

Bardziej szczegółowo

Skrócony przewodnik OPROGRAMOWANIE PC. MultiCon Emulator

Skrócony przewodnik OPROGRAMOWANIE PC. MultiCon Emulator Wspomagamy procesy automatyzacji od 1986 r. Skrócony przewodnik OPROGRAMOWANIE PC MultiCon Emulator Wersja: od v.1.0.0 Do współpracy z rejestratorami serii MultiCon Przed rozpoczęciem użytkowania oprogramowania

Bardziej szczegółowo

TELEFONIA INTERNETOWA

TELEFONIA INTERNETOWA Politechnika Poznańska Wydział Elektroniki i Telekomunikacji Katedra Sieci Telekomunikacyjnych i Komputerowych TELEFONIA INTERNETOWA Laboratorium TEMAT ĆWICZENIA INSTALACJA I PODSTAWY SERWERA ASTERISK

Bardziej szczegółowo

Adresy w sieciach komputerowych

Adresy w sieciach komputerowych Adresy w sieciach komputerowych 1. Siedmio warstwowy model ISO-OSI (ang. Open System Interconnection Reference Model) 7. Warstwa aplikacji 6. Warstwa prezentacji 5. Warstwa sesji 4. Warstwa transportowa

Bardziej szczegółowo

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Michał Ferliński Nr albumu: 187386 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo

VComNet Podręcznik użytkownika. VComNet. Podręcznik użytkownika Wstęp

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)

Bardziej szczegółowo

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe N, Wykład 4: Protokoły TCP/UDP i usługi sieciowe 1 Adres aplikacji: numer portu Protokoły w. łącza danych (np. Ethernet) oraz w. sieciowej (IP) pozwalają tylko na zaadresowanie komputera (interfejsu sieciowego),

Bardziej szczegółowo

Instrukcja podłączenia bramki IP 1R+L oraz IP 2R+L w trybie serwisowym za pomocą usługi telnet.

Instrukcja podłączenia bramki IP 1R+L oraz IP 2R+L w trybie serwisowym za pomocą usługi telnet. Tryb serwisowy Instrukcja podłączenia bramki IP 1R+L oraz IP 2R+L w trybie serwisowym za pomocą usługi telnet. Bramka IP 2R+L oraz IP 1 R+L może zostać uruchomiana w trybie serwisowym. W przypadku wystąpienia

Bardziej szczegółowo

Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki

Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki Cel Konfiguracja i testowanie serwera WWW Apache w celu optymalizacji wydajności. 2/25 Zakres Konfigurowanie serwera Apache jako wydajnego

Bardziej szczegółowo

Co w sieci piszczy? Programowanie aplikacji sieciowych w C#

Co w sieci piszczy? Programowanie aplikacji sieciowych w C# Co w sieci piszczy? Programowanie aplikacji sieciowych w C# Prelegenci: Michał Cywiński i Kamil Frankowicz kamil@vgeek.pl @fumfel www.vgeek.pl mcywinski@hotmail.com @mcywinskipl www.michal-cywinski.pl

Bardziej szczegółowo

BIOS, tryb awaryjny, uśpienie, hibernacja

BIOS, tryb awaryjny, uśpienie, hibernacja BIOS, tryb awaryjny, uśpienie, hibernacja Wykład: BIOS, POST, bootstrap loader, logowanie, uwierzytelnianie, autoryzacja, domena, tryb awaryjny, stan uśpienia, hibernacja, wylogowanie, przełączanie użytkownika,

Bardziej szczegółowo

Projektowanie bezpieczeństwa sieci i serwerów

Projektowanie bezpieczeństwa sieci i serwerów Projektowanie bezpieczeństwa sieci i serwerów Konfiguracja zabezpieczeń stacji roboczej 1. Strefy bezpieczeństwa przeglądarki Internet Explorer. W programie Internet Explorer można skonfigurować ustawienia

Bardziej szczegółowo

ZiMSK. Charakterystyka urządzeń sieciowych: Switch, Router, Firewall (v.2012) 1

ZiMSK. Charakterystyka urządzeń sieciowych: Switch, Router, Firewall (v.2012) 1 ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl Charakterystyka urządzeń sieciowych:

Bardziej szczegółowo

Konfigurowanie sieci VLAN

Konfigurowanie sieci VLAN Konfigurowanie sieci VLAN 1 Wprowadzenie Sieć VLAN (ang. Virtual LAN) to wydzielona logicznie sieć urządzeń w ramach innej, większej sieci fizycznej. Urządzenia tworzące sieć VLAN, niezależnie od swojej

Bardziej szczegółowo

Rejestratory Sił, Naprężeń.

Rejestratory Sił, Naprężeń. JAS Projektowanie Systemów Komputerowych Rejestratory Sił, Naprężeń. 2012-01-04 2 Zawartość Typy rejestratorów.... 4 Tryby pracy.... 4 Obsługa programu.... 5 Menu główne programu.... 7 Pliki.... 7 Typ

Bardziej szczegółowo

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Etapy uruchamiania systemu 010 2 Systemy operacyjne i sieci komputerowe. Część 010. I. Etapy uruchamiania systemu Windows

Bardziej szczegółowo

Wykonać Ćwiczenie: Active Directory, konfiguracja Podstawowa

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

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

Warstwy i funkcje modelu ISO/OSI

Warstwy i funkcje modelu ISO/OSI Warstwy i funkcje modelu ISO/OSI Organizacja ISO opracowała Model Referencyjny Połączonych Systemów Otwartych (model OSI RM - Open System Interconection Reference Model) w celu ułatwienia realizacji otwartych

Bardziej szczegółowo

1. Opis. 2. Wymagania sprzętowe:

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

Bardziej szczegółowo

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta Sieci komputerowe 1 Sieci komputerowe 2 Skąd dostać adres? Metody uzyskiwania adresów IP Część sieciowa Jeśli nie jesteśmy dołączeni do Internetu wyssany z palca. W przeciwnym przypadku numer sieci dostajemy

Bardziej szczegółowo

Kontrola dostępu, System zarządzania

Kontrola dostępu, System zarządzania Kontrola dostępu, System zarządzania Falcon to obszerny system zarządzania i kontroli dostępu. Pozwala na kontrolowanie pracowników, gości, ochrony w małych i średnich firmach. Jedną z głównych zalet systemu

Bardziej szczegółowo

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Akademickie Centrum Informatyki PS. Wydział Informatyki PS kademickie Centrum Informatyki PS Wydział Informatyki PS Wydział Informatyki Sieci komputerowe i Telekomunikacyjne Transmisja w protokole IP Krzysztof ogusławski tel. 4 333 950 kbogu@man.szczecin.pl 1.

Bardziej szczegółowo

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22 ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH struktury procesorów ASK SP.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 Maszyny wirtualne 2 3 Literatura c Dr inż. Ignacy

Bardziej szczegółowo

ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ DHCP

ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ DHCP ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl DHCP 1 Wykład Dynamiczna konfiguracja

Bardziej szczegółowo

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source Dr inż. Michał Bednarczyk Uniwersytet Warmińsko-Mazurski w Olsztynie Wydział Geodezji i Gospodarki Przestrzennej Katedra Geodezji

Bardziej szczegółowo

Podstawowe protokoły transportowe stosowane w sieciach IP cz.2

Podstawowe protokoły transportowe stosowane w sieciach IP cz.2 Laboratorium Technologie Sieciowe Podstawowe protokoły transportowe stosowane w sieciach IP cz.2 Wprowadzenie Ćwiczenie przedstawia praktyczną stronę następujących zagadnień: połączeniowy i bezpołączeniowy

Bardziej szczegółowo

Ćwiczenia z S7-1200. Komunikacja S7-1200 z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Ćwiczenia z S7-1200. Komunikacja S7-1200 z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP. Ćwiczenia z S7-1200 Komunikacja S7-1200 z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP FAQ Marzec 2012 Spis treści 1 Opis zagadnienie poruszanego w ćwiczeniu. 3 1.1 Wykaz

Bardziej szczegółowo

Monitor sieci wbudowany w Windows

Monitor sieci wbudowany w Windows Monitor sieci wbudowany w Windows Autorzy: Robert Milczarski Łukasz Stegliński Maciej Łaski Materiały zaczerpnięte ze strony: http://www.microsoft.com/poland/windows2000/win2000serv/pr_ser/roz09.mspx 1.

Bardziej szczegółowo

Instrukcja instalacji i obsługi programu Szpieg 3

Instrukcja instalacji i obsługi programu Szpieg 3 COMPUTER SERVICE CENTER 43-300 Bielsko-Biała ul. Cieszyńska 52 tel. +48 (33) 819 35 86, 819 35 87, 601 550 625 Instrukcja instalacji i obsługi programu Szpieg 3 wersja 0.0.2 123 SERWIS Sp. z o. o. ul.

Bardziej szczegółowo

INSTRUKCJA I WSKAZÓWKI

INSTRUKCJA I WSKAZÓWKI INSTRUKCJA I WSKAZÓWKI korzystania z maszyny wirtualnej Oracle VirtualBox 4 Michał Karbowańczyk, wrzesień 2011 Spis treści 1 Informacje wstępne...4 1.1 Nazewnictwo...4 1.2 Legalność...4 1.3 Instalacja

Bardziej szczegółowo

Q E M U. http://www.qemu.com/

Q E M U. http://www.qemu.com/ http://www.qemu.com/ Emulator procesora Autor: Fabrice Bellard Obsługiwane platformy: Windows, Solaris, Linux, FreeBSD, Mac OS X Aktualna wersja: 0.9.0 Większość programu oparta na licencji LGPL, a sama

Bardziej szczegółowo

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Modułowy programowalny przekaźnik czasowy firmy Aniro. Modułowy programowalny przekaźnik czasowy firmy Aniro. Rynek sterowników programowalnych Sterowniki programowalne PLC od wielu lat są podstawowymi systemami stosowanymi w praktyce przemysłowej i stały

Bardziej szczegółowo

Archiwizacja baz MSSQL /BKP_SQL/ opis oprogramowania

Archiwizacja baz MSSQL /BKP_SQL/ opis oprogramowania Archiwizacja baz MSSQL /BKP_SQL/ opis oprogramowania Kraków 2010 Przeznaczenie programu. Program BKP_SQL powstał z myślą ułatwienia procesy archiwizacji baz danych MSSQL. Program umożliwia seryjne wykonanie

Bardziej szczegółowo

1. INSTALACJA SERWERA

1. INSTALACJA SERWERA 1. INSTALACJA SERWERA Dostarczony serwer wizualizacji składa się z: 1.1. RASPBERRY PI w plastikowej obudowie; 1.2. Karty pamięci; 1.3. Zasilacza 5 V DC; 1,5 A; 1.4. Konwertera USB RS485; 1.5. Kabla

Bardziej szczegółowo

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4 Pamięć wirtualna Przygotował: Ryszard Kijaka Wykład 4 Wstęp główny podział to: PM- do pamięci masowych należą wszelkiego rodzaju pamięci na nośnikach magnetycznych, takie jak dyski twarde i elastyczne,

Bardziej szczegółowo

3. Sieć PLAN. 3.1 Adresowanie płyt głównych regulatora pco

3. Sieć PLAN. 3.1 Adresowanie płyt głównych regulatora pco 3. Sieć PLAN Wszystkie urządzenia podłączone do sieci plan są identyfikowane za pomocą swoich adresów. Ponieważ terminale użytkownika i płyty główne pco wykorzystują ten sam rodzaj adresów, nie mogą posiadać

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI DLA SIECI

INSTRUKCJA OBSŁUGI DLA SIECI INSTRUKCJA OBSŁUGI DLA SIECI Zapisywanie dziennika druku w lokalizacji sieciowej Wersja 0 POL Definicje dotyczące oznaczeń w tekście W tym Podręczniku użytkownika zastosowano następujące ikony: Uwagi informują

Bardziej szczegółowo

Aplikacja do zdawania egzaminów prawniczych v. 2.2 - Instrukcja użytkownika

Aplikacja do zdawania egzaminów prawniczych v. 2.2 - Instrukcja użytkownika 00-559 Warszawa, ul. Chopina 1 Aplikacja do zdawania egzaminów prawniczych v. 2.2 - Instrukcja użytkownika I. Wstęp Niniejsza instrukcja skierowana jest do zdających w 2013 r. egzamin notarialny, w rozumieniu

Bardziej szczegółowo

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Systemy Operacyjne i Sieci Komputerowe Klasa: pierwsza Dział Dopuszczający Dostateczny Dobry

Bardziej szczegółowo

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi) Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie drugie (jedne zajęcia) Temat: Procesy i sygnały w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Budowa procesu

Bardziej szczegółowo

Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie

Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie Stanowisko laboratoryjne ze sterownikiem CX9000 Sterownik CX9000 należy do grupy urządzeń określanych jako komputery wbudowane (Embedded-PC).

Bardziej szczegółowo

System archiwizacji i konserwacji baz danych MS SQL

System archiwizacji i konserwacji baz danych MS SQL System archiwizacji i konserwacji baz danych MS SQL Autor : Krzysztof Jarecki Spis treści 1. Przeznaczenie systemu... 3 2. Instalacja systemu... 4 3. Konfiguracja archiwizatora... 5 3.1 Przykład archiwizacji

Bardziej szczegółowo

MASKI SIECIOWE W IPv4

MASKI SIECIOWE W IPv4 MASKI SIECIOWE W IPv4 Maska podsieci wykorzystuje ten sam format i sposób reprezentacji jak adresy IP. Różnica polega na tym, że maska podsieci posiada bity ustawione na 1 dla części określającej adres

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

Bardziej szczegółowo

Praca w sieci z serwerem

Praca w sieci z serwerem 11 Praca w sieci z serwerem Systemy Windows zostały zaprojektowane do pracy zarówno w sieci równoprawnej, jak i w sieci z serwerem. Sieć klient-serwer oznacza podłączenie pojedynczego użytkownika z pojedynczej

Bardziej szczegółowo

Instalacja aplikacji

Instalacja aplikacji 1 Instalacja aplikacji SERTUM... 2 1.1 Pobranie programu z Internetu... 2 1.2 Instalacja programu... 2 1.3 Logowanie... 3 2 Instalacja aplikacji RaportNet... 4 2.1 Pobranie programu z Internetu... 4 2.2

Bardziej szczegółowo

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum

Rok szkolny 2015/16 Sylwester Gieszczyk. Wymagania edukacyjne w technikum Lp. 1 Temat 1. Konfigurowanie urządzeń. Uzyskiwanie dostępu do sieci Internet 2 3 4 5 Symulatory programów konfiguracyjnych urządzeń Konfigurowanie urządzeń Konfigurowanie urządzeń sieci Funkcje zarządzalnych

Bardziej szczegółowo

Symulacja działania sterownika dla robota dwuosiowego typu SCARA w środowisku Matlab/Simulink.

Symulacja działania sterownika dla robota dwuosiowego typu SCARA w środowisku Matlab/Simulink. Symulacja działania sterownika dla robota dwuosiowego typu SCARA w środowisku Matlab/Simulink. Celem ćwiczenia jest symulacja działania (w środowisku Matlab/Simulink) sterownika dla dwuosiowego robota

Bardziej szczegółowo

Modyfikacja algorytmów retransmisji protokołu TCP.

Modyfikacja algorytmów retransmisji protokołu TCP. Modyfikacja algorytmów retransmisji protokołu TCP. Student Adam Markowski Promotor dr hab. Michał Grabowski Cel pracy Celem pracy było przetestowanie i sprawdzenie przydatności modyfikacji klasycznego

Bardziej szczegółowo

Instalacja Wirtualnego Serwera Egzaminacyjnego

Instalacja Wirtualnego Serwera Egzaminacyjnego Instalacja Wirtualnego Serwera Egzaminacyjnego (materiał wewnętrzny: aktualizacja 2010-10-26 Pilotaż Egzaminów Online) Wprowadzenie: 1. Wirtualny Serwer Egzaminacyjny ma niewielkie wymagania sprzętowe

Bardziej szczegółowo

Instrukcja integratora - obsługa dużych plików w epuap2

Instrukcja integratora - obsługa dużych plików w epuap2 Instrukcja integratora - obsługa dużych plików w epuap2 Wersja: 1.1 Strona 1 z 18 Spis treści SPIS TREŚCI... 2 WPROWADZENIE ORAZ INFORMACJE OGÓLNE... 3 1.1 WSTĘP... 3 1.2 WARUNKI KONIECZNE DO SPEŁNIENIA

Bardziej szczegółowo

Data wydania: 2013-06-12. Projekt współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego

Data wydania: 2013-06-12. Projekt współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego Wersja 1.0 Projekt współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Społecznego w ramach Programu Operacyjnego Kapitał Ludzki Tytuł dokumentu: Dokumentacja dla administratora strony

Bardziej szczegółowo

Laboratorium Sieci Komputerowych - 2

Laboratorium Sieci Komputerowych - 2 Laboratorium Sieci Komputerowych - 2 Analiza prostych protokołów sieciowych Górniak Jakub Kosiński Maciej 4 maja 2010 1 Wstęp Zadanie polegało na przechwyceniu i analizie komunikacji zachodzącej przy użyciu

Bardziej szczegółowo

Instrukcja obsługi programu CMS Dla rejestratorów HANBANG

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:

Bardziej szczegółowo

Monitor maszyn wirtualnych

Monitor maszyn wirtualnych Monitor maszyn wirtualnych Jest to oprogramowanie nadzorujące działanie systemów gości Może być to oddzielny software lub zintegrowany z systemem operacyjnym System gospodarza Oznaczany zazwyczaj jako

Bardziej szczegółowo