|
|
Main menu for Browse IS/STAG
Course info
KIV / DS
:
Course description
Department/Unit / Abbreviation
|
KIV
/
DS
|
Academic Year
|
2023/2024
|
Academic Year
|
2023/2024
|
Title
|
Distributed Systems
|
Form of course completion
|
Exam
|
Form of course completion
|
Exam
|
Accredited / Credits
|
Yes,
6
Cred.
|
Type of completion
|
Combined
|
Type of completion
|
Combined
|
Time requirements
|
Lecture
3
[Hours/Week]
Tutorial
2
[Hours/Week]
|
Course credit prior to examination
|
Yes
|
Course credit prior to examination
|
Yes
|
Automatic acceptance of credit before examination
|
No
|
Included in study average
|
YES
|
Language of instruction
|
Czech
|
Occ/max
|
|
|
|
Automatic acceptance of credit before examination
|
No
|
Summer semester
|
0 / -
|
0 / -
|
0 / -
|
Included in study average
|
YES
|
Winter semester
|
0 / -
|
0 / -
|
0 / 0
|
Repeated registration
|
NO
|
Repeated registration
|
NO
|
Timetable
|
Yes
|
Semester taught
|
Winter semester
|
Semester taught
|
Winter semester
|
Minimum (B + C) students
|
10
|
Optional course |
Yes
|
Optional course
|
Yes
|
Language of instruction
|
Czech
|
Internship duration
|
0
|
No. of hours of on-premise lessons |
|
Evaluation scale |
1|2|3|4 |
Periodicity |
každý rok
|
Evaluation scale for credit before examination |
S|N |
Periodicita upřesnění |
|
Fundamental theoretical course |
No
|
Fundamental course |
No
|
Fundamental theoretical course |
No
|
Evaluation scale |
1|2|3|4 |
Evaluation scale for credit before examination |
S|N |
Substituted course
|
None
|
Preclusive courses
|
N/A
|
Prerequisite courses
|
N/A
|
Informally recommended courses
|
N/A
|
Courses depending on this Course
|
KIV/PES
|
Histogram of students' grades over the years:
Graphic PNG
,
XLS
|
Course objectives:
|
Get to know students about distributed systems architecture, and chosen types of distributed algorithm. Introduce to students with typical distributed systems tasks. To teach them to implement some distributed algorithm in the proper programming language, and to debug it in the environment of operating system UNIX (Linux).
|
Requirements on student
|
Course credit requirements:
Successful completion of all 4 assigned individual tasks (earning at least 60% points from each task) and meeting deadlines given at the initial lecture (see Courseware)
Requirements for successfully passing the exam:
The exam is written (60-75 minutes), supplemented by an oral interview if needed. The exam is scored by a maximum of 50 points (5 questions of 10 points each). The minimum for passing the exam is 30 points.
For a successful course completion, it is required to earn the course credit and successfully pass the exam. The final grading is based on points earned at the exam as follows:
* 44 to 50 points = grade "1" (výborně)
* 37 to 43 points = grade "2" (velmi dobře)
* 30 to 36 points = grade "3" (dobře)
* 0 to 29 points = failed
Due to continuous updates of the course content, an affirmative statement of the course guarantor is required in case of repeated enrollment (see Study and examination regulations).
Notice:
Deadlines and the form of verification of compliance with the requirements may be subject to change with regard to the measures announced in connection with the development of the epidemiological situation in the Czech Republic.
|
Content
|
1. Introduction to distributed systems, properties, architecture, requirements, models.
2. Interprocess communication, message passing, remote procedure calls.
3. Group communication, reliable group communication protocols.
4. Transactions, nested transactions, distributed transactions, locking, timestamps, error recovery.
5. Time, time synchronization, logical and physical clocks. Time synchronization algorithms.
6. Distributed algorithms, types, properties, synchronization, semaphores.
7. Deadlock, avoidance, prevention, detection. Deadlock in distributed systems.
8. Consistency, client centric and data centric models, file replication, distributed shared memory.
9. Distributed systems security, Attack, resource protection, cryptography, message fingerprint.
10. Secure communication, user authentication, key distribution.
11. Distributed file system, DFS examples (NFS, AFS).
12. Peer-to-peer systems, distributed hash tables.
13. Wireless sensor networks.
|
Activities
|
|
Fields of study
|
|
Guarantors and lecturers
|
|
Literature
|
|
Time requirements
|
All forms of study
|
Activities
|
Time requirements for activity [h]
|
Preparation for an examination (30-60)
|
45
|
Contact hours
|
65
|
Graduate study programme term essay (40-50)
|
50
|
Presentation preparation (report) (1-10)
|
8
|
Preparation for formative assessments (2-20)
|
12
|
Total
|
180
|
|
Prerequisites
|
Knowledge - students are expected to possess the following knowledge before the course commences to finish it successfully: |
to demonstrate knowledge of computer networks at the level of the KIV/PSI course |
to demonstrate knowledge of operating systems at the level of the KIV/OS course |
to demonstrate knowledge of the C programming language |
to demonstrate knowledge of finite automata and their implementation in a programming language |
to be familiar with abstract data types and their implementation in the C programming language |
to demonstrate knowledge of the Linux operating system including networking applications |
to demonstrate knowledge of parallel process and thread management |
to demonstrate knowledge of synchronization methods in the Linux operating system |
Skills - students are expected to possess the following skills before the course commences to finish it successfully: |
to be able utilize common development and versioning tools |
to be able to work on a personal computer in the Linux operating system |
to be able to use common C language development environments on a basic user level |
to be able to develop advanced programs in the C programming language |
to be able to develop communication software using the BSD sockets API in the Linux operating system environment |
Competences - students are expected to possess the following competences before the course commences to finish it successfully: |
N/A |
|
Learning outcomes
|
Knowledge - knowledge resulting from the course: |
to be familiar with distributed systems issues |
to demonstrate theoretical knowledge of common problems requiring independent process coordination and distributed algorithms the be solved |
to demonstrate profound knowledge of network programming, specially system functions |
to demonstrate profound knowledge of graphical user interfaces |
to demonstrate knowledge of selected distributed algorithms |
to demonstrate knowledge of the problems of time synchronization, data consistency, multiple copies, distributed transactions, distributed file systems and P2P networks |
to demonstrate knowledge in the area of distributed systems reliability and failure detection |
Skills - skills resulting from the course: |
to be familiar with parallel process and thread programming and their synchronization |
to know how to pass data between processes and threads in the UNIX/Linux operating systems environment |
To be familiar with command line commands in the Linux operating system environment, especially those, related to the networking layer. To be able to analyze and check the networking layer settings and verification and also problem diagnostics |
To be able to design and implement client/server network applications. To be able to design and implement solutions based on selected distributed algorithms |
To be able to debug software in a distributed environment |
To be able to analyze applications and to find possible bugs |
Competences - competences resulting from the course: |
N/A |
N/A |
|
Assessment methods
|
Knowledge - knowledge achieved by taking this course are verified by the following means: |
Test |
Seminar work |
Combined exam |
Continuous assessment |
Skills - skills achieved by taking this course are verified by the following means: |
Individual presentation at a seminar |
Seminar work |
Competences - competence achieved by taking this course are verified by the following means: |
Written exam |
|
Teaching methods
|
Knowledge - the following training methods are used to achieve the required knowledge: |
Lecture |
One-to-One tutorial |
Practicum |
Self-study of literature |
Task-based study method |
Individual study |
Skills - the following training methods are used to achieve the required skills: |
Students' portfolio |
Individual study |
Competences - the following training methods are used to achieve the required competences: |
Lecture |
|
|
|
|