In this course, the textbook plays an important role, and the lectures will be keyed to it whenever possible. We will use slides from the book as well as slides of our own. These will not in general be available before the lecture, as the content of each lecture is decided dynamically depending on classroom discussions, Many of these discussions will use the blackboard.
It is therefore important that you bring a notebook and make your own notes, and that you understand that the slides are in no sense "lecture notes", or any kind of substitute for the textbook or even for the lectures. Slides are visual aides for the lecture, that is all. After the lecture, they may help you remember what was discussed.
In order to get an idea of the material we will cover in the course you can have a look at the lectures in previous editions of the course.
- 2013-2014 LP1 - Lecturer: K.V.S. Prasad (Do not read the contents related to the programming language JR).
- 2013-2014 LP3 - Lecturer: Alejandro Russo.
- 2014-2015 LP1 - Lecturer: K.V.S. Prasad.
- 2014-2015 LP3 - Lecturer: K.V.S. Prasad.
- 2015-2016 LP1 - Lecturer: Alejandro Russo.
- 2015-2016 LP3 - Lecturer: Michal Palka.
All the Erlang's material for the lectures is here
Lecture slides and reading notes
Lecture 1 on 16/08/29
Introduction
Slides: [.pdf]
Lecture 2 and 3 on 16/09/01 and 16/09/02
Lecture 2: State diagrams, interleaving, atomic actions, critical sections
Lecture 3: Semaphores, and brief introduction to monitors and protected objects
Slides: [.pdf]
The goal for the first week was to get past introduction (including to the critical section problem), and get to semaphores, monitors and protected objects. We did do semaphores in some detail, but only saw one program using protected objects. We only just mentioned what monitors are.
- If you have the TEXTBOOK, we have so far covered the following sections
2.2, 2.4, 2.5.
3.1, 3.2, 3.3. We did not do 3.4 and 3.5 in any detail, but you should be able to read them now.
6.1, 6.2, 6.3, 6.7
We mentioned monitors very briefly, instead looking at protected objects in 7.10.
If you want to read up on monitors, look up 7.1, 7.2, 7.3, 7.4, 7.6. - If you do not have the textbook, look up the WIKIPEDIA pages
https://en.wikipedia.org/wiki/Semaphore_(programming)
https://en.wikipedia.org/wiki/Monitor_(synchronization)
Wikipedia does not have an entry called protected objects but has a page on Ada
https://en.wikipedia.org/wiki/Ada_(programming_language), which has 4 paragraphs on the topic. See also
http://www.iuma.ulpgc.es/users/jmiranda/gnat-rts/node25.htm - My SLIDES, posted on the course website, should be of some help. From Ben-Ari’s slides, available from
http://www.weizmann.ac.il/sci-tea/benari/books/pcdp2-slides-2-0.zip
we looked at the following:
Algorithm Slide page(as counted by Acrobat) 2.1 2.3 7 2.2 2.4 8 2.5 9 2.6 10 2.7 11 2.3 2.12 16 2.13 17 2.4 2.14 18 2.15 19 2.16 20 3.1 3.1 55 3.2 3.3 57 3.5 3.9 63
Semaphores:
Algorithm Slide page(as counted by Acrobat) 6.1 6.2 112 6.2 6.3 113 6.4 114 6.3 6.5 115 6.4 6.6 116 6.8 6.12 122 6.8 6.47,48,49 157,158,159
Next week, Raul will do concurrency in Java. I will do two lectures on message passing (Chap 8 in the textbook) + an introduction to Functional Programming (F.P.)
Lecture 4 on 16/09/05
Concurrency in Java
Source code of the examples used in the lecture: .tar.gz
You can download the the java decompiler we used (jad) in the following mirror http://varaneckas.com/jad/.
Lecture 5 and 6 on 16/09/08 and 16/09/09
a. Introduction to FP, b. Message Passing
Slides: [.pdf]
Erlang Tutorials
16/09/12
Notes: [HTML]
16/09/16
Notes: [HTML]
Lecture 9 on 16/09/19
Linda (or, ”Spaces”)
Slides: [.pdf]
Lecture 10 on 16/09/23 and 26/09/26
An Introduction to Proofs about Concurrent Programs
Notes: [.pdf]
Lecture 11 on 16/09/30
More on invariants and textual reasoning -‐ examples
Slides: [.pdf]
Lecture 12 on 16/10/03
LTL, Dekker’s algorithm, ...
Slides: [.pdf]