Projekt i implementacja rozproszonego

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

Download "Projekt i implementacja rozproszonego"

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

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ółowo

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Systemy 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ół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

Klient-Serwer Komunikacja przy pomocy gniazd

Klient-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ółowo

Wprowadzenie. Dariusz Wawrzyniak 1

Wprowadzenie. 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ółowo

4. Procesy pojęcia podstawowe

4. 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ółowo

Programowanie 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 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ółowo

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Stan 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ółowo

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Problemy 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ółowo

4. Procesy pojęcia podstawowe

4. 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ół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

Wstę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. 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ół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

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Struktura 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ółowo

Systemy wbudowane - wykład 9. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes.

Systemy 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ółowo

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Mariusz 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ółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

dr 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ółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. 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ółowo

Programowanie współbieżne Wykład 2. Iwona Kochańska

Programowanie 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ółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. 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ółowo

Bazy danych 2. Wykład 1

Bazy 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ółowo

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Systemy 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ół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

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe 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ółowo

Middleware wprowadzenie października 2010

Middleware 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ółowo

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Middleware 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ółowo

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Akademia 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ółowo

Spis treści. 1 Wprowadzenie. 1.1 Podstawowe pojęcia. 1 Wprowadzenie Podstawowe pojęcia Sieci komunikacyjne... 3

Spis 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ół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

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Kurs 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ółowo

Działanie komputera i sieci komputerowej.

Dział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ółowo

Systemy rozproszone System rozproszony

Systemy 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ółowo

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

współ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ółowo

1. Szeregowanie w systemach czasu rzeczywistego

1. 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ółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza 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ółowo

Referat pracy dyplomowej

Referat 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ółowo

Modularny system I/O IP67

Modularny 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ółowo

Tworzenie 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 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ółowo

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

Szczegół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ółowo

SLA 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. 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ół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

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.

Od 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ółowo

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

TECHNOLOGIE 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ółowo

Praca dyplomowa. Program do monitorowania i diagnostyki działania sieci CAN. Temat pracy: Temat Gdańsk Autor: Łukasz Olejarz

Praca 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ółowo

Planowanie przydziału procesora

Planowanie 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ółowo

4. Procesy pojęcia podstawowe

4. 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ółowo

Prezentacja systemu RTLinux

Prezentacja 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ółowo

Maciej Oleksy Zenon Matuszyk

Maciej 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ółowo

Sieciowe Systemy Operacyjne

Sieciowe 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ółowo

Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych

Plan 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ółowo

Obliczenia 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 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ółowo

Zadanie polega na stworzeniu bazy danych w pamięci zapewniającej efektywny dostęp do danych baza osób.

Zadanie 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ółowo

System generacji raportów

System 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ółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz 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ółowo

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Od 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ół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 projektu QUAIKE Architektura oprogramowania

Dokumentacja 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ółowo

Uniwersalny Konwerter Protokołów

Uniwersalny 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ółowo

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Technika 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ółowo

Mechanizmy pracy równoległej. Jarosław Kuchta

Mechanizmy 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ółowo

Serwer druku w Windows Server

Serwer 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ółowo

Planowanie przydziału procesora

Planowanie 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ółowo

Wybrane działy Informatyki Stosowanej

Wybrane 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ółowo

Przesyłania danych przez protokół TCP/IP

Przesył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ółowo

Jądro systemu operacyjnego

Ją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ółowo

Czas w systemach rozproszonych. Krzysztof Banaś Systemy rozproszone 1

Czas 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ółowo

Wstęp do programowania 2

Wstę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ółowo

Działanie systemu operacyjnego

Dział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ółowo

Działanie systemu operacyjnego

Dział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ółowo

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

Zarzą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ółowo

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

PROJEKTOWANIE. 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ółowo

DLA SEKTORA INFORMATYCZNEGO W POLSCE

DLA 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ół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

Architektura 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 Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,

Bardziej szczegółowo

IBM DCE/DFS. Mikołaj Gierulski. 17 stycznia 2003

IBM 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ółowo

Numeryczna algebra liniowa

Numeryczna 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ółowo

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Zdalne 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ółowo

e-awizo SYSTEM POTWIERDZANIA DORĘCZEŃ POCZTY ELEKTRONICZNEJ

e-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ółowo

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Wykł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ółowo

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

Stworzenie 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ółowo

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Projektowanie 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ółowo

SYSTEM 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 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ółowo

Enkapsulacja 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

Enkapsulacja 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ółowo

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Projektowanie 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ółowo

ZiMSK. VLAN, trunk, intervlan-routing 1

ZiMSK. 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ółowo

Metodyka projektowania komputerowych systemów sterowania

Metodyka 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ółowo

Programowanie współbieżne i rozproszone

Programowanie 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ółowo

PBS. Wykład Zabezpieczenie przełączników i dostępu do sieci LAN

PBS. 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ółowo

2013-04-25. Czujniki obiektowe Sterowniki przemysłowe

2013-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ółowo

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

Jarosł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ółowo

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Systemy 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ółowo

Konwerter 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 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ółowo

Zarządzanie pamięcią operacyjną

Zarzą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ółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Cechy 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ółowo

OPROGRAMOWANIE 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 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ółowo

System zarządzania i monitoringu

System 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ółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wą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ółowo

UML w Visual Studio. Michał Ciećwierz

UML 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ółowo

Tryby 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 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