Projekt i implementacja rozproszonego
|
|
- Teresa Dąbrowska
- 8 lat temu
- Przeglądów:
Transkrypt
1 POLITECHNIKA KRAKOWSKA Wydział Fizyki, Matematyki i Informatyki Stosowanej Informatyka PRACA MAGISTERSKA Projekt i implementacja rozproszonego systemu czasu rzeczywistego Autor: Marcin Szelc Promotor: dr inż. Lech Jamroż
2 KRAKÓW,
3 Za pomoc przy pisaniu pracy oraz udzielenie cennych wskazówek składam serdeczne podziękowania Panu dr inż. Lechowi Jamrożowi Spis treści Wstęp. 4 Cel pracy i założenia. 6 Rozdział I Podstawy systemów rozproszonych i czas rzeczywistego Systemy rozproszone w aspekcie systemów czasu rzeczywistego. 7 Rozdział II Analiza i charakterystyka systemu Zapotrzebowanie przeznaczenie systemu Charakterystyka wykonania poszczególnych zadań. 14 Rozdział III Projektowanie systemu Architektura Projekt rozwiązań cech systemu rozproszonego i czasu rzeczywistego Diagramy UML Diagramy przypadków użycia Diagramy klas Diagramy czynności Operacje wykonywane przez system. 48 Rozdział IV Implementacja rozproszonego systemu czasu rzeczywistego Narzędzia, język programowania i biblioteki użyte do implementacji systemu. _ Implementacja strony serwera Implementacja strony klienta Koordynacja komunikacja Konfiguracja systemu Widoki systemu. 58 Rozdział V Testowanie rozproszonego systemu czasu rzeczywistego Testowanie Testy poprawności logicznej jednostkowe. 65 3
4 5.1.2 Testy wydajnościowe i czasu rzeczywistego Testy tolerancji błędów odporność na awarie sprzętu i sieci. 74 Rozdział VI Podsumowanie Wnioski Podsumowanie 76 Bibliografia. 78 Spis rysunków. 79 Spis kodów źródłowych. 80 Wstęp Wraz z rozwojem technologii rośnie coraz większy nacisk na czas przetwarzania i niezawodność procesów. Większość powstających obecnie dużych systemów to systemy rozproszone. Bardzo często nie są one jednak zoptymalizowane pod kątem wydajności, nacisk kładzie się w nich np. na niezawodność, poprawność działania itp. W systemach czasu rzeczywistego wykonywanie zadań na czas jest priorytetem i jest ważniejsze od dokładności obliczeń. Zaprojektowanie rozproszonego systemu czasu rzeczywistego jest sprawą nie trywialną. Niektóre założenia systemu rozproszonego idą na przekór systemowi czasu rzeczywistego. Oczywiście bardzo wiele zależy od środowiska pracy np. zdecydowanie łatwiej będzie wykonać system przewidywalny pod względem czasowym w środowisku zamkniętym tj. połączony łączami komunikacyjnymi na wyłączność (lokalnymi), niż system, który jest dostępny w sieci internet, gdyż komunikacja połączenia klientserwer może nieść duży narzut czasowy, którego nie można dokładnie określić. Tworzenie systemu czasu rzeczywistego (szczególnie z rygorystycznymi wymaganiami czasowymi), w którym komunikacja pomiędzy węzłami odbywa się z wykorzystanie internetu jest bardzo trudne, wręcz niemożliwe. Sprawa wygląda lepiej w przypadku tworzenia systemu z luźnymi ograniczeniami czasowymi. Bez względu na środowisko, rozmiary takiego systemu, należy dokonać głębokiej analizy każdego projektowanego komponentu, elementów komunikacyjnych. Implementacje należy realizować z wykorzystaniem metod optymalizacji (optymalizację można zacząć przeprowadzać po zakończeniu implementacji i przetestowaniu funkcjonalności, jednak optymalizacja wydajnościowa powinna być w pewnym stopniu przeprowadzana wcześniej), natomiast w końcowej fazie należy przeprowadzić rozległe testy 4
5 funkcjonalne, ze szczególnym uwzględnieniem symulowania niekorzystnych warunków, dzięki czemu będzie można poznać reakcje systemu w krytycznych sytuacjach i otrzymać wstępną odpowiedź czy system w danym stanie w ogóle nadaje się do zastosowania jako system czasu rzeczywistego. Modelowanie komponentów, które wymagają synchronizacji dostępu, będzie wymagało kompromisu czasowego (każda synchronizacja niesie ze sobą narzut czasowy). Dlatego też należy wyizolować najmniejszy fragment operacji, który należy poddać synchronizacji, aby zminimalizować straty. Projektowanie systemu czasu rzeczywistego wiąże się w dużej mierze z optymalizacją systemu pod kątem wydajności jest to kluczowy element takiego systemu. Równie ważne jest szeregowanie zadań, a w przypadku systemu rozproszonego odpowiedni rozdział zadań, podzadań do jednostek przetwarzających. O ile poprawa wydajności poszczególnych elementów może sprowadzać się do testów jednostkowych i optymalizacji fragmentów kodu, o tyle zastosowany algorytm ściśle zależy od wymagań czasowych, środowiska pracy, powinien być więc wypadkową działania całego systemu. Przy projektowaniu systemu należy kłaść duży nacisk na jego elastyczność. Na wstępie został przedstawiony jedynie zarys niektórych aspektów rozproszonych systemów czasu rzeczywistego, więcej tych aspektów oraz szerzej o nich w kolejnych rozdziałach pracy. 5
6 Cel pracy i założenia Celem pracy jest zaprojektowanie i implementacja rozproszonego systemu czasu rzeczywistego, a także zarysowanie problematyki systemów rozproszonych i czasu rzeczywistego w kontekście zderzenia się tych dwóch technologii. Założeniem realizowanego systemu jest przetwarzanie zadań (dostarczanych przez klientów) w czasie rzeczywistym przez system rozproszony. Klient wywołuje serwis obsługi zadań i przesyła zadanie do wykonania. Zadanie jest przesyłane w częściach (klient dokonuje podziału zadania) do serwera będącego w danej chwili dyspozytorem (serwerem centralnym), który dokonuje rozdziału podzadań do serwerów wykonujących (zwanych dalej operacyjnymi lub współpracującymi). Serwery wybierane są na podstawie wykonywanej cyklicznie analizy ich obciążenia oraz priorytetu zadania, żądanego czasu zakończenia zadania (deadline) i szacowanego czasu zakończenia. Wyniki wykonania zadania są przesyłane w częściach do klientów. Biorąc pod uwagę, że implementacja rozproszonego systemu czasu rzeczywistego to problematyka niezmiernie złożona i czasochłonna, system będący tematem niniejszej pracy tworzy namiastkę takiego systemu, daje jednak podwaliny pod dalszą rozbudowę poprzez wydzielenie aspektów strategicznych działania takiego systemu (np. planisty szeregującego zadania, synchronizacji dostępu do danych, synchronizacji czasowej, koordynacji działania). Realizowany system ma możliwość łatwego dołączania nowych zadań, które będzie mógł wykonywać. W realizowanym systemie 6
7 dołączony został moduł matematyczny mnożenia dwóch macierzy o dowolnych rozmiarach ze względu na łatwą skalowalność tego zadania, dzięki czemu można było porównywać wyniki przy różnych rozmiarach macierzy. Również w łatwy sposób można dołączać nowe algorytmy szeregujące zadanie, które mogą być zmieniane podczas działania systemu w zależności od satysfakcji uzyskiwanych czasów wykonania zadania. Rozdział I Podstawy systemów czasu rzeczywistego i systemów rozproszonych 1.1 Systemy rozproszone w aspekcie systemów czasu rzeczywistego. System czasu rzeczywistego jest to system, w którym obsługiwanie zdarzeń powinno być wykonane w ustalonym limicie czasu. Poprawność działania tego systemu zależy nie tylko od poprawności wyników, ale także od dostarczenia tych wyników przed upływem nieprzekraczalnego terminu deadline. W systemach czasu rzeczywistego duży nacisk kładzie się na scenariusze pesymistyczne duże obciążenia zasobów. Kosztem średniej wydajności systemu i mocy obliczeniowej, polepsza się czasy w przypadkach pesymistycznych. Przykłady: komputer sterujący rakietą musi w określonym czasie wyznaczyć jej kurs, odtwarzacz filmów musi zdekodować klatki w określonym i krótkim czasie, zależnym od liczby klatek na sekundę np. dla 50 klatek na sekundę, każda klatka musi być zdefiniowana w czasie nie większym niż 25ms, komputer sterujący różnego typu urządzeniami np. AGD sterowanie pompą w pralce. 7
8 Systemy czasu rzeczywistego stosuje się w następujących dziedzinach: multimedia, telekomunikacja, przemysł, medycyna, astronomia, aeronautyka, robotyka, kontrola i pomiary, urządzenia podwodne. Cechy systemu czasu rzeczywistego: równoległe działanie oddzielnych komponentów systemu, udogodnienie w interakcjach ze sprzętem, gwarantowany czas odpowiedzi, ekstremalna solidność, wydajna implementacja, tolerancja błędów. Podział systemów czasu rzeczywistego ze względu na ograniczenia czasowe: rygorystyczne (hard real time) system, w którym wykonanie zadania w żądanym czasie ma znaczenia dla poprawności funkcjonowania, tj. przekroczenie deadline może spowodować awarie systemu, nieprawidłowe działanie itp. w zależności od specyfiki systemu, a nawet zagrożenie dla ludzi, luźne (soft real time) system, w którym incydentalnie mogą zdarzać się przekroczenia żądanego czasu wykonania bez wpływu na poprawność oraz rezultaty jego działania, mocno rygorystyczne (real real time) jest to system hard real time, w którym dodatkowo czasy żądania wykonania zadania są bardzo małe, bezwzględnie rygorystyczne (firm real time) jest to specyficzny system hard real time, w którym przekroczenie deadline powoduje bezużyteczność otrzymanych wyników, jednak nie powoduje groźnych skutków. 8
9 Algorytmy szeregowania w systemach czasu rzeczywistego EDF (Earliest deadline first) najpierw z najwcześniejszym czasem deadline, LST (Least slack time first) najpierw z najmocniejszym ograniczeniem czasowym, DM (Deadline monotonic) monotoniczne. Parametry algorytmów szeregowania: faza (phase), okres (periodic), trwanie (duration), względne ograniczenie czasowe (relative deadline). Zadania, z którymi należy się zmierzyć podczas projektowania systemu czasu rzeczywistego: zidentyfikowanie zdarzeń, na które system powinien reagować, dla każdego zdarzenia i związanej z nim reakcji należy zidentyfikować wymagania czasowe, zdarzenia i reakcje należy zaprojektować we współbieżnych wątkach, dla każdego zdarzenia i reakcji zaprojektować algorytmy do przeprowadzania koniecznych obliczeń. Algorytmy te powinny być opracowane we wczesnej fazie projektu, aby znać ilość przetwarzania i czas potrzebny do jego realizacji, szeregowanie powinno zapewnić, że procesy będą uruchomione w chwili wystarczającej do spełnienia ograniczeń czasowych, integracja wszystkich modułów. Wartość systemu czasu rzeczywistego określana jest poprzez: przewidywalność i szybkość odpowiedzi na ważne zdarzenia, wysoki poziom planowania, stabilność podczas przejściowego przeładowania w sytuacji przeładowania systemu, gdy nie jest możliwe wykonanie wszystkich zadań na czas, system gwarantuje nie przekroczenie deadline dla krytycznych operacji, w przypadku systemu rozproszonego sieć komunikacyjna musi działać stabilnie. Główne moduły wchodzące w skład systemu czasu rzeczywistego: 9
10 moduł wykonawczy, moduł monitorowania i sterowania, moduł gromadzenia danych o stanach systemu w określonym czasie. Obecnie istnieje kilka systemów operacyjnych czasu rzeczywistego, najważniejsze to: QNX, WxWorks. System rozproszony (distributed system) to zbiór niezależnych węzłów (komputerów) połączonych w jedną, spójną logicznie całość, których zadaniem jest współdziałanie przy wykonywaniu zadań. Połączenie węzłów najczęściej realizowane jest przez sieć komputerową, jednak można wykorzystać również inne, prostsze rozwiązania, np. magistrale systemowe. Cechy systemu rozproszonego: współdzielenie zasobów (resource sharing) zasoby są (mogą być) współdzielone przez wielu użytkowników (klientów), otwartość (openness) możliwość rozbudowy systemu zarówno pod względem sprzętowym, jak i oprogramowania, współbieżność (concurrency) zdolność do przetwarzania wielu zadań jednocześnie, skalowalność (scalability) polega na zachowaniu podobnej wydajności systemu przy zwiększeniu skali systemu (np. liczby procesów, komputerów, itp.), odporność na błędy (fault tolerance) zdolność działania systemu mimo pojawiania się błędów (np. poprzez utrzymywanie nadmiarowego sprzętu), transparentność, przeźroczystość (transparency) postrzeganie systemu przez użytkownika jako całości, a nie poszczególnych składowych. Zadania, z którymi należy się zmierzyć podczas projektowania systemu rozproszonego: projektowanie działania systemu, synchronizacja procesów wykorzystanie koordynatora zarządzającego. Brak centralnego zegara i współdzielonej pamięci (kłopot z określeniem kolejności zdarzeń), planowanie przydziału (schedulling zasobów) przydział zadania do określonego węzła, 10
11 migracja procesów redystrybucja zadań pomiędzy jednostkami należącymi do systemu, dostęp do sekcji krytycznej może być wąskim gardłem, asynchroniczność wykonywanie zadań w niezdefiniowanej kolejności, bezawaryjność obsługa sytuacji wyjątkowych, awarii, elekcja koordynatora w wyniku awarii (np. algorytm Tyrana), bezpieczeństwo danych ochrona dostępu do zasobów. Jednym z najważniejszych aspektów systemu rozproszonego jest problem przydziału zadań do węzłów systemu. Wyróżnia się dwa podejścia do tego problemu: dzielenie obciążania (load sharing) nowe zadanie jest uruchamiane na jednostce najmniej obciążonej w danym momencie. Proces mający za zadanie dzielenie obciążenia wyszukuje najmniej obciążone węzły systemu, równoważenie obciążenia (load balancing) równoważenie obciążenia pomiędzy wszystkie jednostki. Algorytmy dzielenia obciążenia: token ring jednostki wchodzące w skład systemu tworzą logiczny pierścień. Jednostka będąca w danej chwili posiadaczem tokena ma możliwość wysłania do pozostałych węzłów tokena z żądaniem użycia bezczynnej (najmniej obciążonej) jednostki, program robaka (worm program) wyszukiwana jest bezczynna jednostka, po czym alokowane są na niej potrzebne zasoby do wykonania zadania. Tworzony jest potomek tego procesu, który poszukuje następną bezczynną jednostkę. Gdy zostanie znaleziona odpowiednia liczba jednostek do wykonania zadanie, zostaje ono wykonane, system w górę i w dół istnieje jednostka zwana koordynatorem, która przydziela zasoby jednostki do realizacji zadań. Dodatkowo na każdej jednostce istnieje proces szeregujące zadania na danej jednostce. Projektowanie algorytmów równoważenia obciążenia jest nieco trudniejsze w stosunku do algorytmów dzielenia obciążenia. Potrzebne jest tutaj: porównanie obciążenia pojedynczych jednostek szczególnie trudne w systemach heterogenicznych, 11
12 umieszczenie procesu badającego obciążenie w odpowiednim węźle, migracja zadań. Algorytmy load balancing można podzielić na dwie główne kategorie: statyczne zadania są przypisywane do jednostek w momencie ich kompilacji, przed rozpoczęciem wykonywania. Nie występuje tutaj migracja zadań (przenoszenie zadań na inną jednostkę w trakcie wykonywania). Dokładne oszacowanie zachowania aplikacji na etapie kompilacji jest zadaniem trudnym, jednak daje wymierne korzyści wynikające z utraty czasu na dokonanie wyboru jednostki do wykonania danego zadania na etapie działania programu oraz braku potrzeby śledzenia stanu systemu (jego obciążenia) podczas działania. Efektywność tych algorytmów w znacznej mierze zależy od możliwości przewidzenia działania systemu, homogeniczności, wielkości zadań, ilości danych komunikacyjnych, dynamiczne zadania są przydzielane do poszczególnych jednostek podczas działania systemu. Może występować migracja zadań przenoszenia zadania na jednostki mniej obciążone od tych, na których w danej chwili wykonywane jest zadanie. Dynamiczne równoważenie obciążenia daje lepsze rezultaty dla zadań, w których trudno jest dokładnie oszacować czas trwania oraz liczbę danych do komunikacji oraz dla aplikacji, których wymagania systemowe mają wiele parametrów. Ta metoda równoważenia obciążenia ponosi koszty czasowe i zasobowe potrzebne do ciągłej analizy obciążenia systemu. Wśród algorytmów dynamicznych wyróżnia się adaptujące się (dynamiczna i modyfikowana redystrybucja zadań), zcentralizowane (istnieje maszyna zwana koordynatorem, która zarządza przydziałem zasobów), rozproszone (w przydziale zasobów uczestniczy wiele węzłów systemu). Przykłady algorytmów równoważących obciążenie: Bryant a i Finkel a tworzone są pary pomiędzy jednostkami, pomiędzy którymi procesy są migrowane. Jeśli w danej chwili jednostka będąca z daną jednostką, na której wykonywane jest zadanie w parze jest mniej obciążona, to na nią migrowane jest zadanie, Barak a i Shiloh a do utrzymywania stanu obciążenia jednostek w systemie wykorzystywany jest wektor obciążenia, który posiada każda jednostka. Dane te są aktualizowane w określonych odstępach czasu przez jednostki oraz połowa takiego wektora jest odsyłana na losowo wybraną jednostkę, 12
13 symetrycznie inicjowany połączenie dwóch protokołów alokacji zadań inicjowany przez nadawcę i inicjowany przez odbiorcę. W pierwszym przypadku akcja inicjowana jest przez przeciążoną maszynę, która poszukuje jednostki do migracji swojego zadania. W drugiej przypadku inicjatorem jest mało obciążona jednostka, która próbuje uzyskać zadanie od bardziej obciążonej jednostki. Systemy rozproszone w aspekcie systemów czasu rzeczywistego W systemach rozproszonych dąży się do dzielenia obciążenia oraz równoważenia obciążenia. W ogólnym problemie przetwarzania zadań daje to najlepsze pod względem czasowym (w ujęciu całościowym) wykonanie zadań. Jednak w systemach rozproszonych interesuje nas bardziej czas wykonania każdego zadania w ujęciu lokalnym (w obrębie tego zadania). W systemie czasu rzeczywistego zadania mają różne oczekiwane czasy wykonania, różne priorytety, tak więc podczas działania systemu jednostki powinny być obciążone w sposób nierównomierny, aby np. podczas potrzeby wykonania zadania z krytycznymi ograniczeniami czasowymi istniała jednostka, która jest nieobciążona (lub przynajmniej słabo obciążona). Inne przykłady czynników kolidujących ze sobą pomiędzy systemami rozproszonymi, a czasu rzeczywistego: komunikacja sieciowa opóźnienia spowodowane komunikacją negatywny wpływ zarówno dla systemów czasu rzeczywistego jak i rozproszonych szczególnie dla niewielkiej ilości obliczeń w stosunku do ilości danych zadania, zastosowanie koordynatora w systemie rozproszonym staje się wąskim gardłem w systemie czasu rzeczywistego, synchronizacja synchronizacja dostępu do danych (dotyczy również synchronizacji lokalnej współbieżnych wątków) podobnie jak przy komunikacji, wiele węzłów większa możliwość awarii poszczególnych jednostek może to być krytyczne dla pojedynczych zadań (system czasu rzeczywistego), w ujęciu systemu jest to pozytywne, gdyż pojedynczy węzeł ma mały wpływ na cały system (może być łatwo zastąpiony). Pozytywny wpływ systemu rozproszonego na elementy systemu czasu rzeczywistego (straty czasowe): większe możliwości obliczeniowe nwęzłów od pojedynczego, odporność na awarie wiele węzłów, które mogą się zastępować bardzo istotne zarówno w systemach czasu rzeczywistego jak i rozproszonych, 13
14 bardziej stabilne działanie, otrzymywanie rezultatów na czas. Rozdział II Analiza i charakterystyka systemu 2.1 Zapotrzebowanie przeznaczenie systemu Przeznaczenie systemu dotyczy jego wykorzystania do wykonania konkretnych zadań. System powinien być w jak największym stopniu systemem ogólnego przeznaczenia (tj. powinna być łatwa możliwość podłączania modułów po stronie serwera i klienta, dzięki którym możliwe będzie wykonywanie nowych zadań. System w wersji podstawowej powinien zawierać moduł przetwarzający zadanie matematyczne mnożenie dwóch macierzy. System powinien posiadać następujące cechy i spełniać wymogi: wykonywać zadania na czas (zgodnie ze specyfiką systemu czasu rzeczywistego), wykorzystując do osiągnięcia tego celu algorytmy szeregowania globalnego (przydział jednostki do wykonania danego zadania) oraz szeregowania lokalnego (szeregowanie zadań w danym węźle), stabilność system powinien działać stabilnie przy dużym obciążeniu połączeniami i obliczeniami, modyfikować swoje działanie podczas pracy zmiana algorytmu planowania w przypadku nie spełniania wymagań czasowych wykonywanych zadań, odporność na awarie system powinien w miarę wcześnie wykrywać awarie i wykonywać procedury, które spowodują, że awaria pojedynczych węzłów nie zachwieje działania całego systemu, przezroczystość działania dla użytkownika po stronie klienta system powinien być jak pojedyncza jednostka przetwarzająca, dzielenie obciążenia (load share) i równoważenie obciążenia (load balancing). Dzielenie obciążenia jest specyficzne dla systemów czasu rzeczywistego, zwykłe systemy rozproszone raczej wykorzystują równoważenie obciążenia, obsługa sesji klient jest jednoznacznie identyfikowany, jak również pojedyncze operacje składające się na zadanie, których wykonywanie wywołuje w systemie, są identyfikowane w obrębie tego zadania i obsługi tegoż klienta, 14
15 monitorowanie i raportowanie działania system monitoruje obciążenie poszczególnych jednostek, jak również wykonywanie zadań w czasie deadline. 2.2 Charakterystyka wykonania poszczególnych zadań Poniżej zostanie zaprezentowane uruchomienie systemu (serwerów i klienta) w kolejnych krokach. Serwer: uruchomienie serwera (dyspozytora), serwer dyspozytor dokonuje inicjalizacji poszczególnych modułów na podstawie pliku (plików) konfiguracyjnego, uruchomienie kolejnego (kolejnych serwerów) operacyjnych (opcjonalnie możliwość uruchamiania wszystkich serwerów z poziomu serwera głównego), serwery operacyjne wczytują plik konfiguracyjny i inicjalizuje odpowiednie moduły, synchronizacja serwera dyspozytora i serwerów operacyjnych, podczas której dochodzi do wymiany podstawowych parametrów i testów (np. wydajności jednostek procesor, pamięć itp.), synchronizacja zegarów, ustanowienia rezerwowych serwerów centralnych na wypadek awarii lub wyłączenia aktualnie zarządzającego serwera, testowania łącza (przepustowość, zmienność przepustowości) parametry te mogą zmieniać się podczas działania systemu, dlatego potrzebna jest okresowe testowanie, każdy serwer zgłasza dyspozytorowi gotowość działania system jest gotowy do użycia, gdy sam się skonfiguruje, dołączanie kolejnych serwerów może nastąpić w dowolnej chwili. Klient: uruchomienie klienta, klient wczytuje podstawowe parametry inicjalizacji, w tym adres dostępu do usługi (oczywiście istnieje możliwość ustawienia tych parametrów przez użytkownika już podczas działania aplikacji klienta z panelu administracyjnego, 15 na żądanie użytkownika (lub automatycznie) następuje połączenie do serwera,
16 na żądanie użytkownika (lub automatycznie), następuje rozpoczęcie wykonywania zadań (działania systemu). Wykonywanie zadania (zarówno klient jak i serwer są wielowątkowe): zadania i operacje są wczytywane z plików (xml lub properties), fabryki uruchamiają odpowiednie moduły do pobierania zadania, komunikacji z serwerem, odbioru wyników i prezentacji lub zapisu ich rezultatów, klient przesyła kolejne części zadania do serwera dyspozytora lub serwera współpracującego, zadanie wykonane w całości aktualizacja statystyk serwer centralny (oraz konkretni klienci) posiadają statystyki wykonania poszczególnych zadań względem żądanego czasu, algorytmu itp. Scenariusz w przypadku przesłania zadania do systemu serwera dyspozytora: serwer centralny odbiera zadanie i w zależności od deadline oraz priorytetu dokonuje wyboru (algorytm przydziału) serwera operacyjnego, do którego prześle daną część zadania, serwer operacyjny wykonuje zadania (części) i przesyła je do serwera centralnego, który odsyła kolejne części do odpowiedniego klienta. Scenariusz w przypadku przesłania zadania do serwera stacja wybrana na podstawie algorytmu przydziału do wykonania danej części (całości zadania), serwer operacyjny wykonuje operacje i przesyła wyniki bezpośrednio do klienta. Sposób przetwarzania operacji: przydzielenie serwera operacyjnego dla całego zadania klient otrzymuje adres serwera operacyjnego i komunikuje się z nim bezpośrednio w celu wykonania zadania wykorzystywane do mniejszych zadań, zadanie wykonywane przez kilka serwerów klient komunikuje się z serwerem centralnym, który rozporządza przydziałem wykonywania poszczególnych części zadania do serwerów operacyjnych dla średnich i dużych zadań. mix połączenie obu powyższych metod serwer centralny przydziela klientowi serwer operacyjny do wykonania danego zadania. Komunikacja pomiędzy serwerem operacyjnym a klientem jak w pierwszym sposobie, jednak w każdej chwili serwer operacyjny może przydzielić klientowi nowy serwer najbardziej skomplikowana metoda, może dawać bardzo dobre rezultaty dla zadań najdłuższych. 16
17 Zadanie jest to jednostka logiczna składająca się z operacji pojedyncza operacja to funkcja (analogiczna do funkcji w języku programowania) np. dodawanie dwóch macierzy. Operacja jest dzielona np. dla dodawania macierzy częścią operacji będzie dodawanie pojedynczych wierszy. Osoba tworząca plik zadaniowy używa w nim pojęć tj. zadania i operacji, natomiast podział operacji na części jest dokonywana przez moduł funkcjonalny systemu odpowiedzialny za wykonanie danej operacji. Wyniki operacji są składane przez odpowiedzialny za to zadanie moduł klienta. Rozważane sposoby komunikacji: UDP protokół UDP może zostać wykorzystany do zadań wymagających dużej szybkości wykonania, które są mało wrażliwe na częściowe braki wykonania operacji, TCP dla zadań w których ważniejsze jest otrzymanie odpowiednich i kompletnych wyników od szybkości ich otrzymania. TCP z serializacją Java wykorzystanie mechanizmu serializacji zaimplementowanego w standardzie JDK. W systemie użyte zostały sposób trzeci, jednak zważywszy na zaprojektowanie systemu z położeniem dużego nacisku na: projektowanie interfejsów, polimorfizm (dzięki dziedziczeniu), składowanie obiektów, w dość łatwy sposób można zaimplementować i podłączyć do systemu inne sposoby komunikacji. Do zaimplementowania komunikacji poprzez protokół UDP, należałoby tworzyć pakiet z: adresem klienta, nazwą typu operacji, nazwą operacji argumentami, numerem części zadania. W przypadku protokołu TCP, który jest połączeniowy i automatycznie dołącza adres klienta, pole to można było pominąć. Atrybuty zadania (operacji): 17 deadline, priorytet.
18 W wyniku wystąpienia sytuacji anormalnych tj. w przypadku awarii serwera operacyjnego serwer dyspozytor wysyła do klienta informacje o tym, jakie operacje nie zostały wykonane. Klient (aplikacja klienta) decyduje o wysłaniu ponownego żądania wykonania tych operacji lub ignoruje tą informację (w przypadku mniej istotnych operacji, ich niewielkiej ilości na podstawie analizy kosztów i zysków odnośnie wymagań czasowych i jakości działania), klient może wywołać ponowne żądanie w przypadku, gdy uzna, że wyniki zadania są niezbędne do prawidłowego działania systemu. Parametry serwerów: wydajność znana podczas startu systemu niezmienna w czasie działania systemu, obciążenie zmienne podczas działania systemu. Przepustowość łącza zmienna podczas działania systemu na skutek: ogólnego obciążenia sieci, obciążenia sieci przez system zadanie może wymagać względnie niewielkiej ilości obliczeń w stosunku do przesyłanych danych i odwrotnie dużej ilości zadań i małej ilości przesyłanych danych. Algorytm przydziału (system posiada kilka algorytmów przydziału) dokonuje wyboru odpowiedniego serwera operacyjnego do wykonania zadania (lub operacji) na podstawie: typu zadania, parametrów serwera, przepustowości łącza. Wykonywanie powinno odbywać się: z wykorzystaniem load sharing moduł odpowiedzialny za nierównomierne obciążenie serwerów. Oczywiście jest on powiązany z algorytmem przydziału (sercem systemu), bezawaryjnie oprócz wspomnianej wcześniej kontroli zagubionych pakietów system posiada również możliwość reorganizacji serwerów na wypadek awarii, przezroczyście dla klienta klient nie jest świadomy istnienia wielu jednostek, system traktowany jest jako całość. Ogólny podział awarii, które mogą wystąpić podczas działania systemu: 18
19 serwera operacyjnego awaria ta nie powinna w żadnym wypadku powodować poważnych szkód działania systemu, oprócz chwilowych opóźnień czasowych wykonania poszczególnych zadań, serwera dyspozytora awaria ta w skrajnych przypadkach może powodować poważne problemy wykonania poszczególnych zadań (duże opóźnienia czasowe), jednak nie powinna powodować zatrzymania działania systemu, jego załamania. W przypadku wystąpienia awarii system powinien: przeorganizować się poprzez wybór nowego serwera dyspozytora, poinformować klientów o typie awarii (względem poszczególnych zadań i ich priorytetów), w razie potrzeby (żądań klientów) wykonać niewykonane zadania. Bardzo ważne jest informacja dla klientów o stanie awarii, oraz o możliwych opóźnieniach (ich stopniu) w zależności ile zadań uległo zagubieniu na skutek awarii. W wyniku tego klient (aplikacja) będzie miał możliwość podjęcia decyzji o ponownym wykonaniu zadania lub jego zaniechaniu i kontynuowaniu pracy. Rozdział III Projektowanie systemu Projektowanie systemu to najważniejszy element całego przedsięwzięcia. Odpowiednio zaprojektowany system posiada następujące cechy: łatwo modyfikowalny, skalowalny, intuicyjny w obsłudze, Proces projektowania wpływa na wszystkie pozostałe elementy tworzenia systemu tj. jego implementację, testowanie i wdrożenie. Podstawowe składniki systemu będącego tematem niniejszej pracy: biblioteki klasy wspólne dla 3 poniższych składników pracy: narzędzi, serwerów, klientów, narzędzia do tworzenia danych, serwery dyspozytor i współpracujący, Zadaniem serwera współpracującego jest realizacja żądań wykonania zadań przez stacje klientów, ciągła komunikacja z systemem w celu monitorowania działania. 19
20 Zadaniem serwera dyspozytor jest odbieranie żądań od klientów, zarządzanie dzieleniem obciążenia pomiędzy jednostki wchodzące w skład systemu, monitorowanie działanie całego systemu (wszystkich jednostek wchodzących w jego skład). klient(ci) realizacja odczytu zadań do realizacji, tworzenie interfejsu użytkownika, wysyłanie żądań wykonania zadania do systemu oraz prezentacja wyników. Zaprojektowanie odpowiedniego algorytmu przydziału zadań wymaga zdefiniowania charakterystyki zadań. W systemie czasu rzeczywistego taką charakterystykę można przeprowadzić w oparciu o wymagania czasowe. Wymagania te mogą być znane z wyprzedzeniem, więc równie wcześnie można zaprojektować odpowiedni algorytm. Zadanie z ograniczeniami czasowymi zadanie powinno posiadać następujące parametry: czas rozpoczęcia wykonania, czas trwania (szacowany), żądany czas zakończenia (ang. deadline). Czas rozpoczęcia i wymagany czas zakończenia określany jest mianem czasu życia zadania. Stosunek czasu jego wykonania do czasu życia określa jego wymaganie wykonania, którego wartość im bliższa 1, tym większe zapotrzebowanie na procesor. Biorąc pod uwagę, że zadania mogą mieć różne wymagania czasowe, należy w systemie zaprojektować kilka algorytmów szeregowania lokalnego. Odpowiednie algorytmy można statycznie przydzielić do wykonania określonych zadań, bądź zaprojektować mechanizm, systemu, który będzie wykonywał to automatycznie. Przykładami tych algorytmów są: Round Robin algorytm dynamiczny, wykorzystuje wywłaszczanie. Posiada cykliczną kolejkę zadań, w której zadania są umieszczane zgodnie z algorytmem FIFO (First Input First Output). Zadaniom są przydzielane kolejne kwanty czasu procesora, EDF (Earliest Deadline First) algorytm dynamiczny, wywłaszczający. Regularnie aktualizowane są informacje o deadline poszczególnych zadań, LSTF (Least Slack Time First) najpierw zadanie z najmniejszym luźnym czasem (różnica między żądanym, a przewidywanym czasem wykonania), kombinacyjny biorący pod uwagę kilka parametrów z odpowiednimi wagami, np. połączenie algorytmu EDF i LSTF. Lokalne planowanie wątków opiera się na priorytetach. Istnieją dwa główne rodzaje szeregowania: wywłaszczające jeśli zostanie do kolejki dodane nowe zadanie to wywłaszczy ono aktualnie wykonywane w przypadku, gdy posiada wyższy priorytet, 20
5. Model komunikujących się procesów, komunikaty
Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć
Bardziej szczegółowoSystemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.
Systemy rozproszone Wg Wikipedii: System rozproszony to zbiór niezależnych urządzeń (komputerów) połączonych w jedną, spójną logicznie całość. Połączenie najczęściej realizowane jest przez sieć komputerową..
Bardziej szczegółowoDokumentacja 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ółowoKlient-Serwer Komunikacja przy pomocy gniazd
II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu
Bardziej szczegółowoWprowadzenie. Dariusz Wawrzyniak 1
Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak
Bardziej szczegółowo4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Bardziej szczegółowoProgramowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz
Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................
Bardziej szczegółowoStan globalny. Krzysztof Banaś Systemy rozproszone 1
Stan globalny Krzysztof Banaś Systemy rozproszone 1 Stan globalny Z problemem globalnego czasu jest związany także problem globalnego stanu: interesuje nas stan systemu rozproszonego w konkretnej pojedynczej
Bardziej szczegółowoProblemy niezawodnego przetwarzania w systemach zorientowanych na usługi
Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi Jerzy Brzeziński, Anna Kobusińska, Dariusz Wawrzyniak Instytut Informatyki Politechnika Poznańska Plan prezentacji 1 Architektura
Bardziej szczegółowo4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Bardziej szczegółowoMarek 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ółowoWstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone
Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego 1 Historia i pojęcia wstępne Przetwarzanie współbieżne realizacja wielu programów (procesów) w taki sposób, że ich
Bardziej szczegółowoUniwersytet 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ółowoStruktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski
Struktura systemu operacyjnego Schemat budowy systemu operacyjnego model warstwowy Schemat budowy systemu operacyjnego części składowe Większość systemów operacyjnych opiera się o koncepcję jądra, która
Bardziej szczegółowoSystemy wbudowane - wykład 9. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes.
Systemy wbudowane - wykład 9 Przemek Błaśkiewicz 26 maja 2017 1 / 93 Systemy czasu rzeczywistego sterowanie silnikiem rakietowym; 2 / 93 Systemy czasu rzeczywistego sterowanie silnikiem rakietowym; system
Bardziej szczegółowoMariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1
Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1 Przedmiot PSCR Przedmiot PSCR Wykład do połowy semestru Laboratorium od połowy semestru Projekt Zaliczenie
Bardziej szczegółowodr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1
dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego
Bardziej szczegółowoWprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,
Bardziej szczegółowoProgramowanie współbieżne Wykład 2. Iwona Kochańska
Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas
Bardziej szczegółowoWprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Miejsce, rola i zadania systemu operacyjnego
Bardziej szczegółowoBazy danych 2. Wykład 1
Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu
Bardziej szczegółowoSystemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak
Wprowadzenie Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego
Bardziej szczegółowoProjekt 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ółowoKomputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl
Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki
Bardziej szczegółowoMiddleware wprowadzenie października 2010
Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak/middleware
Bardziej szczegółowoMiddleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1
Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl poznan pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak/middleware
Bardziej szczegółowoAkademia Techniczno-Humanistyczna w Bielsku-Białej
Akademia Techniczno-Humanistyczna w Bielsku-Białej Wydział Budowy Maszyn i Informatyki Laboratorium z sieci komputerowych Ćwiczenie numer: 9 Temat ćwiczenia: Aplikacje klient-serwer. 1. Wstęp teoretyczny.
Bardziej szczegółowoSpis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3
Spis treści 1 Wprowadzenie 1 1.1 Podstawowe pojęcia............................................ 1 1.2 Sieci komunikacyjne........................................... 3 2 Problemy systemów rozproszonych
Bardziej szczegółowoSYSTEMY 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ółowoKurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017
Wykład 12 7 czerwca 2017 Czym jest UML? UML składa się z dwóch podstawowych elementów: notacja: elementy graficzne, składnia języka modelowania, metamodel: definicje pojęć języka i powiazania pomiędzy
Bardziej szczegółowoDziałanie komputera i sieci komputerowej.
Działanie komputera i sieci komputerowej. Gdy włączymy komputer wykonuje on kilka czynności, niezbędnych do rozpoczęcia właściwej pracy. Gdy włączamy komputer 1. Włączenie zasilania 2. Uruchamia
Bardziej szczegółowoSystemy rozproszone System rozproszony
Systemy rozproszone Wg Wikipedii: System rozproszony to zbiór niezależnych urządzeń (komputerów) połączonych w jedną, spójną logicznie całość. Połączenie najczęściej realizowane jest przez sieć komputerową.
Bardziej szczegółowowspółbieżność - zdolność do przetwarzania wielu zadań jednocześnie
Systemy rozproszone Wg Wikipedii: System rozproszony to zbiór niezależnych urządzeń (komputerów) połączonych w jedną, spójną logicznie całość. Połączenie najczęściej realizowane jest przez sieć komputerową.
Bardziej szczegółowo1. Szeregowanie w systemach czasu rzeczywistego
J. Ułasiewicz Systemy Czasu Rzeczywistego 1 1. Szeregowanie w systemach czasu rzeczywistego 1.1 Definicje Zadanie - proces lub wątek Gotowych do wykonania zadań jest zwykle dużo więcej niż mogących je
Bardziej szczegółowoAnaliza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32
Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:
Bardziej szczegółowoReferat pracy dyplomowej
Referat pracy dyplomowej Temat pracy: Wdrożenie intranetowej platformy zapewniającej organizację danych w dużej firmie na bazie oprogramowania Microsoft SharePoint Autor: Bartosz Lipiec Promotor: dr inż.
Bardziej szczegółowoModularny system I/O IP67
Modularny system I/O IP67 Tam gdzie kiedyś stosowano oprzewodowanie wielożyłowe, dziś dominują sieci obiektowe, zapewniające komunikację pomiędzy systemem sterowania, urządzeniami i maszynami. Systemy
Bardziej szczegółowoTworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1
Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Metodologia programowania równoległego Przykłady podziałów zadania na podzadania: Podział ze względu na funkcje (functional
Bardziej szczegółowoSzczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:
Rozdział I Szczegółowy opis przedmiotu umowy Załącznik nr 1 do Umowy Architektura środowisk SharePoint UMWD 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów: a) Środowisko
Bardziej szczegółowoSLA ORAZ ZASADY ŚWIADCZENIA WSPARCIA I HELPDESK. Wykonawca zobowiązuje się do świadczenia Usług Wsparcia i Helpdesk w odniesieniu do Systemu.
SLA ORAZ ZASADY ŚWIADCZENIA WSPARCIA I HELPDESK Wykonawca zobowiązuje się do świadczenia Usług Wsparcia i Helpdesk w odniesieniu do Systemu. 1. ZAKRES USŁUG Nazwa Usługi Krótki opis Usuwanie Błędów Usuwanie
Bardziej szczegółowoStruktura 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ółowoOd uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.
Kod szkolenia: Tytuł szkolenia: PS/WIN Programowanie systemowe w Windows Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemach z rodziny Microsoft Windows,
Bardziej szczegółowoTECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek
TECHNOLOGIE OBIEKTOWE WYKŁAD 2 Anna Mroczek 2 Diagram czynności Czym jest diagram czynności? 3 Diagram czynności (tak jak to definiuje język UML), stanowi graficzną reprezentację przepływu kontroli. 4
Bardziej szczegółowoPraca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz
Temat Gdańsk 30.06.2006 1 Praca dyplomowa Temat pracy: Program do monitorowania i diagnostyki działania sieci CAN. Autor: Łukasz Olejarz Opiekun: dr inż. M. Porzeziński Recenzent: dr inż. J. Zawalich Gdańsk
Bardziej szczegółowoPlanowanie przydziału procesora
Planowanie przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Komponenty jądra związane z szeregowaniem Ogólna koncepcja planowania Kryteria oceny uszeregowania Algorytmy
Bardziej szczegółowo4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Bardziej szczegółowoPrezentacja systemu RTLinux
Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach
Bardziej szczegółowoMaciej Oleksy Zenon Matuszyk
Maciej Oleksy Zenon Matuszyk Jest to proces związany z wytwarzaniem oprogramowania. Jest on jednym z procesów kontroli jakości oprogramowania. Weryfikacja oprogramowania - testowanie zgodności systemu
Bardziej szczegółowoSieciowe Systemy Operacyjne
1 Sieciowe Systemy Operacyjne 1. Etapy rozwoju systemów komputerowych System scentralizowany System sieciowy System rozproszony 1.1 System scentralizowany Zastosowane duże komputery (mainframes ) Użytkownicy
Bardziej szczegółowoPlan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych
Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych Michał Lewowski, Piotr Skowron, Michał Matczuk, Piotr Wygocki 5 czerwca 2006 1 Spis treści 1 Wprowadzenie 3 1.1 Cel..........................................
Bardziej szczegółowoObliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz
Obliczenia równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 15 czerwca 2001 Spis treści Przedmowa............................................
Bardziej szczegółowoZadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.
Zadanie: Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób. Na kolejnych zajęciach projekt będzie rozwijana i uzupełniana o kolejne elementy omawiane
Bardziej szczegółowoSystem generacji raportów
Zalety systemu Czym jest ProReports? prostota instalacji, wieloplatformowość (AIX, Linux, Windows, Solaris), obsługa popularnych formatów (PDF, XLS, RTF, HTML,TXT,XML,CSV), obsługa wielu baz danych, raporty
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma
Bardziej szczegółowoOd uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.
Kod szkolenia: Tytuł szkolenia: PS/LINUX Programowanie systemowe w Linux Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać
Bardziej szczegółowoUNIX: 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ółowoDokumentacja projektu QUAIKE Architektura oprogramowania
Licencjacka Pracownia Oprogramowania Instytut Informatyki Uniwersytetu Wrocławskiego Jakub Kowalski, Andrzej Pilarczyk, Marek Kembrowski, Bartłomiej Gałkowski Dokumentacja projektu QUAIKE Architektura
Bardziej szczegółowoUniwersalny Konwerter Protokołów
Uniwersalny Konwerter Protokołów Autor Robert Szolc Promotor dr inż. Tomasz Szczygieł Uniwersalny Konwerter Protokołów Szybki rozwój technologii jaki obserwujemy w ostatnich latach, spowodował że systemy
Bardziej szczegółowoTechnika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego
System operacyjny czasu rzeczywistego (RTOS Real Time Operating System) jest programem bazowym ułatwiającym tworzenie programu użytkowego systemu mikroprocesorowego. System operacyjny czasu rzeczywistego
Bardziej szczegółowoMechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Bardziej szczegółowoSerwer druku w Windows Server
Serwer druku w Windows Server Ostatnimi czasy coraz większą popularnością cieszą się drukarki sieciowe. Często w domach użytkownicy posiadają więcej niż jedno urządzenie podłączone do sieci, z którego
Bardziej szczegółowoPlanowanie przydziału procesora
Dariusz Wawrzyniak Plan wykładu Komponenty jądra związane z szeregowaniem Ogólna koncepcja planowania Kryteria oceny algorytmów planowania Algorytmy planowania (2) 1 Komponenty jądra w planowaniu Planista
Bardziej szczegółowoWybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej Dr inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki 2017 APLIKACJE SIECIOWE Definicja Architektura aplikacji sieciowych Programowanie
Bardziej szczegółowoPrzesyłania danych przez protokół TCP/IP
Przesyłania danych przez protokół TCP/IP PAKIETY Protokół TCP/IP transmituje dane przez sieć, dzieląc je na mniejsze porcje, zwane pakietami. Pakiety są często określane różnymi terminami, w zależności
Bardziej szczegółowoJądro systemu operacyjnego
Jądro systemu operacyjnego Jądro (ang. kernel) jest to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Zapewnia ono usługi systemowe takie jak: komunikacja między
Bardziej szczegółowoCzas w systemach rozproszonych. Krzysztof Banaś Systemy rozproszone 1
Czas w systemach rozproszonych Krzysztof Banaś Systemy rozproszone 1 Czas w systemach rozproszonych Istnienie algorytmów opartych na czasie zdarzeń np. make, systemy czasu rzeczywistego Brak czasu globalnego
Bardziej szczegółowoWstęp do programowania 2
Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia
Bardziej szczegółowoDziałanie systemu operacyjnego
Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania
Bardziej szczegółowoDziałanie systemu operacyjnego
Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć
Bardziej szczegółowoZarządzanie infrastrukturą sieciową Modele funkcjonowania sieci
W miarę rozwoju sieci komputerowych pojawiały się różne rozwiązania organizujące elementy w sieć komputerową. W celu zapewnienia kompatybilności rozwiązań różnych producentów oraz opartych na różnych platformach
Bardziej szczegółowoPROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem
PROJEKTOWANIE określenie wymagań specyfikowanie projektowanie kodowanie implementacja testowanie produkt konserwacja Faza strategiczna Analiza Dokumentacja Instalacja PROJEKT most pomiędzy specyfikowaniem
Bardziej szczegółowoDLA SEKTORA INFORMATYCZNEGO W POLSCE
DLA SEKTORA INFORMATYCZNEGO W POLSCE SRK IT obejmuje kompetencje najważniejsze i specyficzne dla samego IT są: programowanie i zarządzanie systemami informatycznymi. Z rozwiązań IT korzysta się w każdej
Bardziej szczegółowoSką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ółowoArchitektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.
Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,
Bardziej szczegółowoIBM DCE/DFS. Mikołaj Gierulski. 17 stycznia 2003
IBM DCE/DFS Mikołaj Gierulski 17 stycznia 2003 1 Spis treści 1 IBM DCE 3 2 DCE/Distributed File Service 3 2.1 Rozwiązanie podstawowych problemów rozproszonych systemów plików.... 3 2.1.1 Nazewnictwo................................
Bardziej szczegółowoNumeryczna algebra liniowa
Numeryczna algebra liniowa Numeryczna algebra liniowa obejmuje szereg algorytmów dotyczących wektorów i macierzy, takich jak podstawowe operacje na wektorach i macierzach, a także rozwiązywanie układów
Bardziej szczegółowoZdalne monitorowanie i zarządzanie urządzeniami sieciowymi
Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Infomatyki Stosowanej Piotr Benetkiewicz Nr albumu: 168455 Praca magisterska na kierunku Informatyka
Bardziej szczegółowoe-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ
e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ www.e-awizo.pl BrainSoft sp. z o. o. ul. Bolesława Chrobrego 14/2 65-052 Zielona Góra tel.68 455 77 44 fax 68 455 77 40 e-mail: biuro@brainsoft.pl
Bardziej szczegółowoWykład Ćwiczenia Laboratorium Projekt Seminarium
WYDZIAŁ ELEKTRONIKI KARTA PRZEDMIOTU Nazwa w języku polskim Języki programowania Nazwa w języku angielskim Programming languages Kierunek studiów (jeśli dotyczy): Informatyka - INF Specjalność (jeśli dotyczy):
Bardziej szczegółowoStworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.
Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).
Bardziej szczegółowoProjektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012
Projektowanie algorytmów równoległych Zbigniew Koza Wrocław 2012 Spis reści Zadniowo-kanałowy (task-channel) model algorytmów równoległych Projektowanie algorytmów równoległych metodą PACM Task-channel
Bardziej szczegółowoSYSTEM VILM ZARZĄDZANIE CYKLEM ŻYCIA ŚRODOWISK WIRTUALNYCH. info@prointegra.com.pl tel: +48 (032) 730 00 42
SYSTEM VILM ZARZĄDZANIE CYKLEM ŻYCIA ŚRODOWISK WIRTUALNYCH info@prointegra.com.pl tel: +48 (032) 730 00 42 1. WPROWADZENIE... 3 2. KORZYŚCI BIZNESOWE... 4 3. OPIS FUNKCJONALNY VILM... 4 KLUCZOWE FUNKCJE
Bardziej szczegółowoEnkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T
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 od NIC organizacji międzynarodowej
Bardziej szczegółowoProjektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34
Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. 2/34 Modelowanie CRC Modelowanie CRC (class-responsibility-collaborator) Metoda identyfikowania poszczególnych
Bardziej szczegółowoZiMSK. VLAN, trunk, intervlan-routing 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 VLAN, trunk, intervlan-routing
Bardziej szczegółowoMetodyka projektowania komputerowych systemów sterowania
Metodyka projektowania komputerowych systemów sterowania Andrzej URBANIAK Metodyka projektowania KSS (1) 1 Projektowanie KSS Analiza wymagań Opracowanie sprzętu Projektowanie systemu Opracowanie oprogramowania
Bardziej szczegółowoProgramowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 6 dr inż. Komunikowanie się procesów Z użyciem pamięci współdzielonej. wykorzystywane przede wszystkim w programowaniu wielowątkowym. Za pomocą przesyłania
Bardziej szczegółowoPBS. Wykład Zabezpieczenie przełączników i dostępu do sieci LAN
PBS Wykład 7 1. Zabezpieczenie przełączników i dostępu do sieci LAN mgr inż. Roman Krzeszewski roman@kis.p.lodz.pl mgr inż. Artur Sierszeń asiersz@kis.p.lodz.pl mgr inż. Łukasz Sturgulewski luk@kis.p.lodz.pl
Bardziej szczegółowo2013-04-25. Czujniki obiektowe Sterowniki przemysłowe
Ogólne informacje o systemach komputerowych stosowanych w sterowaniu ruchem funkcje, właściwości Sieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i transportowej
Bardziej szczegółowoJarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming
Jarosław Kuchta Wymagania jakości w Agile Programming Wady klasycznych metod zapewnienia jakości Duży narzut na dokumentowanie Późne uzyskiwanie konkretnych rezultatów Trudność w odpowiednio wczesnym definiowaniu
Bardziej szczegółowoSystemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych
Systemy wbudowane Wykład 11: Metody kosyntezy systemów wbudowanych Uproszczone metody kosyntezy Założenia: Jeden procesor o znanych parametrach Znane parametry akceleratora sprzętowego Vulcan Początkowo
Bardziej szczegółowoKonwerter Plan testów. Jakub Rauch Tomasz Gołębiowski Adam Busch Bartosz Franaszek 1 czerwca 2008
Konwerter Plan testów Jakub Rauch Tomasz Gołębiowski Adam Busch Bartosz Franaszek 1 czerwca 2008 1 Spis treści 1 Wprowadzenie 3 1.1 Cel........................................ 3 1.2 Zamierzeni odbiorcy
Bardziej szczegółowoZarządzanie pamięcią operacyjną
Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci
Bardziej szczegółowoCechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;
14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi
Bardziej szczegółowoOPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA
OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA Projekt to metoda na osiągnięcie celów organizacyjnych. Jest to zbiór powiązanych ze sobą, zmierzających
Bardziej szczegółowoSystem zarządzania i monitoringu
Załącznik nr 12 do Opisu przedmiotu zamówienia System zarządzania i monitoringu System zarządzania i monitoringu powinien być zbudowany z odrębnych, dedykowanych modułów oprogramowania, monitorujących:
Bardziej szczegółowoWątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego
Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować
Bardziej szczegółowoUML w Visual Studio. Michał Ciećwierz
UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować
Bardziej szczegółowoTryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla
Tryby komunikacji między procesami w standardzie Message Passing Interface Piotr Stasiak 171011 Krzysztof Materla 171065 Wstęp MPI to standard przesyłania wiadomości (komunikatów) pomiędzy procesami programów
Bardziej szczegółowo