SylabUZ

Wygeneruj PDF dla tej strony

Concurrent and distributed programming - opis przedmiotu

Informacje ogólne
Nazwa przedmiotu Concurrent and distributed programming
Kod przedmiotu 11.3-WE-INFP-CaDP-Er
Wydział Wydział Informatyki, Elektrotechniki i Automatyki
Kierunek WIEiA - oferta ERASMUS / Informatyka
Profil -
Rodzaj studiów Program Erasmus pierwszego stopnia
Semestr rozpoczęcia semestr zimowy 2018/2019
Informacje o przedmiocie
Semestr 4
Liczba punktów ECTS do zdobycia 4
Typ przedmiotu obowiązkowy
Język nauczania angielski
Sylabus opracował
  • dr inż. Tomasz Gratkowski
Formy zajęć
Forma zajęć Liczba godzin w semestrze (stacjonarne) Liczba godzin w tygodniu (stacjonarne) Liczba godzin w semestrze (niestacjonarne) Liczba godzin w tygodniu (niestacjonarne) Forma zaliczenia
Wykład 30 2 - - Egzamin
Laboratorium 30 2 - - Zaliczenie na ocenę

Cel przedmiotu

  • Familiarize students with basic techniques of concurrent programming
  • Familiarize students with basic techniques of distributed programming
  • Teach students the fundamental skills of using concurrent and distributed programming techniques
  • Learn basic skills in developing software used balanced and distributed architecture

Wymagania wstępne

Principles of programming, Java programming, Computer architectures I and II.

Zakres tematyczny

Concurrent programming – basic concept: process, shared resources, critical section, mutual exclusion, synchronization, deadlock, starvation.

Aims of concurrent programming. Advantages and disadvantages of concurrent programming.

Semaphores: general semaphore, binary semaphore, synchronization of processes with usage of semaphores.

Concurrent programming in Java. Monitors. Additional methods of threads synchronization: blocking queued, barriers, countdown of latch and exchanger.

Classical problems of concurrent programming: dining philosophers problem, producer-consumer problem, readers-writers problems.

Characterization of Distributed Systems. Inter-process communication. Guidelines for design of inter-process communication.

Remote procedure call (RPC). Remote method invocation (RMI). How to build of distributed applications in Java RMI. Integration different distributed environments.

Time and coordination in distributed systems. Logical clock. Election algorithm. Transactions and concurrency control in distributed systems. Algorithms for deadlock detection in distributed systems.

Metody kształcenia

Lecture: conventional lecture
Laboratory: laboratory exercises, group work

Efekty uczenia się i metody weryfikacji osiągania efektów uczenia się

Opis efektu Symbole efektów Metody weryfikacji Forma zajęć

Warunki zaliczenia

Lecture - obtaining a positive grade in written exam. 
Laboratory - the main condition to get a pass are sufficient marks for all exercises and tests conducted during the semester.
Calculation of the final grade: = lecture 50% + laboratory 50%.

Literatura podstawowa

  1.  Ben-Ari M.: Principles of Concurrent and Distributed Programming, Addison-Wesley, 2006.
  2.  Foster I.: Designing and Building Parallel Programs, http://www.mcs.anl.gov/~itf/dbpp/
  3.  Coulouris G. et al.: Distributed Systems. Concepts and Design (4th ed.), Addison Wesley, 2005.
  4.  Tanenbaum S.: Distributed Systems. Principles and Paradigms (2nd ed.), Prentice Hall, 2002.
  5.  Garg V. K.: Concurrent and Distributed Computing in Java. Wiley-IEEE Press, 2004.
  6.  Horstmann C. S., Cornell G.: Core Java™ 2: Volume II–Advanced Features, Prentice Hall, 2008.
  7.  Goetz B., Peierls T., Bloch J., Bowbeer j., Holmes D., Lea D.: Java Concurrency in Practice, Addison-Wesley Professional, 2006.

Literatura uzupełniająca

Uwagi


Zmodyfikowane przez dr inż. Tomasz Gratkowski (ostatnia modyfikacja: 04-04-2018 12:26)