Uniwersytet Warszawski - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Systemy rozproszone

Informacje ogólne

Kod przedmiotu: 1000-217bSR Kod Erasmus / ISCED: 11.3 / (0612) Database and network design and administration
Nazwa przedmiotu: Systemy rozproszone
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty obieralne dla informatyki
Przedmioty obowiązkowe dla I roku studiów 2 stopnia na kierunku informatyka
Punkty ECTS i inne: 6.00
zobacz reguły punktacji
Język prowadzenia: angielski
Rodzaj przedmiotu:

obowiązkowe

Skrócony opis:

Niniejszy przedmiot składa się zestawu – wykłady plus laboratoria. W ramach wykładów omówione zostaną podstawowe zagadnienia, fundamantalne zasady oraz technologie budowy systemów rozproszonych. Przykładowe zagadnienia to komunikacja, replikacja, odporność na błędy i bezpieczeństwo. W ramach laboratoriów natomiast studenci będą mieli okazję przećwiczyć te zagadnienia w praktyce – idywidualnie bądź w parach budując od podstaw system rozproszony w tematyce obliczeń w chmurze.

Zarówno wykłady jak i laboratoria będą prowadzone w języku angielskim. Niniejszy przedmiot jest polecany studentom uczęszczającym lub chcącym uczęszczać na seminarium „Systemy Rozproszone”. Laboratoria wymagają od studentów dużego zaangażowania oraz systematyczności.

Pełny opis:

Tematy obowiązkowe:

1. Wprowadzenie: definicje, typy systemów rozproszonych. (1 wykład)

2. Architektury: architektury systemów rozproszonych, warstwa pośrednicząca, samo-organizacja w systemach rozproszonych. (1-2 wykłady)

3. Procesy: wątki, wirtualizacja, klienci, serwery, migracja kodu. (1-2 wykłady)

4. Komunikacja: RPC, komunikacja zorientowana na wiadomości, komunikacja strumieniowa, rozgłaszanie. (1-2 wykłady)

5. Identyfikacja: płaska identyfikacja, identyfikacja ustrukturalizowana, identyfikacja w oparciu o atrybuty. (1-2 wykłady)

6. Synchronizacja: synchronizacja zegarów, zegary logiczne, problem wykluczania, pozycjonowanie węzłów, algorytmy elekcji. (1-2 wykłady)

7. Spójność i replikacja: modele spójności zorientowane na dane, modele spójności zorientowane na klienta, zarządzanie replikami, protokoły spójności. (1-2 wykłady)

8. Odporność na błędy: odporność procesów, niezawodna komunikacja klient-serwer, rozproszone zatwierdzanie, rekonstrukcja. (1-2 wykłady)

9. Bezpieczeństwo: bezpieczne kanały komunikacyjne, kontrola dostępu, zarządzanie bezpieczeństwem. (1-2 wykłady)

Tematy opcjonalne (w zależności od dostępnego czasu):

1. Rozproszone systemy oparte na obiektach.

2. Rozproszone systemy plików.

3. Rozproszone systemy web’owe.

4. Systemy do rozproszonej koordynacji.

Literatura:

1. A. S. Tanenbaum and M. van Steen, “Distributed Systems: Principles and Paradigms,” Second Edition, Prentice Hall, 2007.

2. Wybrane artykuły z czołowych konferencji i czasopism naukowych dotyczących systemów rozproszonych, między innymi SOSP, OSDI, NSDI i SIGCOMM.

Efekty uczenia się:

Wiedza

1. Zna techniki synchronizacji procesów i komunikacji międzyprocesowej w scentralizowanym i rozproszonym modelu programu współbieżnego [K_W04].

2. Zna algorytmy wzajemnego wykluczania i uzgadniania w systemach rozproszonych [K_W05].

3. Zdaje sobie sprawę z celów budowania systemów rozproszonych.

4. Zna różne zastosowania systemów rozproszonych.

5. Orientuje się w różnych modelach programistycznych używanych w budowie systemów rozproszonych.

6. Rozróżnia rolę organizacji fizycznej systemu od organizacji logicznej.

7. Zna pojęcie warstwy pośredniczącej.

8. Zna mechanizmy samoorganizacji systemów rozproszonych.

9. Wie jaką rolę w systemach rozproszonych odgrywają procesy, wątki, mechanizmy wirtualizacji oraz migracja kodu.

10. Zna podstawowe paradygmaty komunikacji w systemach rozproszonych (RPC, komunikaty, strumienie).

11. Wie jaką rolę odgrywają nazwy w systemach rozproszonych i jakich algorytmów używać do wyszukiwania nazw (np. rozproszone tablice mieszające).

12. Zna problemy związane z synchronizacją procesów w systemach rozproszonych, w szczególności synchronizację zegarów fizycznych oraz zegary logiczne.

13. Zna algorytmy synchronizacji.

14. Zna algorytmy rozgłaszania gwarantujące kolejność komunikatów (porządek zupełny, przyczynowo-skutkowy, itd.).

15. Zna problemy związane z zachowaniem spójności w systemach rozproszonych.

16. Zna różne modele spójności: zorientowane na dane, zorientowane na klienta, jednostki spójności.

17. Rozumie konieczność tworzenia systemów odpornych na błędy.

18. Zna różne modele błędów.

19. Orientuje się w algorytmach zapewniających odporność na te błędy.

20. Jest świadomy zagrożeń bezpieczeństwa systemów rozproszonych.

21. Zna różne techniki zapobiegania tym zagrożeniom.

Umiejętności

1. Potrafi zastosować mechanizmy synchronizacji procesów i wątków w wybranych technologiach w zależności od architektury i możliwości konkretnego komputera [K_U06].

2. Posługuje się nowoczesnymi technologiami rozpraszania i zrównoleglania obliczeń [K_U08].

3. Ma umiejętności językowe w zakresie informatyki zgodne z wymaganiami określonymi dla poziomu B2+ Europejskiego Systemu Opisu Kształcenia Językowego, w szczególności: identyfikuje główne i poboczne tematy wykładów, pogadanek, debat akademickich, dyskusji, czyta ze zrozumieniem i krytycznie analizuje teksty akademickie, zabiera głos w dyskusji lub debacie naukowej, streszcza ustnie informacje, wyniki badań, opinie i argumenty autora zawarte w tekście naukowym [K_U14].

4. Potrafi zaprojektować i zaimplementować komponenty systemu rozproszonego.

5. Potrafi testować elementy systemu rozproszonego.

Metody i kryteria oceniania:

Ocena końcowa na podstawie punktów z egzaminu pisemnego i zadań laboratoryjnych. Otrzymanie oceny pozytywnej jest uwarunkowane przez zaliczenie obu tych komponentów.

Dla zaliczenia laboratorium trzeba oddać wszystkie zadania w terminie i uzyskać z nich min 50% punktów. Jednym z zadań laboratoryjnych może być (wg uznania prowadzącego) mini-kolokwium. Punkty uzyskane za laboratorium są wliczane do oceny końcowej.

Zajęcia w cyklu "Semestr zimowy 2020/21" (w trakcie)

Okres: 2020-10-01 - 2021-01-31
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Laboratorium, 30 godzin więcej informacji
Wykład, 30 godzin więcej informacji
Koordynatorzy: Konrad Iwanicki
Prowadzący grup: Mateusz Banaszek, Konrad Iwanicki
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.