Środowiska przetwarzania rozproszonego
|
|
- Włodzimierz Niewiadomski
- 6 lat temu
- Przeglądów:
Transkrypt
1 Środowiska przetwarzania rozproszonego Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (IIPP, pok. 5) Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl (61) Program przedmiotu Wykład (16 godz.): założenia projektowe w budowie systemów rozproszonych transparentność dostępu do zdalnych zasobów (modele komunikacji) skalowalność (replikacja) Ćwiczenia laboratoryjne (16 godz.) implementacja przykładowych aplikacji rozproszonych z wykorzystaniem wybranych mechanizmów/środowisk: PVM/MPI (wymiana komunikatów) RPC (wywoływanie procedur zdalnych) Java RMI (podejście obiektowe wywoływanie metod zdalnych) Java Message Service Sposób zaliczenia przedmiotu Literatura Wykład (16 godz.) egzamin końcowy. Ćwiczenia laboratoryjne (16 godz.) testy/sprawdziany z zagadnień laboratoryjnych w trakcie ćwiczeń lub w ramach egzaminu końcowego. A. S. Tanenbaum, M. van Steen: Systemy rozproszone, Zasady i paradygmaty. WNT, Warszawa, G. Coulouris, J. Dollimore, T. Kindberg: Systemy rozproszone: podstawy i projektowanie. WNT, Warszawa, A. S. Tanenbaum: Rozproszone systemy operacyjne, PWN, Warszawa, dokumentacja wybranych technologii (PVM/MPI, Sun RPC, Java, Java RMI, JMS, JavaSpaces) System rozproszony System rozproszony od strony projektowej Zbiór niezależnych komputerów i zasobów komputerowych zdolnych do kooperacji (np. poprzez sieć komputerową), postrzeganych przez użytkownika jako całościowo spójny system. Ogólny cel projektowy systemu rozproszonego: stworzenie przezroczystego, otwartego, elastycznego, wydajnego i skalowalnego mechanizmu współdzielenia zasobów. Dariusz Wawrzyniak 1
2 Niezależne komputery Niezależne komputery organizacja oprogramowania System sieciowy System sieciowy umożliwia użytkownikom dostęp do zdalnych zasobów w sposób nieprzezroczysty (użytkownicy są świadomi fizycznego rozproszenia zasobów) System sieciowy organizacja oprogramowania System rozproszony Rozproszony system operacyjny umożliwia użytkownikom dostęp do zdalnych zasobów w sposób przezroczysty (jest jednolity sposób dostępu do zasobu lokalnego i zdalnego) System rozproszony organizacja oprogramowania Dariusz Wawrzyniak 2
3 Zagadnienia projektowe (1) Zagadnienia projektowe (2) Otwartość, elastyczność zdolność do rozbudowy (sprzętowej, programowej) i rekonfiguracji, możliwość dodawania nowych usług bez głębokiej ingerencji w istniejące już usługi. Skalowalność możliwość dostosowania systemu do rosnących rozmiarów problemów i wymagań użytkowników. Współbieżność możliwość współbieżnego (równoczesnego) ubiegania się o zasoby i ich użytkowania. Tolerowanie uszkodzeń odporność na awarie przez redundancję (sprzętu, danych) oraz możliwość odtworzenia spójnego stanu po awarii. Przezroczystość ukrywanie przed użytkownikiem (programistą) fizycznego odseparowania składowych, zapewnienie jednolitego dostępu do zasobów lokalnych i zdalnych. Wydajność optymalizacja ruchu w sieci w celu zredukowania negatywnego wpływy stosunkowo wolnej komunikacji sieciowej. Przezroczystość (1) Przezroczystość (2) przezroczystość dostępu ukrywanie różnic w reprezentacji danych, zagwarantowanie jednolitego sposobu dostępu do zasobów, niezależnie od tego, czy są to zasoby lokalne, czy zdalne przezroczystość położenia identyfikacja zasobów niezależna od ich fizycznej lokalizacji (np. usługa nazw) przezroczystość migracji zmiana fizycznej lokalizacji zasobu nie powoduje zmian w sposobie ich identyfikacji i w sposobie dostępu przezroczystość relokacji fizyczna zmiana lokalizacji zasobu może być dokonana w sposób niewidoczny dla aplikacji w czasie realizacji dostępu do niego przez użytkowników przezroczystość replikacji utrzymywanie i udostępnianie kilku egzemplarzy tego samego zasobu (kopii) w taki sposób, jak gdyby użytkownik widział i działał tylko na jednym przezroczystość awarii zdolność ukrycia przed użytkownikiem faktu chwilowych nieprawidłowości funkcjonowania przezroczystość współbieżności realizacja współbieżnego dostępu do zasobu w taki sposób, że konkurujące procesy nie przeszkadzają sobie wzajemnie Otwartość standaryzacja reguł dostępu do usług formalny opis składni (jak skorzystać z usługi) i semantyki (na czym polega realizacja usługi) interoperacyjność (interoperability) zdolność współpracy dwóch różnych systemów, korzystający wzajemnie jedynie ze swoich własnych usług przenośność (portablility) zdolność aplikacji zaprojektowanej w systemie rozproszonym A do działania bez modyfikacji w systemie B Polityka i mechanizm Polityka jest zbiorem reguł dostępu do zasobów i może wynikać z: projektu systemu (ustalona jest na etapie projektowania systemu) wytycznych kierownictwa (ustalana jest na etapie instalacji lub eksploatacji systemu) decyzji indywidualnych użytkowników (podjętych w trakcie eksploatacji systemu) Mechanizm jest zbiorem dostępnych środków do wymuszania polityki mechanizm powinien być na tyle uniwersalny, żeby dało się go dostosować do zmian w polityce otwartość w skrajnym przypadku każda zmiany polityki mogłaby wymagać zmiany mechanizmu system zamknięty Dariusz Wawrzyniak 3
4 Koncepcja dostępu do współdzielonych zasobów zarządca zasobu (ang. resource manager) moduł oprogramowania odpowiedzialny za udostępnianie zasobu użytkownik zasobu moduł (proces) zgłaszający zapotrzebowanie na zasób Współpraca pomiędzy zarządcą a użytkownikiem model komunikatowy współpraca odbywa się przez komplementarne wykonanie operacji send i receive odpowiednio przez nadawcę i odbiorcę komunikatu model obiektowy zarządca postrzegany jest jako obiekt o pewnym identyfikatorze, będący w określonym stanie, który zmienia się pod wpływem operacji żądanych przez użytkowników obiekt aktywny obiekt jest procesem (wielowątkowym), oczekującym na żądania wywołania metod obiekt pasywny każdy obiekt ma własną przestrzeń adresową (segment), odwzorowywaną na przestrzeń adresową procesu, który się do niego odwołuje Elementarne mechanizmy komunikacji pomiędzy procesami Komunikacja w systemach sieciowych/rozproszonych Elementarne mechanizmy komunikacji pomiędzy procesami Model komunikacji w systemach rozproszonych Współdzielenie pamięci podstawą komunikacji jest dostęp do wspólnych danych w pamięci, wymiana informacji sprowadza się do zapisu i odczytu wspólnych danych oraz związanej z tym synchronizacji. Przekazywanie komunikatów podstawą komunikacji jest umieszczanie danych w podsystemie komunikacyjnym oraz ich pobieranie z podsystemu komunikacyjnego, wymiana informacji polega na wywoływaniu odpowiednich funkcji w celu wysłania i odbioru komunikatu. Sieciowa realizacja elementarnych mechanizmów komunikacji Współdzielenie pamięci brak możliwości współdzielenia pamięci fizycznej, emulacja pamięci współdzielonej poprzez odpowiednią obsługę błędu strony w systemie pamięci wirtualnej. Przekazywanie komunikatów komunikacja asynchroniczna wymagana gotowość do odbioru danych po stronie adresata komunikatu, schemat komunikacji zgodny z modelem -. Model komunikacji w systemach rozproszonych Wywoływanie procedur zdalnych (ang. remote procedure call) Wywoływanie metod zdalnych (ang. remote method call) Komunikacja zorientowana na przysyłanie wiadomości (ang. message-oriented communication) Komunikacja strumieniowa Komunikacja za pośrednictwem wirtualnej pamięci współdzielonej Dariusz Wawrzyniak 4
5 Przesyłanie wiadomości model systemu Komunikacja zorientowana na przysyłanie wiadomości aplikacja oprog. system. nadawca komunikacyjny komunikacyjny odbiorca aplikacja oprog. system. sieć Trwałość komunikacji Synchroniczność komunikacji Komunikacja przejściowa (ang. transient communication) wiadomość jest przekazywana (utrzymywana w podsystemie komunikacyjnym) pod warunkiem, że działa nadawca i odbiorca tej wiadomości. Komunikacja nieustanna (ang. persistent communication) wiadomość jest przechowywana w celu doręczenia do odbiorcy nawet, gdy odbiorca nie działa w danej chwili, a nadawca zakończył działanie po wysłaniu tej wiadomości. Komunikacja synchroniczna nadawca kontynuuje działanie dopiero, gdy wiadomość znajdzie się w buforze odbiorczym lub zostanie doręczona do adresata. Komunikacja asynchroniczna nadawca kontynuuje działanie zaraz po przekazaniu wiadomości do podsystemu komunikacyjnego. Komunikacja nieustanna asynchroniczna Komunikacja nieustanna synchroniczna Dariusz Wawrzyniak 5
6 Komunikacja przejściowa asynchroniczna Komunikacja przejściowa synchroniczna z potwierdzeniem dotarcia Komunikacja przejściowa synchroniczna z potwierdzeniem odebrania Komunikacja przejściowa synchroniczna z oczekiwaniem na odpowiedź Środowiska wymiany komunikatów PVM maszyna wirtualna Identyfikacja procesów przeźroczystość położenia PVM: unikalny identyfikator procesu (TID) MPI: unikalny numer w grupie procesów Mechanizmy komunikacji przeźroczystość dostępu PVM: adresowanie komunikatów do procesów o podanych identyfikatorach MPI: adresowanie komunikatów do procesów o podanych numerach Mechanizm zdalnego uruchamiania zadań PVM: dynamicznie w trakcie działania aplikacji MPI (v.1): statycznie w trakcie uruchamiania aplikacji Maszyna wirtualna 2 stacja robocza Maszyna wirtualna 1 wielo-procesor notebook Dariusz Wawrzyniak 6
7 PVM budowa identyfikatora zadania (TID) PVM uruchamianie przetwarzania = demon numer węzła 1 = adres rozgłoszeniowy lokalny numer zadania Przygotowanie programów przygotowanie kodów źródłowych w języku C lub Fortran kompilacja i konsolidacja kodów źródłowych Skonfigurowanie maszyny wirtualnej wybranie i przygotowanie opisu odpowiednich węzłów uruchomienie demonów na poszczególnych węzłach ewentualna dynamiczna zmiana konfiguracji początkowej Uruchomienie zadań uruchomienie procesu na terminalu jednego z węzłów uruchomienie zadania poleceniem spawn z konsoli PVM uruchomienie zadania przez inne zadanie PVM podstawowe funkcje biblioteczne PVM schemat wymiany komunikatów Konfiguracja maszyny wirtualnej: pvm_addhosts, pvm_delhosts, pvm_config, pvm_tidtohost Obsługa zadań: pvm_mytid, pvm_exit, pvm_spawn, pvm_kill, pvm_task, pvm_parent Komunikacja międzyprocesowa obsługa buforów: pvm_initsend, pvm_mkbuf, pvm_freebuf, pvm_getsbuf, pvm_getrbuf, pvm_setsbuf, pvm_setrbuf pakowanie danych: pvm_pk..., pvm_upk... wymiana komunikatów: pvm_send, pvm_mcast, pvm_psend, pvm_recv, pvm_nrecv, pvm_probe, pvm_trecv, pvm_bufinfo, pvm_precv utworzenie bufora initsend, mkbuf zapakowanie danych pkint, pkfloat wysłanie zawart. buf. send, mcast rozpakowanie danych upkint, upkfloat odbiór komunikatu recv, nrecv PVM dynamiczne grupy procesów Grupa procesów identyfikowana jest przez nazwę. Każde zadanie może w dowolnej chwili dołączyć się do grupy, jak i opuścić grupę. Przyłączając się do grupy, zadanie otrzymuje w tej grupie unikalnym numer (jest to numer kolejny, począwszy od 0). Zadanie może należeć jednocześnie do wielu grup. Zadanie może wysłać komunikat do wszystkich procesów w grupie, nawet jeśli do niej nie należy (grupy otwarte). PVM funkcje biblioteczne do obsługi grup procesów Dołączanie procesu do grupy (również tworzenie grupy): pvm_joingroup Odłączanie procesu od grupy (ostatecznie usuwanie grupy): pvm_lvgroup Identyfikacja procesów w grupie: pvm_gettid, pvm_getinst Informacja o liczbie procesów w grupie: pvm_gsize Rozgłaszanie (komunikat do wszystkich w grupie): pvm_bcast Bariera synchronizująca: pvm_barrier Dariusz Wawrzyniak 7
8 MPI podstawowe cechy MPI komunikator Model przetwarzania SPMD (Single Program Multiple Data) wszystkie uruchomione procesy wykonują ten sam program Wszystkie procesy uruchamiane są przy rozpoczęciu przetwarzania (w wersji 2.0 można również dynamicznie uruchomić dodatkowe procesy) mpirun, mpiexec Procesy tworzą grupę, w której numer procesu jest jego identyfikatorem grupa jest częścią tzw. komunikatora istnieje predefiniowany komunikator MPI_COMM_WORLD obejmujący wszystkie procesy Kontekst komunikacyjny wirtualny kanał komunikacyjny, umożliwiający odseparowanie komunikatów można odbierać tylko komunikaty przekazywane w ramach tego samego kontekstu Grupa procesów grupa o ustalonym rozmiarze, w ramach której identyfikowane są procesy nadawca i odbiorca identyfikowany jest poprzez numer w danej grupie Komunikator jest parametrem każdej funkcji do realizacji wymiany komunikatów MPI obsługa komunikatora MPI komunikacja punkt-punkt Uzyskanie własnego numeru przez proces: MPI_Comm_rank Uzyskanie liczby procesów w grupie komunikatora: MPI_Comm_size Uzyskanie grupy komunikatora: MPI_Comm_group Utworzenie komunikatora dla określonej grupy procesów: MPI_Comm_create Komunikacja w trybie blokującym: MPI_Send, MPI_Recv Komunikacja natychmiastowa: MPI_Isend, MPI_Irecv Komunikacja synchroniczna: MPI_Ssend, MPI_Issend Komunikacja buforowana: MPI_Bsend, MPI_Ibsend Komunikacja w trybie gotowości: MPI_Rsend, MPI_Irsend MPI przetwarzanie kolektywne MPI_Alltoall Kolektywny transfer danych: MPI_Bcast, MPI_Gather, MPI_Scatter, MPI_Gatherall, MPI_Alltoall Obliczenie kolektywne: MPI_Reduce, MPI_Reducescatter Synchronizacja: MPI_Barrier A1 B1 C1 A2 A3 A4 B2 B3 B4 C2 C3 C4 A1 A2 A3 B1 C1 D1 B2 C2 D2 B3 C3 D3 D1 D2 D3 D4 A4 B4 C4 D4 Dariusz Wawrzyniak 8
9 Mechanizm wywołania procedury Wywoływanie procedur zdalnych main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) }... int zabij_proc (int pid){ int stat; stat = kill(pid, 9); return stat; } Schemat interakcji - (transakcja komunikatu) Semantyka wywołania procedury w komunikacji sieciowej żądanie a odpowiedź a main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) }... int zabij_proc (int pid){ int stat; wyślij_żądanie(pid); // oczekiwanie na odp. odbierz_odp (&stat); return stat; } komunikacja sieciowa int zabij_proc (int pid){ int stat; stat = kill(pid, 9); return stat; } programista main (){ int p, stat; odbierz_żądanie (&p); stat = zabij_proc(p); wyślij_odp (stat); return stat; } system RPC zagadnienia projektowe RPC przezroczystość dostępu Przeźroczystość dostępu ukrycie komunikacji sieciowej przed aplikacją przez odpowiednie opakowanie funkcji komunikacyjnych namiastką a oraz a. Gwarancja wykonania ukrywanie błędów komunikacyjnych Specyfikacja interfejsu sposób opisu sygnatur procedur zdalnych (nazwy, typy parametrów) Obsługa sytuacji wyjątkowych Namiastka a (ang. client stub) udostępnienie aplikacji klienckiej procedury lokalnej odpowiedzialnej za przesłanie danych do a oraz odebranie wyników Namiastka a (ang. server stub) udostępnienie aplikacji po stronie a procedury lokalnej odpowiedzialnej za odebranie identyfikatora procedury zdalnej do wywołania, parametrów procedury, a odesłanie wyników lub zgłoszenie wyjątków Dariusz Wawrzyniak 9
10 Warstwy protokołu RPC Interakcja - w realizacji wywołania zdalnego namiastka a SELECT CHAN BLAST warstwa siec./transp. protokół RPC namiastka a SELECT CHAN BLAST warstwa siec./transp. 1. Lokalne wywołanie procedury namiastki przez a 2. Przygotowanie (upakowanie) danych do wysłania na stronę a 3. Wysłanie przygotowanego komunikatu na stronę a 4. Odebranie komunikatu przez 5. Rozpakowanie danych 6. Wykonanie procedury zdalnej 7. Przygotowanie (upakowanie) danych z odpowiedzią dla a 8. Wysłanie przygotowanego komunikatu na stronę a 9. Odebranie komunikatu przez namiastkę a 10. Rozpakowanie komunikatu i zwrócenie owi wyniku Diagram przestrzenno-czasowy interakcji - RPC - przekazywanie parametrów wywołanie procedury zdalnej żądanie wraz z argumentami oczekiwanie lokalne wykonanie procedury odpowiedź z wynikiem powrót z wywołania procedury zdalnej przekazywanie przez wartość (ang. call-by-value) problem reprezentacji danych (np. różnice w kodowaniu znaków, różnice w kolejności bajtów, formaty liczb zmiennopozycyjnych) przekazywanie przez referencje (ang. call-by-reference) problem zinterpretowania wartości wskaźnika w innej przestrzeni adresowej przekazywanie przez kopiowanie i odtwarzanie (ang. callby-copy/restore) utworzenie kopii parametru po stronie procedury i zapis dokonanych tam zmian w procesie a po jej zakończeniu (problem opisu struktur danych w celu prawidłowego zidentyfikowania wszystkich składowych) Reprezentacja kanoniczna Konwersja bezpośrednia format kanoniczny Dariusz Wawrzyniak 10
11 Przekazywanie referencji przez kopiowanie i odtwarzanie 1. Skopiowanie wskazanej wartości do bufora komunikacyjnego i wysłanie do a. 2. Wywołanie po stronie a procedury zdalnej ze wskaźnikiem na kopię wartości utworzoną po stronie a. 3. Skopiowanie zmodyfikowanej wartości z przestrzeni adresowej a do bufora komunikacyjnego i przesłanie z powrotem do a. 4. Umieszczenie odebranej wartości w miejscu wskazywanym przez referencję po stronie a. Kopiowanie i odtwarzanie przykład złożonej struktury danych XDR RPC gwarancja wykonania Semantyka ewentualnie brak gwarancji, procedura mogła się wykonać lub mogła się nie wykonać. Semantyka co najmniej raz po uzyskaniu odpowiedzi z wynikiem od a ma pewność, że wywoływana procedura wykonała się co najmniej raz. Semantyka co najwyżej raz po uzyskaniu odpowiedzi z wynikiem od a wie, że wywoływana procedura wykonała się dokładnie raz. Jak należy zinterpretować przypadek wystąpienia błędu (wyjątku) w wywołaniu procedury zdalnej? Semantyka dokładnie raz niemożliwa do uzyskania, jeśli system narażony jest na awarie (np. a lub łączy). Specyfikacja interfejsu Opis interfejsu w języku implementacji (np. Ada, Java RMI) Opis interfejsu w języku specjalnym, niezależnym od implementacji (CORBA IDL, Sun RPC rpcgen) RPC zagadnienia realizacyjne Przetwarzanie interfejsu Wiązanie a z em Obsługa komunikacji - Realizacja semantyki błędu Problem osieroconych obliczeń Przetwarzanie interfejsu procedur zdalnych Generowanie namiastki a Generowanie namiastki a Generowanie przykładowego programu a (client sample) Generowanie wzorca do implementacji procedur zdalnych (template) Generowanie plików do zarządzania kompilacją Dariusz Wawrzyniak 11
12 Wiązanie a z em Wiązanie dynamiczne a z em Wiązanie statyczne ma na stałe wprowadzony identyfikator komunikacyjny a (np. para: adres IP, nr portu). Wiązanie dynamiczne uzyskuje adres a za pośrednictwem łącznika (np. portmap, lub rpcbind w Sun RPC). wywołanie procedury zapytanie o identyfikator komunikacyjny rejestracja a przekazanie identyfikatora komunikacyjnego łącznik Obsługa komunikacji - BLAST BLAST realizuje przesyłanie dużych komunikatów poprzez podział na mniejsze części, transmisję poszczególnych części i ponowne złożenie w jeden komunikat po stronie odbiorczej, CHAN synchronizuje wymianę komunikatów z żądaniami wywołania procedur oraz odpowiedziami, SELECT rozdziela i przekazuje komunikaty z żądaniami do odpowiednich procesów. odbiorca fragment 1 fragment 2 fragment 3 fragment 4 fragment 5 fragment 6 (ost.) SRR fragment 3 fragment 5 SRR nadawca BLAST nadawca 1. otrzymanie bloku z w wyższej warstwy stosu protokołów i podział bloku na fragmenty 2. wysłanie kolejno poszczególnych fragmentów do odbiorcy (ze specjalnym oznaczeniem ostatniego fragmentu) 3. ustawienie czasomierza (ang. timer) DONE 4. jeśli dotarł SRR z informacją o brakujących fragmentach, to wysłanie brakujących fragmentów i przejście do pkt jeśli dotarł SRR z informacją o odebraniu wszystkich fragmentów, to SUKCES 6. jeśli DONE = 0 // minął czas oczekiwania to BŁĄD BLAST odbiorca (1) 1. po odebraniu pierwszego komunikatu z fragmentem bloku danych: inicjalizacja struktur danych do przechowywania poszczególnych bloków, umieszczenie odebranego fragmentu w odpowiedniej strukturze ustawienie licznika powtórzeń na 0 2. ustawienie czasomierza LAST_FRAG 3. po odebraniu kolejnego (ale nie ostatniego) komunikatu: umieszczenie nadesłanego fragmentu bloku w odpowiedniej strukturze i przejście do pkt. 2 Dariusz Wawrzyniak 12
13 BLAST odbiorca (2) BLAST format komunikatu 4. jeśli LAST_FRAG = 0, to przejście do pkt po odebraniu ostatniego komunikatu umieszczenie nadesłanego fragmentu bloku w odpowiedniej strukturze i sprawdzenie kompletności bloku 6. jeśli blok jest kompletny to wysłanie komunikatu SRR i przekazanie bloku do wyższej warstwy stosu protokołów 7. jeśli blok nie jest kompletny przejście do pkt jeśli licznik powtórzeń jest mniejszy od 3, to wysłanie komunikatu SRR z informacją o brakujących blokach, zwiększenie licznika powtórzeń o 1 i przejście do pkt. 2 w przeciwnym razie rezygnacja z odbioru identyfikator protokołu warstwy wyższej identyfikator sesji lub epoki liczba fragmentów przesyłanych w komunikacie lub flaga ostatniego fragmentu numer protokołu ID komunikatu rozmiar komunikatu liczba fragmentów typ ID fragmentu/maska dane długość komunikatu w bajtach (ilość danych) dane lub SRR CHAN CHAN domniemane potwierdzenia żądanie ACK odpowiedź ACK żądanie odpowiedź żądanie odpowiedź ACK CHAN próbkowanie a CHAN bicie serca żądanie ping pong ping pong odpowiedź ACK żądanie jeszcze żyję jeszcze żyję odpowiedź ACK Dariusz Wawrzyniak 13
14 żądanie, odpowiedź, ACK lub próbkowanie unikalny identyfikator pary żądanie/odpowiedź identyfikator protokołu warstwy wyższej CHAN format komunikatu typ identyfikator kanału kom. ID komunikatu ID restartu rozmiar komunikatu numer protokołu dane identyfikator transakcji komunikatu unikalny numer przechowywa ny na dysku i zwiększany po każdym restarcie komputera Realizacja semantyki błędu nie można zlokalizować a zgłoszenie wyjątku zaginione żądanie retransmisja żądania po upłynięciu ustalonego czasu oczekiwania zaginiona odpowiedź retransmisja żądania stosowanie procedur idempotentnych numerowanie żądań i retransmisja odpowiedzi awaria a przed podjęciem realizacji retransmisja żądania po wykonaniu zgłoszenie wyjątku awaria a osierocenie obliczeń Usuwanie osieroconych obliczeń (1) Usuwanie osieroconych obliczeń (2) Eksterminacja rejestrowanie działań podejmowanych przez a na nośniku niewrażliwym na awarie i usuwanie na tej podstawie osieroconych obliczeń po restarcie a. Reinkarnacja każdy restart a rozpoczyna nową epokę (identyfikowaną przez numer kolejny), po której usuwane są wszystkie obliczenia związane z poprzednią epoką. Łagodna reinkarnacja reinkarnacja, w której usuwa się tylko te obliczenia rozpoczęte w starej epoce, dla których nie ma właściciela. Wygaśnięcie przydział określonego czasu T owi na wykonanie procedury. Jeśli wykonanie nie zakończy się w czasie T, musi uzyskać kolejny przydział, pod warunkiem, że obliczenia nie zostały osierocone. Jeśli odczeka czas T przy restarcie, osierocone obliczenia same się zakończą. SELECT Warianty użycia mechanizmu RPC Po stronie a: odwzorowanie wywoływanej procedury na jej identyfikator, przekazywany do a. Po stronie a: zlokalizowanie wywoływanej procedury na podstawie identyfikatora. Wywołanie asynchroniczne Wywołanie zwrotne Dariusz Wawrzyniak 14
15 Wywołanie asynchroniczne Wywołanie asynchroniczne z potwierdzeniem odbioru wywołanie procedury zdalnej wywołanie procedury zdalnej żądanie wraz z argumentami żądanie wraz z argumentami lokalne wykonanie procedury lokalne wykonanie procedury Wywołanie zwrotne wywołanie procedury zdalnej Idempotentność i bezstanowość żądanie wraz z argumentami Przykład Network File System lokalne wykonanie procedury wywołanie procedury zwrotnej proces wirtualny system plików lokalny system plików uniksowy interfejs systemu plików NFS protokół RPC Architektura NFS NFS wirtualny system plików lokalny system plików uniksowy interfejs systemu plików Uniksowy interfejs systemu plików open (pathname, flags) fd creat (pathname, mode) fd read (fd, buf, count) write (fd, buf, count) lseek (fd, offset, whence) close (fd) unlink (pathname) Dariusz Wawrzyniak 15
16 Interfejs zdalnego dostępu do pliku protokół RPC lookup (dirfh, name) fh, attr create (dirfh, name, attr) newfh, attr read (fh, offset, count) data, attr write (fh, offset, data) attr remove (dirfh, name) status Odwzorowanie interfejsu uniksowego na interfejs zdalnego dostępu Jak wygląda realizacja uniksowej funkcji open? Jak wygląda realizacja uniksowej funkcji creat? Gdzie przechowywane są dane identyfikujące otwarty plik? Jak wygląda realizacja uniksowej funkcji read/write? Jak wygląda realizacja uniksowej funkcji lseek? Problem opisu stanu systemu Idempotentność procedur Stan systemu/obiektu z perspektywy a postrzegany jest poprzez odpowiedzi a jest to tzw. stan postrzegany (ang. observable state). Stan systemu po stronie a może być współtworzony przez niezależne zasoby jest to tzw. stan integralny (ang. inherent state). Procedura/metoda/operacja zdalna jest idempotentna w sensie postrzegania (ang. observably idempotent), jeśli jej wywołanie z określonymi wartościami parametrów zawsze daje taki sam wynik (wynik w sposób jednoznaczny jest zdeterminowany wartościami parametrów) w sensie integralnym (ang. inherently idempotent), jeśli jej wywołanie z określonymi wartościami parametrów i przy określonym stanie zasobów zawsze daje taki sam wynik (wynik w sposób jednoznaczny jest zdeterminowany wartościami parametrów oraz stanem niezależnych zasobów) Bezstanowość Serwer/obiekt jest bezstanowy (ang. stateless) w sensie postrzegania, jeśli wszystkie jego procedury/metody/operacje są idempotentne w sensie postrzegania. w sensie integralnym, jeśli wszystkie jego procedury/metody/operacje są idempotentne w sensie integralnym. Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Dariusz Wawrzyniak 16
17 Wywoływanie metod zdalnych model systemu Istota podejścia obiektowego aplikacja kliencka proxy interfejs obiekt szkielet Obiekt jest jednostką integrującą w sobie dane (stan obiektu) oraz odpowiednio zdefiniowane operacje (metody) Jedyna forma dostępu do danych polega na wywoływaniu metod wyspecyfikowanych w publicznym interfejsie obiektu Obiekt może implementować wiele interfejsów Ten sam interfejs może być implementowany przez wiele obiektów sieć Podejście obiektowe do budowy systemów rozproszonych Kluczowe dla mechanizmu wywoływania metod zdalnych jest oddzielenie definicji interfejsu (specyfikacji) od jego implementacji w obiekcie W językach definicji interfejsu (IDL) interfejs traktowany jest jak typ danych W języku implementacji każdy obiekt implementujący dany interfejs jest instancją tego typu Przykład opisu interfejsu w podejściu obiektowym (CORBA IDL) interface Konto { float stan(); float wplac(in float value); float pobierz(in float value); }; interface Bank { Konto otworzkonto(in int numer); float zamknijkonto(in Konto k); }; Klasyfikacja obiektów ze względu na sposób implementacji Obiekt zdalny (ang. remote object) stan obiektu utrzymywany jest przez jeden (wszystkie dane obiektu znajdują się na jednym ze) Obiekt rozproszony (ang. distributed object) stan obiektu przechowywany jest przez więcej niż jeden (poszczególne y przechowują odpowiednie dane, stanowiące fragmenty tego samego obiektu) Z punktu widzenie a zarówno obiekt zdalny jak i obiekt rozproszony stanowi pewną całość odpowiednio identyfikowaną Klasyfikacja ze względu na dostępność informacji o obiektach Obiekt dostępny w czasie kompilacji (ang. compile-time object) informacja o obiekcie (jego typ) znana jest i dostępna w odpowiedniej formie w programie a na etapie tworzenia oprogramowania Obiekt dostępny w czasie wykonania (ang. runtime object) informacja o obiekcie dostępna jest dopiero w czasie działania aplikacji Dariusz Wawrzyniak 17
18 Klasyfikacja obiektu ze względu na trwałość Obiekt trwały (ang. persistent object) obiekt istnieje nawet wówczas, gdy nie ma a, w przestrzeni adresowej, którego mógłby być przechowywany stan tego obiektu Obiekt przejściowy (ang. transient object) obiekt istnieje tak długo, jak długo działa utrzymujący jego stan Referencja do obiektu Referencja jest identyfikatorem, wykorzystywanym do wskazania obiektu, na którym ma zostać wykonana operacja W celu wywołania metody obiektu rezydującego na innej maszynie potrzebna jest zdalna referencja Referencja może być przekazywana jako parametr wywołania metody lub zwrócona jako wynik wykonania metody Implementacja zdalnej referencji Dowiązanie obiektu Referencja jest wartością, której struktura wewnętrzna nie jest w żaden sposób interpretowana przez aplikację Zdalna referencja musi zawierać wystarczająco dużo informacji, żeby dowiązać obiekt w programie a Dowiązanie obiektu oznacza uzyskanie informacji, niezbędnej do wywołania metody obiektu (uzyskanie proxy) Dowiązanie jawne (ang. explicit binding) dowiązanie wymaga wywołania odpowiedniej funkcji (np. bind), po którym może dopiero nastąpić wywołanie metody Dowiązanie domyślne (ang. implicit binding) wywołanie metody za pośrednictwem referencji skutkuje ustanowieniem dowiązanie do obiektu w procesie a Wywoływanie metod Statyczne wywoływanie metod wywołanie metody za pośrednictwem proxy, wygenerowanego na podstawie definicji interfejsu Dynamiczne wywoływanie metod skomponowanie informacji niezbędnych do wywołania w czasie działania systemu, np.: invoke(ref_obj, id_metody, param_wej, param_wyj); Przekazywanie obiektów jako parametrów Przekazywanie przez wartość do zdalnej metody przekazywana jest kopia obiektu, który jest parametrem rzeczywistym wywołania. Przekazywanie przez referencję (zmienną) do zdalnej metody przekazywana jest referencja (zdalna) do obiektu, który jest parametrem rzeczywistym. Przekazywanie przez kopiowanie i odtwarzanie do zdalnej metody przekazywana jest kopia obiektu, a po zakończeniu zdalnej metody następuje aktualizacja obiektu po stronie wywołania, stosownie do zmian dokonanych w ramach wykonania metody. Dariusz Wawrzyniak 18
19 Przekazywanie przez wartość przykład w Java RMI Przekazywanie przez referencję przykład w Java RMI Przekazywanie przez kopiowanie i odtwarzanie Message Oriented Middleware Systemy kolejkowania komunikatów Cechy MOM Uniezależnienie funkcjonowania składników aplikacji od dostępności informacji o interfejsach innych składników Uniezależnienie funkcjonowania warstwy komunikacyjnej (kanału komunikacyjnego) od działania (obecności) komunikujących się procesów Łatwość wdrożenia komunikacji asynchronicznej Koncepcja komunikacji oparta na kolejkowaniu Organizacja warstwy komunikacyjnej w postaci systemu kolejek realizowanych w oparciu o zasoby pamięci, w tym pamięci dyskowej (gwarancja trwałości na wypadek awarii) Udostępnienie mechanizmów komunikacji polegających na: umieszczeniu komunikatów w kolejkach, pobieraniu komunikatów z kolejek Dariusz Wawrzyniak 19
20 Paradygmat publish/subscribe Udostępnienie mechanizmu komunikacji opartego na identyfikacji wiadomości, a nie adresu nadawcy/odbiorcy Komunikujące się strony nie znają się wzajemnie Strona publikująca (nadawca) udostępnia treść związaną z określonym tematem (ang. topic) Środowisko komunikacyjne (usługa) przekazuje treść udostępnionych wiadomości odbiorcom (subskrybentom), którzy zarejestrowali (zapisali) się na dany temat. Model systemu kolejkowania komunikatów podstawowe pojęcia Wiadomość (ang. message) porcja danych (najczęściej z dodatkowymi własnościami) składowana w kolejce Kolejka (ang. queue) miejsce przechowywania wiadomości (komunikatów) Proces (ang. process) element aplikacji, zlecający operacje na wiadomościach w kolejce Zarządca zbioru kolejek moduł na danym węźle, odpowiedzialny za wykonywanie operacji na kolejkach (np. tworzenie, usuwanie, lokalizowanie kolejek, ustawianie atrybutów kolejek itp.) Model systemu kolejkowania komunikatów funkcjonowanie Warianty komunikacji proces proces proces proces proces proces router proces dysk proces proces proces proces Przykłady rozwiązań typu MOM IBM MQSeries (WebSphere MQ, XMS Message Service Client) Microsoft Message Queuing (MSMQ) Java Message Service (JMS) Apache ActiveMQ Oracle Advanced Queueing Sun Java System Message Queue (OpenMQ wersja open source) Usługa IceStorm w systemie ICE MOM API rodzaj operacji IBM MQSeries MSMQ tworzenie kolejki MQCreateQueue usuwanie kolejki MQDeleteQueue otwieranie kolejki MQopen MQOpenQueue zamykanie kolejki MQclose MQCloseQueue wysyłanie wiadomości MQput MQSendMessage odbieranie wiadomości MQget MQReceiveMessage Dariusz Wawrzyniak 20
21 Historia JMS Java Message Service na podstawie slajdów Cezarego Sobańca Opracowany w 1998 Pierwotny cel: dostęp do istniejących systemów kolejkowania wiadomości (tzw. MOM Message Oriented Middleware, np. IBM MQSeries) Integralna część Java EE od wersji 1.3 Komponenty JMS Funkcjonalność JMS Dostawca JMS (ang. JMS provider) implementacja interfejsów JMS, administracja, sterowanie Klienci JMS aplikacje i komponenty wysyłające i odbierające komunikaty Wiadomości obiekty do przenoszenia informacji Obiekty zarządzania (ang. administered objects) prekonfigurowane obiekty na potrzeby zarządzania: cele (ang. destinations) fabryki połączeń (ang. connection factories) Nieustanna, niezawodna, asynchroniczna komunikacja międzyprocesowa Transakcyjna interakcja z dostawcą JMS Modele komunikacji (messaging domains) punkt-punkt (ang. point-to-point) subskrypcji (ang. publish/subscribe) Architektura JMS Model punkt-punkt Wysyłanie i odbiór poprzez dostęp do kolejki Wiadomości pozostają w kolejce do czasu odbioru lub przedawnienia Każda wiadomość ma 1 konsumenta Brak ograniczeń czasowych Dariusz Wawrzyniak 21
22 Model subskrypcji Każda wiadomość może mieć wielu konsumentów Wiadomości są dostarczane do wszystkich aktualnych subskrybentów a następnie są usuwane Nie można odczytać wiadomości sprzed subskrypcji Trwała subskrypcja (ang. durable subscription) odbiór wiadomości z okresu nieaktywności a Model odbioru (konsumpcji) wiadomości Konsumpcja synchroniczna blokująca metoda receive() z (ewentualnym) ograniczeniem czasowym Konsumpcja asynchroniczna odbiornik wiadomości (ang. message listener) asynchroniczne wywołanie metody onmessage() Model programistyczny JMS Fabryki połączeń Ogólna: ConnectionFactory (interfejs bazowy dla poniższych) Dla kolejek: QueueConnectionFactory Dla tematów: TopicConnectionFactory Destinations Połączenie (ang. connection) queue topic w przypadku komunikacji punkt-punkt w przypadku modelu jms/queue ) private static Queue jms/topic ) private static Topic topic; Reprezentacja wirtualnego połączenia z dostawcą JMS Połączenie jest potrzebne do zainicjowania sesji Połączenie musi być jawnie zamknięte na końcu aplikacji (zwolnienie zasobów, m.in. otwartych sesji) Rozpoczęcie odbioru wiadomości: metoda start() Wstrzymanie odbioru wiadomości: metoda stop() Connection connection = connfactory.createconnection(); connection.start();... connection.close(); Dariusz Wawrzyniak 22
23 Sesje Producenci wiadomości Jednowątkowy kontekst do tworzenia i odbioru wiadomości Sesje tworzą: wiadomości producentów (nadawców) wiadomości konsumentów (odbiorców) wiadomości Session session = connection.createsession(false, Session.AUTO_ACKNOWLEDGE); Pierwszy argument wskazuje czy ma być tworzona jms/queue ) private static Queue queue; MessageProducer producer = session.createproducer(queue); producer.send(message); Wysyłanie do dowolnej kolejki: MessageProducer producer = session.createproducer(null); producer.send(queue, message); Odbiorcy wiadomości Filtry jms/queue ) private static Queue queue; MessageConsumer consumer = session.createconsumer(queue); Message m1 = consumer.receive(); Message m2 = consumer.receive(1000); Message listeners: Filtr jest wyrażeniem zapisywanym jak warunki w SQL92 typ = 'wyniki' and id = '120' Wyrażenie odwołuje się do właściwości wiadomości Filtr może być parametrem tworzenia konsumenta wiadomości MessageListener mylistener = new AListener(); consumer.setmessagelistener(mylistener); Listener ma metodę onmessage(message). Musi obsługiwać wszystkie wyjątki. Wiadomości Zawartość wiadomości (body) Wiadomości składają się z nagłówka listy właściwości ciała Standardowe właściwości (przechowywane w nagłówku) identyfikator JMSMessageID odbiorca JMSDestination znacznik czasowy JMSTimestamp priorytet JMSPriority typ JMSType TextMessage wiadomość tekstowa (np. dok. XML) MapMessage zbiór par nazwa-wartość (String i typ prymitywny) BytesMessage nieinterpretowany strumień bajtów StreamMessage strumień wartości prymitywnych typów ObjectMessage serializowalny obiekt Javy Message pusta zawartość TextMessage message = session.createtextmessage(); message.settext( Ala ma kota ); producer.send(message)... Message m = consumer.receive(); if (m instanceof TextMessage) {... m.gettext(); } Dariusz Wawrzyniak 23
24 Przeglądanie zawartości kolejki Przesyłanie wiadomości między systemami Interface QueueBrowser Możliwość zastosowania filtru Nie można przeglądać topic ów (wiadomości znikają) QueueBrowser browser = session.createbrowser(queue); Enumeration msgs = browser.getenumeration(); while (msgs.hasmoreelements()) { Message m = (Message)msgs.nextElement();... } Niezawodność komunikacji Potwierdzenia wiadomości Trwałość komunikatów awarie dostawców JMS Priorytety komunikatów Czas życia komunikatów Tymczasowe kolejki Potwierdzenia Po odbiorze wiadomości Po przetworzeniu wiadomości Po odbiorze potwierdzenia Wiadomości są automatycznie potwierdzane po zakończeniu transakcji Wycofanie transakcji ponowne dostarczenie AUTO_ACKNOWLEDGE po odbiorze CLIENT_ACKNOWLEDGE jawne potwierdzenie wszystkich odebranych wiadomości w ramach sesji DUPS_OK_ACKOWLEDGE leniwe potwierdzanie z możliwością powstawania duplikatów Potwierdzenie Trwałość wiadomości Wiadomości niepotwierdzone przed końcem sesji są dostarczane ponownie (przy kolejnym połączeniu) Przetrzymywanie niepotwierdzonych wiadomości dla trwałych subskrypcji Potwierdzenie tylko przetworzonych wiadomości: asynchroniczny odbiór i tryb AUTO_ACKNOWLEDGE odbiór synchroniczny i tryb CLIENT_ACKNOWLEDGE odbiór synchroniczny w trybie AUTO_ACKNOWLEDGE powoduje natychmiastowe potwierdzanie (przed przetworzeniem) Tryb PERSISTENT każda wiadomość jest rejestrowana w pamięci trwałej (tryb domyślny) Tryb NON_PERSISTENT wiadomość może zostać utracona w przypadku awarii dostawcy JMS (większa wydajność) Własność trwałości może być ustawiana dla producenta wiadomości lub dla pojedynczej wiadomości producer.setdeliverymode(deliverymode.non_persistent); producer.send(msg, DeliveryMode.NON_PERSISTENT,3,10000); Dariusz Wawrzyniak 24
25 Priorytety wiadomości Przedawnianie wiadomości Priorytet może być ustawiany dla producenta wiadomości lub dla pojedynczej wiadomości 0 najniższy priorytet, 9 najwyższy, domyślnie 4 Priorytet określa preferencje i nie decyduje o bezwzględnej kolejności dostarczania producer.setpriority(5); producer.send(msg, DeliveryMode.NON_PERSISTENT,5,10000); Czas życia może być ustawiany dla producenta wiadomości lub dla pojedynczej wiadomości Domyślnie wiadomości nie ulegają przedawnieniu Czas życia 0 oznacza brak przedawniania producer.settimetolive(10000); producer.send(msg, DeliveryMode.NON_PERSISTENT,5,10000); Trwałe subskrypcje Trwałe subskrypcje (2) Trwałe subskrypcje (3) Lokalne transakcje Identyfikacja subskrypcji identyfikator a topic nazwa subskrypcji MessageConsumer topicsubscriber = session.createdurablesubscriber(mytopic, "MySub");... topicsubscriber.close();... session.unsubscribe("mysub"); Grupowanie operacji wysyłania/odbioru w transakcji Metody Session.commit() i Session.rollback() Zatwierdzenie oznacza wysłanie wyprodukowanych wiadomości i potwierdzenie odebranych Wycofanie oznacza usunięcie wyprodukowanych wiadomości i ponowne dostarczenie wiadomości odebranych (z pominięciem przedawnionych) Uwaga na zakleszczenia: wysłanie następuje po zatwierdzeniu Dariusz Wawrzyniak 25
26 Kolejki tymczasowe Utworzenie kolejki tymczasowej TemporaryQueue tq = session.createtemporaryqueue(); Dołączenie kolejki tymczasowej do komunikatu msg.setjmsreplyto(tq); Uzyskiwanie dostępu do kolejki tymczasowej (po odebraniu komunikatu) tq = msg.getjmsreplyto(); Przestrzeń krotek Linda ogólna koncepcja Linda podstawowe pojęcia Mechanizm komunikacji międzyprocesowej zaproponowany przez Davida Gelerntera w 1985 Luźne powiązanie komunikujących się procesów (nie muszą znać się wzajemnie, nie muszą działać jednocześnie komunikacja nieustanna) Asocjacyjna identyfikacja komunikatów (w odróżnieniu do kolejkowania) we współdzielonej przestrzeni Współczesne implementacje: JavaSpaces Sun Microsystems (w ramach technologii Jini, projekt przejęty przez ASF Apache River), komercyjna implementacja dostarczana przez Gigaspaces TSpaces IBM Tuples On The Air (TOTA), L2imbo Krotka uporządkowana kolekcja danych określonych typów atrybutów, przy czym atrybuty mogą (ale nie muszą) mieć nadaną konkretną wartość Przestrzeń krotek wspólne miejsce dostępne dla kooperujących procesów, gdzie gromadzone są krotki Interfejs dostępu do przestrzeni krotek Output umieszczanie krotki w przestrzeni Input pobieranie krotki z przestrzeni Read odczytywanie krotki bez pobierania (odczytana krotka w dalszym ciągu pozostaje w przestrzeni) Try_Input, Try_Read nieblokujące wersji Input i Read Linda realizacja operacji dostępu Krotka staje się dostępna w przestrzeni po wykonaniu operacji Output, której parametrami są wartości atrybutów, np.: Output(4, 1, Good morning ) Operacja Input powoduje pobranie (usunięcie z przestrzeni) krotki, której wartości atrybutów są zgodne z parametrami operacji, np.: Input(4, 1, text: String) Wartości pozostałych atrybutów zostaną nadane zgodnie z zawartością pobranej krotki. Jeśli krotka została umieszczona w przestrzeni bez podania wartości któregoś z atrybutów (np. Output(, 1, Anybody there? ) może ona zostać pobrana przez Input z dowolną wartością tego atrybutu lub pominięciem tej wartości. Linda operacje na przestrzeni krotek Input(4, 1, text: String) [4, 1, Good morning ] [, 1, Anybody there? ] Output oczekiwanie [4, 2, How are you? ] Input(4, 2, text: String) Dariusz Wawrzyniak 26
27 Linda specyfikacja komunikacji JavaSpaces (przestrzeń obiektów) Przestrzeń krotek jest zbiorem (nie kolejką) krotki nie są uporządkowane i mogą być odbierane w innej kolejności niż były umieszczane. W realizacji operacji dostępu gwarantowana jest ogólnie rozumiana żywotność: Jeśli procesy czekają (w operacji Input) na krotkę, to przy odpowiednio dużej liczbie umieszczonych krotek z oczekiwanymi wartościami atrybutów każdy w końcu ją otrzyma. Jeśli krotka jest w przestrzeni, to po odpowiednio dużej liczbie operacji Input (ze zgodnymi parametrami) zostanie w końcu odczytana. Odpowiednikiem krotki jest obiekt klasy implementującej interfejs Entry. Zmienne instancji obiektu-krotki muszą być publiczne. Obiekt-krotka ma ustalony czas życia w przestrzeni (czas wynajmowania przestrzeni lease time). Czas życia można zwiększać nawet po umieszczeniu obiektu-krotki w przestrzeni. Operacje na przestrzeni krotek realizowane są poprzez metody write, take, read, takeifexists, readifexists interfejsu JavaSpace. public class Message implements Entry { public Integer id; public Integer num; public String text; } Przykład definicji klasy dla obiektukrotki public Message () {} public Message (Integer i, Integer n, String t){ id = i; num = n; text = t; } Przykład umieszczania krotki w przestrzeni JavaSpace space = getspace(); msg = new Message ( new Integer(4), new Integer(counter++), Good morning ); Lease l = space.write(msg, null, 6*60*60*1000); Przykład pobierania krotki z przestrzeni JavaSpace space = getspace(); template = new Message ( new Integer(4), null, null); Message msg = (Message)space.read( template, null, 60*60*1000); Dariusz Wawrzyniak 27
Wywoływanie procedur zdalnych
Mechanizm wywołania Wywoływanie procedur zdalnych main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) int zabij_proces (int pid){ int stat; stat = kill(pid,
Wywoływanie procedur zdalnych
Wywoływanie procedur zdalnych Mechanizm wywołania main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) }... int zabij_proces (int pid){ int stat; stat
Message Oriented Middleware
Systemy kolejkowania komunikatów 1. Koncepcja paradygmat kolejkowania (punkt-punkt) paradygmat publish/subscribe 2. Model systemu 3. Przykłady rozwiązań 4. JMS Uniezależnienie funkcjonowania składników
Message Oriented Middleware
Systemy kolejkowania komunikatów 1. Koncepcja paradygmat kolejkowania (punkt-punkt) paradygmat publish/subscribe 2. Model systemu 3. Przykłady rozwiązań 4. JMS Dariusz Wawrzyniak 1 Uniezależnienie funkcjonowania
Wywoływanie procedur zdalnych
Mechanizm wywołania Wywoływanie procedur zdalnych main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) }... int zabij_proces (int pid){ int stat; stat
Zdalne wywoływanie procedur RPC
Zdalne wywoływanie procedur Zagadnienia projektowe Zagadnienia realizacyjne main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) }... int zabij_proces
Zdalne wywoływanie procedur RPC
Zdalne wywoływanie procedur Zagadnienia projektowe Zagadnienia realizacyjne main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status)... int zabij_proces (int
Zdalne wywoływanie procedur RPC. Dariusz Wawrzyniak 1
Zdalne wywoływanie procedur Zagadnienia projektowe Zagadnienia realizacyjne main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status)... int zabij_proces (int
Zdalne wywoływanie procedur RPC 27. października Dariusz Wawrzyniak (IIPP) 1
Zagadnienia projektowe Zagadnienia realizacyjne main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status)... int zabij proces (int pid){ int stat; stat = kill(pid,
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
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
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
Środowiska przetwarzania rozproszonego
Środowiska przetwarzania rozproszonego Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (IIPP, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl www.cs.put.poznan.pl/dwawrzyniak
Środowiska przetwarzania rozproszonego
Środowiska przetwarzania rozproszonego Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (IIPP, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl www.cs.put.poznan.pl/dwawrzyniak
Middleware wprowadzenie października Dariusz Wawrzyniak. Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5)
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 i www.cs.put.poznan.pl/dwawrzyniak/middleware
Wywoływanie metod zdalnych
Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia
Wywoływanie metod zdalnych
Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia
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
Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1
Zdalne wywołanie procedur Krzysztof Banaś Systemy rozproszone 1 RPC Komunikacja za pomocą gniazd jest wydajna, gdyż korzystamy z funkcji systemowych niewygodna, gdyż musimy wyrażać ją za pomocą jawnego
Kolejkowanie wiadomości Standard MQ (JMS)
Kolejkowanie wiadomości Standard MQ (JMS) Kolejkowanie wiadomości Standard wymiany informacji wiadomości (ang. message) między procesami (mogą być rozproszone) Przykładowe rozwiązania: - RabbitMQ - ActiveMQ
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ą..
Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
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
76.Struktura oprogramowania rozproszonego.
76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie
Podejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia
Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
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ą.
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ą.
Zaawansowane narzędzia programowania rozproszonego
Zaawansowane narzędzia programowania rozproszonego Karol Gołąb karol.golab@tls-technologies.com 28 listopada 2001 1 Streszczenie Omówienie i porównanie popularnych standardów mechanizmów komunikacyjnych:
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
Programowanie Równoległe Wykład 4. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej
Programowanie Równoległe Wykład 4 MPI - Message Passing Interface Maciej Matyka Instytut Fizyki Teoretycznej Jak używać w MPI? Donald Knuth: We should forget about small efficiencies, say about 97% of
Programowanie w modelu przesyłania komunikatów specyfikacja MPI. Krzysztof Banaś Obliczenia równoległe 1
Programowanie w modelu przesyłania komunikatów specyfikacja MPI Krzysztof Banaś Obliczenia równoległe 1 Model przesyłania komunikatów Paradygmat send receive wysyłanie komunikatu: send( cel, identyfikator_komunikatu,
RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )
III RPC Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) 1. Koncepcja Aplikacja wywołanie procedury parametry wyniki wykonanie procedury wynik komputer klienta komputer serwera Zaletą takiego
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,
Tworzenie aplikacji rozproszonej w Sun RPC
Tworzenie aplikacji rozproszonej w Sun RPC Budowa aplikacji realizowana jest w następujących krokach: Tworzenie interfejsu serwera w języku opisu interfejsu RPCGEN Tworzenie: namiastki serwera namiastki
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
Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
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
Podejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm
Remote Method Invocation 17 listopada 2010
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Programowanie Równoległe Wykład 5. MPI - Message Passing Interface. Maciej Matyka Instytut Fizyki Teoretycznej
Programowanie Równoległe Wykład 5 MPI - Message Passing Interface Maciej Matyka Instytut Fizyki Teoretycznej Dorobiliśmy się strony WWW www.ift.uni.wroc.pl/~koma/pr/index.html MPI, wykład 2. Plan: - komunikacja
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ęć
Komponenty sterowane komunikatami
Komponenty sterowane komunikatami 1. Usługa JMS asynchroniczność, model przesyłania komunikatów, 2. Przykład wysyłanie wiadomości, odbieranie wiadomości, komponent sterowany komunikatami 3. Komponenty
Opis protokołu RPC. Grzegorz Maj nr indeksu:
Opis protokołu RPC Grzegorz Maj nr indeksu: 236095 1 Streszczenie Niniejszy dokument opisuje specyfikację protokołu RQP (Remote Queues Protocol). W jego skład wchodzą: opis celów protokołu; opis założeń
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
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów
Enterprise Java Beans Narzędzia i Aplikacje Java EE
Enterprise Java Beans Narzędzia i Aplikacje Java EE Michał Piotrowski Michał Wójcik Waldemar Korłub Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechnika
TRX API opis funkcji interfejsu
TRX Krzysztof Kryński Cyfrowe rejestratory rozmów seria KSRC TRX API opis funkcji interfejsu Kwiecień 2013 Copyright TRX TRX ul. Garibaldiego 4 04-078 Warszawa Tel. 22 871 33 33 Fax 22 871 57 30 www.trx.com.pl
Modele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak dla PR PP
Modele programowania równoległego Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak dla PR PP MPP - Cechy charakterystyczne 1 Prywatna, wyłączna przestrzeń adresowa.
Ćwiczenie 1. Kolejki IBM Message Queue (MQ)
Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając
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
Ada95 przetwarzanie rozproszone
Ada95 przetwarzanie rozproszone 1. Model systemu rozproszonego 2. Partycje i jednostki kompilacji 3. Glade narzędzie gnatdist język opisu konfiguracji 4. Przykład programu rozproszonego Model systemu rozproszonego
Ada95 przetwarzanie rozproszone
1 Ada95 przetwarzanie rozproszone 1. Model systemu rozproszonego 2. Partycje i jednostki kompilacji 3. Glade narzędzie gnatdist język opisu konfiguracji 4. Przykład programu rozproszonego 2 węzeł Model
Replikacja kolejkowa (Q-replication) w IBM DB2
Replikacja kolejkowa (Q-replication) w IBM DB2 Paweł Kędziora, Maciej Krysiuk, Marek Lewandowski Politechnika Poznańska pawel.kedziora@gmail.com, maciej.krysiuk@gmail.com, lewandowski.marek@gmail.com SPIS
Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu
Zdalne wywołanie metod - koncepcja Oprogramowanie systemów równoległych i rozproszonych Wykład 7 RMI (Remote Method Invocation) - obiektowe RPC, dostarcza klientowi interfejs do obiektu, implementacja
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................................
System plików warstwa logiczna
Dariusz Wawrzyniak Pojęcie u Plik jest abstrakcyjnym obrazem informacji gromadzonej i udostępnianej przez system komputerowy. Plik jest podstawową jednostką logiczną magazynowania informacji w systemie
Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1
P d jś i bi kt d b d t ó Podejście obiektowe do budowy systemów rozproszonych Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java),wywiedziony idi z Remote obie kt aplikacja klie ncka interfe js serw
ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku
System plików 1. Pojęcie pliku 2. Typy i struktury plików 3. etody dostępu do plików 4. Katalogi 5. Budowa systemu plików Pojęcie pliku (ang( ang. file)! Plik jest abstrakcyjnym obrazem informacji gromadzonej
Warstwy i funkcje modelu ISO/OSI
Warstwy i funkcje modelu ISO/OSI Organizacja ISO opracowała Model Referencyjny Połączonych Systemów Otwartych (model OSI RM - Open System Interconection Reference Model) w celu ułatwienia realizacji otwartych
Systemy Rozproszone Technologia ICE
Systemy Rozproszone Technologia ICE Zespół Systemów Rozproszonych () Katedra Informatyki AGH Kraków Kornel Skałkowski skalkow@agh.edu.pl Opracowano na podstawie książki: Henning M, Spruiell M. Distributed
Modele programowania równoległego. Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak
Modele programowania równoległego Programowanie z przekazywaniem komunikatów Message-Passing Programming Rafał Walkowiak MPP - Cechy charakterystyczne 1 Prywatna - wyłączna przestrzeń adresowa. Równoległość
Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego
Systemy operacyjne wprowadzenie 1 Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) System operacyjny jest zbiorem ręcznych i automatycznych procedur, które pozwalają grupie osób na
Oprogramowanie systemów równoległych i rozproszonych Wykład 7
Wykład 7 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Zdalne wywołanie
MODEL WARSTWOWY PROTOKOŁY TCP/IP
MODEL WARSTWOWY PROTOKOŁY TCP/IP TCP/IP (ang. Transmission Control Protocol/Internet Protocol) protokół kontroli transmisji. Pakiet najbardziej rozpowszechnionych protokołów komunikacyjnych współczesnych
Programowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)
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...................................................
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
Programowanie rozproszone w języku Java
Wstęp Gniazda RMI Podsumowanie Programowanie rozproszone w języku Java Wojciech Rząsa wrzasa@prz-rzeszow.pl Katedra Informatyki i Automatyki, Politechnika Rzeszowska 25 maja 2015 Wojciech Rząsa, KIiA PRz
Programowanie obiektowe
Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha
Kolejki FIFO (łącza nazwane)
Kolejki FIFO (łącza nazwane) Systemy Operacyjne 2 laboratorium Mateusz Hołenko 6 listopada 2011 Plan zajęć 1 Łącza w systemie Linux kolejki FIFO vs. potoki specyfika łączy nazwanych schemat komunikacji
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
Protokoły sieciowe - TCP/IP
Protokoły sieciowe Protokoły sieciowe - TCP/IP TCP/IP TCP/IP (Transmission Control Protocol / Internet Protocol) działa na sprzęcie rożnych producentów może współpracować z rożnymi protokołami warstwy
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
Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Przykłady DFS z lotu ptaka :) NFS AFS Coda GoogleFS ZFS
Przykłady DFS z lotu ptaka :) NFS AFS Coda GoogleFS ZFS NFS Network File System sieciowy system plików Stworzony przez Sun Microsystems Dostępny dla, m.in.: Unix, Windows, OS/2, Mac OS Pracuje w środowisku
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
System operacyjny MACH
Emulacja w systemie MCH System operacyjny MCH 4. SD Systemu V HP/UX MS-DOS VMS inne Mikrojądro Zbigniew Suski Zbigniew Suski Podstawowe cele projektu MCH! Dostarczenie podstawy do budowy innych systemów
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
Wypożyczalnia VIDEO. Technologie obiektowe
Wypożyczalnia VIDEO Jest to program do obsługi wypożyczalni i wypożyczeń klientów. Głównym zadaniem programu jest zarządzanie wypożyczeniami i drukowanie potwierdzenia wypożyczenia oraz naliczenie punktów
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
RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie: http://www.houp.info/rpc
RPC Remote Procedural Call Materiały do prezentacji można znaleźć na stronie: http://www.houp.info/rpc 1 Wprowadzenie Podstawowe założenia RPC: Program uruchamiany na maszynie A może wywołać procedurę
Komunikacja i wymiana danych
Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX
Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37
Referencyjny model OSI 3 listopada 2014 Mirosław Juszczak 37 Referencyjny model OSI Międzynarodowa Organizacja Normalizacyjna ISO (International Organization for Standarization) opracowała model referencyjny
1 Moduł Inteligentnego Głośnika
1 Moduł Inteligentnego Głośnika Moduł Inteligentnego Głośnika zapewnia obsługę urządzenia fizycznego odtwarzającego komunikaty dźwiękowe. Dzięki niemu możliwa jest konfiguracja tego elementu Systemu oraz
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ęć
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.
Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach
Laboratorium Systemów Operacyjnych Ćwiczenie 4. Operacje na plikach Wykonanie operacji wymaga wskazania pliku, na którym operacja ma zostać wykonana. Plik w systemie LINUX identyfikowany jest przez nazwę,
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
Sieci komputerowe Warstwa transportowa
Sieci komputerowe Warstwa transportowa 2012-05-24 Sieci komputerowe Warstwa transportowa dr inż. Maciej Piechowiak 1 Wprowadzenie umożliwia jednoczesną komunikację poprzez sieć wielu aplikacjom uruchomionym
Remote Quotation Protocol - opis
Remote Quotation Protocol - opis Michał Czerski 20 kwietnia 2011 Spis treści 1 Streszczenie 1 2 Cele 2 3 Terminologia 2 4 Założenia 2 4.1 Połączenie............................... 2 4.2 Powiązania z innymi
Metody dostępu do danych
Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia
1 Moduł Inteligentnego Głośnika 3
Spis treści 1 Moduł Inteligentnego Głośnika 3 1.1 Konfigurowanie Modułu Inteligentnego Głośnika........... 3 1.1.1 Lista elementów Modułu Inteligentnego Głośnika....... 3 1.1.2 Konfigurowanie elementu
IPC: Kolejki komunikatów
IPC: Kolejki komunikatów Systemy Operacyjne 2 laboratorium Mateusz Hołenko 7 listopada 2011 Plan zajęć 1 Mechanizmy IPC kolejki komunikatów pamięć współdzielona semafory 2 Kolejki komunikatów kolejka komunikat
Metody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/
Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:
Pliki W celu wykonania jakiejkolwiek operacji na istniejącym pliku, plik ten musi zostać otwarty, natomiast jeśli plik jeszcze nie istnieje, to musi zostać utworzony. Plik może zostać otwarty w trybie:
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
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ć
1 Wprowadzenie do J2EE
Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2
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............................................