Systemy rozproszone

Diffuse systems

2021L

Kod przedmiotu17S2-SYSTEROZ
Punkty ECTS
Typ zajęć Ćwiczenia laboratoryjne
Wykład
Przedmioty wprowadzające sieci komputerowe, systemy operacyjne, programowanie obiektowe
Wymagania wstępneprogramowanie obiektowe
Opis ćwiczeń
Opis wykładówykład omawia zasady działania, oraz sposoby konstruowania rozproszonych aplikacji i systemów operacyjnych. Prezentowane zagadnienia dotyczą różnych aspektów systemów rozproszonych takich jak: komunikacja, procesy, nazewnictwo, synchronizacja, spójność i zwielokrotnianie, tolerowanie awarii, czy bezpieczeństwo. Dodatkowo wykład omawia istniejące systemy rozproszone, zorganizowane według szczególnego paradygmatu, tzn. oparte na: obiektach rozproszonych, dokumentach, rozproszonych systemach plików, koordynacji. Podstawy organizacji systemów GPU, elementy programowania równoległego na przykładzie języka CUDA_C,ĆWICZENIA LABORATORYJNE:Ćwiczenia zostały podzielone na 2 logiczne części. Podczas pierwszej z nich, student poznaje zagadnienia praktyczne związane z budową systemów rozproszonych, takie jak: programowanie wielowątkowe, synchronizacja wątków, komunikacja klient-serwer przy użyciu gniazd, komunikacja przy pomocy obiektów zdalnych (Java RMI). Druga część ćwiczeń polega na wykonaniu dwóch mini projektów, w oparciu o umiejętności uzyskane w części pierwszej ćwiczeń i wiedzę omawianą w ramach wykładu . Projekty wykonywane są w parach i polegają na implementacji wybranej aplikacji rozproszonej, lub algorytmu rozproszonego.
Cel kształceniaNabycie wiedzy dotyczącej zasad i mechanizmów funkcjonowania wybranych aspektów systemów rozproszonych, oraz sposobu realizacji takich zagadnień jak: komunikacja, synchronizacja, zwielokrotnianie, tolerowanie awarii. Nabycie umiejętności praktycznych w zakresie programowania rozproszonych aplikacji i algorytmów.
Literatura podstawowa1) S. Tannenbaum, M. Steen,, Systemy rozproszone, Zasady i paradygmaty , WNT, 2006 2) G. Coulouris, J. Dollimore, T. Kindberg, Systemy rozproszone Podstawy i projektowanie, WNT, 1998
Literatura uzupełniająca1) Paweł Majdzik, wyd. Helion, Programowanie współbieżne. Systemy czasu rzeczywistego, 2013r., tom , 320s. 2) Karbowski Andrzej, Niewiadomska-Szynkiewicz Ewa, wyd. Politechnika Warszawska, Programowanie równoległe i rozproszone , 2013r., tom , 428s. 3) Mateusz Warczak, Jacek Matulewski, Rafał Pawłaszek, Piotr Sybilski, Dawid Borycki, wyd. Helion, Programowanie równoległe i asynchroniczne w C# 5.0, (ebook), tom , 440s. 4) Antonio Melé, wyd. Helion, Django. Praktyczne tworzenie aplikacji sieciowych, 2016r., tom 5) Bończak Krzysztof, wyd. Wydawnictwo Naukowe PWN, W poszukiwaniu zwinności w architekturze systemów IT, 2017r., tom 6) Jason Sanders, Edward Kandrot, wyd. Helion, CUDA w przykładach. Wprowadzenie do ogólnego programowania procesorów GPU, 2012r., tom 7) Jason Sanders, Edward Kandrot, wyd. NVIDIA, CUDA by Example: An Introduction to General‑Purpose GPU, 2010r., tom
UwagiBRAK UWAG