Distributed systems
General data
Course ID: | 1000-217bSR |
Erasmus code / ISCED: |
11.3
|
Course title: | Distributed systems |
Name in Polish: | Systemy rozproszone |
Organizational unit: | Faculty of Mathematics, Informatics, and Mechanics |
Course groups: |
(in Polish) Grupa fundamentalnych przedmiotów systemowych dla informatyki magisterskiej (in Polish) Grupa przedmiotów obowiązkowych dla informatyki magisterskiej-specjalność Systemy informatyczne (in Polish) Przedmioty obieralne na studiach drugiego stopnia na kierunku bioinformatyka Elective courses for Computer Science and Machine Learning Elective courses: concurrent and distributed programming |
ECTS credit allocation (and other scores): |
6.00
OR
9.00
(differs over time)
|
Language: | English |
Type of course: | obligatory courses |
Short description: |
This course consists of two components: a lecture and a practical work. The lecture will cover the principles, advanced concepts, and technologies of distributed systems, including communication, replication, fault tolerance, and security. The practical part, in turn, will give students an opportunity to test the new knowledge in the real world. More specifically, individually or in pairs, the students will build a distributed system related to cloud computing. The practical work is very demanding in terms of the dedicated time and required programming skills. |
Full description: |
Core topics: 1. Introduction: definitions, types of distributed systems. (1 lecture) 2. Architectures: system architectures, architectures vs. middleware, self-management in distributed systems. (1-2 lectures) 3. Processes: threads, virtualization, clients, servers, code migration (1-2 lectures) 4. Communication: remote procedure call, message-oriented communication, stream-oriented communication, multicast. (1-2 lectures) 5. Naming: flat naming, structured naming, attribute-based naming. (1-2 lectures) 6. Synchronization: clock synchronization, logical clocks, mutual exclusion, global positioning of nodes, election algorithms. (1-2 lectures) 7. Consistency and replication: data-centric consistency models, client-centric consistency models, replica management, consistency protocols. (1-2 lectures) 8. Fault tolerance: process resilience, reliable client-server communication, distributed commit, recovery. (1-2 lectures) 9. Security: secure channels, access control, security management. (1-2 lectures) Optional topics (depending on the available time): 1. Distributed object-based systems. 2. Distributed file systems. 3. Distributed web-based systems. 4. Distributed coordination-based systems. |
Bibliography: |
1. A. S. Tanenbaum and M. van Steen, “Distributed Systems: Principles and Paradigms,” Second Edition, Prentice Hall, 2007. 2. Selected papers from top systems conferences and journals, including SOSP, OSDI, NSDI, and SIGCOMM. |
Learning outcomes: |
Knowledge 1. Knows process synchronization techniques and process communication techniques in centralized and distributed model of programming [K_W04]. 2. Knows algorithms of mutual exclusion and synchronization in distributed systems [K_W05]. 3. Recognizes the need for building distributed systems. 4. Knows various applications of distributed systems. 5. Is familiar with different programming models employed in distributed system development. 6. Is able to differentiate between the roles of physical and logical system organizations. 7. Is familiar with the role of middleware in distributed systems. 8. Knows self-organization mechanisms in distributed systems. 9. Is aware of the roles of processes, threads, virtualization and code migration in distributed systems. 10. Knows basic communication paradigms in distributed systems (RPC, messaging, streams). 11. Is familiar with the roles of names in distributed systems and algorithms employed for handling various naming schemes (e.g., distributed hash tables). 12. Recognizes the problems associated with synchronizing processes in distributed systems, in particular, with physical and logical clocks. 13. Knows various synchronization algorithms. 14. Knows multicasting algorithms that guarantee message ordering (e.g., total ordering or causal ordering). 15. Recognizes problems stemming for the need for consistency in distributed systems. 16. Knows various consistency models: data-centric consistency, client-centric consistency, commit-based consistency. 17. Understands the need for fault tolerance in distributed systems. 18. Is familiar with various failure models. 19. Knows fault tolerance algorithms for these models. 20. Is aware of the importance of security in distributed systems. 21. Knows various techniques helping build secure systems. Skills 1. Is able to apply mechanisms of process and thread synchronization in selected technologies depending on the architecture and capacity of a particular computer [K_U06]. 2. Uses modern techniques of computation distribution and parallelization. [K_U08]. 3. Has command of a foreign language in the subject of computer science according to the requirements of the level B2+ of Common European Framework of Reference for Languages, in particular: identifies main and side topics of lectures, talks, academic debates, discussions; is able to understand the text being read and critically review academic texts; is able to take part in discussion and scientific debate, is able to orally summarize information, results of studies, author's opinions and points included in a scientific text [K_U14]. 4. Is capable of designing and implementing components of a distributed system. 5. Is capable of testing components of a distributed system. |
Assessment methods and assessment criteria: |
Programming assignments and final exam with ratio 50:50. Both items must be passed to get a positive grade. To pass laboratory part one has to deliver all assignments on time and get at least 50% of points. One of the laboratory assignments may be (according to the coordinator's view) a mini-examination. The points obtained in the laboratory classes are part of the final grade. Passing the course in the zeroth term requires scoring at least 38 of points in the laboratory classes. The total number of points obtained in the zeroth term is as follows: min(50, L) x 1.6, where L is the number of points scored in the laboratory classes. More information on the course website: https://www.mimuw.edu.pl/~iwanicki/courses/ds/ |
Classes in period "Winter semester 2024/25" (past)
Time span: | 2024-10-01 - 2025-01-26 |
Go to timetable
MO TU W WYK
LAB
LAB
TH FR |
Type of class: |
Lab, 30 hours
Lecture, 30 hours
|
|
Coordinators: | Konrad Iwanicki | |
Group instructors: | Wojciech Ciszewski, Konrad Iwanicki, Maciej Matraszek | |
Students list: | (inaccessible to you) | |
Credit: | Examination |
Classes in period "Winter semester 2025/26" (future)
Time span: | 2025-10-01 - 2026-01-25 |
Go to timetable
MO TU W WYK
LAB
LAB
TH FR |
Type of class: |
Lab, 30 hours
Lecture, 30 hours
|
|
Coordinators: | Konrad Iwanicki | |
Group instructors: | Konrad Iwanicki, Paweł Żuk | |
Students list: | (inaccessible to you) | |
Credit: |
Course -
Examination
Lecture - Examination |
Copyright by University of Warsaw.