![]() |
Runtimes for
concurrency and distribution Master Degree in Computer Science University of Padova, a.y. 2020/2021 Instructor: Tullio Vardanega |
Week | Date | Lecture # | Lecture Topic |
1 |
28 September |
1 | On the notion of run-time support |
30 September |
2 |
On multi-programming | |
2 |
05 October |
3 |
On
virtualization Homework: Investigate the inner workings (under the hood) of Virtualbox |
07 October |
4 |
On concurrent programming Homework: Scrutinize the "driving motivation" of modern languages that have chosen to support co-routines or other forms of concurrency Resources: C#'s concurrency model Resources: Per Brinch Hansen on Java concurrency Resources: The inheritance anomaly problem |
|
3 |
12 October |
5 |
Continuation of lecture 4 |
14 October | 6 | On communication among threads | |
4 |
19 October |
7 |
Continuation of lecture 6 Resources: Ada's base concurrency model Resources: About Ada tasking Resources: Ada for the C++ or Java developer Example: The notion of master & dependent |
21 October |
8 |
On
synchronous communication Example: Programmatic realization of the Dining Philosophers case |
|
5 |
26 October | 9 | Continuation of lecture 8 In-class exercise: analysis of Eratosthenes' sieve: synchronous version Homework: try and reproduce the above program in your language of election |
28 October |
10 |
On asynchronous communication Example: Application-level control of call queuing Example: A producer-consumer system with bounded buffer Homework: Study Eratosthenes' sieve: asynchronous version and reproduce in your language of election Resources: Per Brinch Hansen: "Structured Multiprogramming" (CACM, 1972) |
|
6 | 02 November | 11 | Continuation of lecture 10 |
04 November | FC1 | (Flipped class) You report on other models of language-level concurrency and we all discuss your findings | |
7 |
09 November | 12 | On the multiple facets of
synchronization Example: Application-level allocation of resources Resources: Toby Bloom: "Evaluating Synchronization Mechanisms" (CACM, 1979) |
11 November | FC2 | (Flipped class) You constructively solve a design-and-programming problem posed by the instructor | |
8 |
16 November | FC3 |
Continuation of FC2 Example: An elegant solution in Ada Homework: Try and reproduce (or improve) the example solution in your language of election and single out the comparative pros and cons |
18 November | 13 | An introduction to distributed systems Resources: On system scalability |
|
9 |
24 November (08:30-10:15) |
14 |
Continuation of lecture 13 |
25 November | 15 |
Distributed
inter-process communication Resources: Naming & DNS |
|
10 |
30 November | 16 | Continuation of lecture 15 |
02 December | 17 | Distributed concurrency Resources: Statelessness |
|
11 |
09 December | 18 |
Distributed synchronization Homework: Study the inner workings of this Ada demonstrative concurrent implementation of Chandy-Lamport's distributed snapshot Resources: Chandy and Lamport's "distributed snapshot" Resources: Lecture material @ Cornell University (Ken Birman) |
10
December (14:30-16:15) |
19 | The native distribution model in (early) Java | |
12 |
14 December | 20 |
The native distribution model in
Ada Example: Distributed version of Eratosthenes' sieve in Ada - source code Resources: Another use-case example Resources (implementazione middleware): GLADE, RT-GLADE Resources: YAMI4: un middleware per scambio messaggi in distribuito |
16 December | 21 | Continuation of lecture 20 | |
Exam requirements | |||
13 |
21 December |
22 | Cloud computing - general introduction - Ken Birman @ Cornell view of the Cloud Homework (self-study, material in Italian): - on Cloud-enabled applications - on scalability and multitenancy |
15 | 11 January | 23 | Cloud computing:
orchestration as the new middleware [Closing seminar] |
In the second-half of the lecture series, the instructor will single out themes that the students shall be invited to select as their exam study topic. The students, whether individually or collaboratively (in groups of 2-3 individuals), shall review the state of the art on the selected topic, and implement a software demonstrator that highlights aspects of interest in keeping with the course focus (hence the runtime involvement in the realization of advanced concurrency or distribution features).
The exam will consist in the
student(s)' first submitting a technical report on the main findings of
the said effort (including the highlights of the software demonstrator),
and then, in an oral presentation and discussion of the same.
Should students not feel sufficiently
engaged by the themes as proposed, they will be allowed to negotiate
elective alternative topics of pertinence with the instructor.
The students ready to make their own oral presentation shall request an appointment with the instructor. Pass grades will be entered in the Uniweb system at the date in the official exam schedule that is closest to said appointment.