Person in charge: | (-) |
Others: | (-) |
Credits | Dept. | Type | Requirements |
---|---|---|---|
7.5 (6.0 ECTS) | CS |
|
PRED
- Prerequisite for DIE , DCSYS PS - Prerequisite for DCSFW |
Person in charge: | (-) |
Others: | (-) |
The aim of this subject is for students to learn to design and implement concurrent and distributed programmes securely and reliably. To guide the students in the design process, they are introduced to LST (Labelled System Analyser), a model that allows one to design, visualise and analyse systems of transitions. In order for them to have a broader idea of concurrence and distributed systems, students are taught other models, such as Petri Nets. In order for students to gain a complete understanding of the steps of the process, from modelling to implementation, they undertake practicals in Java and Erlang programming languages. To model Petri Nets we use WoPeD.
Estimated time (hours):
T | P | L | Alt | Ext. L | Stu | A. time |
Theory | Problems | Laboratory | Other activities | External Laboratory | Study | Additional time |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 4,0 | 2,0 | 0 | 2,0 | 9,0 | 0 | 21,0 | |||
Problem of destructive interference. Locks and mutual exclusion. Semaphore modelling and the problem of nested monitors. Deadlock, analysis using LST.
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 4,0 | 2,0 | 0 | 2,0 | 9,0 | 0 | 21,0 | |||
Description and examples of safety and implementation through LTS. Description of liveness, particularly in connection with progress and implementation in LTS.
|
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
6,0 | 6,0 | 3,0 | 0 | 3,0 | 12,0 | 0 | 30,0 | |||
Message passing. Client/server architecture
Introduction to other architectures: filter pipelines, supervisor/workers, advertiser/recipient. Message Passing in Erlang. Client/server architecture in Erlang. |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 4,0 | 2,0 | 0 | 2,0 | 9,0 | 0 | 21,0 | |||
Examples of Petri networks. Karp and Miller algorithm.
Introduction to WoPed. Special classes of Petri networks. |
|
T | P | L | Alt | Ext. L | Stu | A. time | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 4,0 | 2,0 | 0 | 2,0 | 9,0 | 0 | 21,0 | |||
Case studies: "distributed rearrangement", self-stabilising mutual exclusion, protocols with acknowledgment (ACK) messages.
|
Total per kind | T | P | L | Alt | Ext. L | Stu | A. time | Total |
28,0 | 28,0 | 14,0 | 0 | 14,0 | 60,0 | 0 | 144,0 | |
Avaluation additional hours | 6,0 | |||||||
Total work hours for student | 150,0 |
Examples will be used to introduce basic concepts in the theory classes. Students will solve exercises on theory class themes in the practical classes. Lab classes will cover implementation of these problems (or similar problems) in Java and Erlang. Both the lab and problem classes may employ design and analysis tools such as LTS.
There will be a final exam and a lab grade. The exam will comprise problems on the theory taught. The lab grade will reflect the quality of students" work. The final grade will be calculated as follows:
0.6*final exam + 0.4*lab grade
Sound knowledge of Java regarding classes and objects.