02152  Concurrent Systems - Course Material
Technical University of Denmark DTU
02152 Concurrent Systems        Fall 2008
Course Material
Home Plan Material  

Main Texts and Material

[Andrews] Gregory R. Andrews: Foundations of Multithreaded, Parallel, and Distributed Programming
Addison-Wesley 2000. ISBN 0-201-35752-6.

This is the main text of the course. The course will cover Parts I and II. Remember to consult the errata list.
Can be obtained in the campus bookstore (Polyteknisk Boghandel) for about 450 kr. (students' price).

The main text is supplemented by a number of course notes.

[Basic] Hans Henrik Løvengreen: Basic Concurrency Theory, Version 1.1
Course note, IMM, 2005.

This note supplements [Andrews] for the Concurrent Programming part.
It has to be bought for 50 Kr. at the "IMM Bookshop" at the start of the semester.

[Aux] Auxiliary Exercises. Exercise compendium, 16 pages. (ps)(pdf)
You are supposed to print this set of exercises yourself.

[Proc] Hans Henrik Løvengreen: Concurrent Programming Practice 1: Processes and Threads, vers. 1.5.
Course note, 14 pages. (ps)(pdf)
You are supposed to print this note yourself.

[Spin] Hans Henrik Løvengreen: Introduction to SPIN, version 1.2
Course note, 13 pages. (ps)(pdf)
You are supposed to print this note yourself.

[Sync] Hans Henrik Løvengreen: Concurrent Programming Practice 2: Synchronization Mechanisms, vers. 1.3.
Course note, 18 pages. (ps)(pdf)
You are supposed to print this note yourself.

[Deadlocks] A. Silberschatz, J.L. Peterson and P.B. Galvin: Deadlocks
Chapter 6 of Operating System Concepts (3rd ed.)
Addison-Wesley 1991. ISBN:0-201-51379-X .
Available via [CampusNet]. Alternatively, you may obtain a paper copy of this note from HHL

[PMG] Robin I. Sharp: The Poor Man's Guide to Computer Networks and their Applications
Course note, 108 pages. IMM, October 2007. (pdf)
This is the main material for the network programming part of the course.
You are supposed to print the note yourself.
[Two-sided printing recommended. Colour-printing will enhance some of the figures, but is not strictly necesssary.]

Slides, Auxiliary Material, Exercise Classes, Solutions and Labs

 
Week Date Selected Slides,
Auxiliary Material
Solutions to
home-work
Exercise Class/
Lab
Solutions to
Exercise Class/Lab
Mini
Lab

1 Sep 1 Course intro slides (ps)(pdf)
Concept slides(ps)(pdf)
(ps)(pdf) - - -
Sep 4 - (ps)(pdf) CP lab 1 CP lab 1 sol. 1
2 Sep 8 Property slides(ps)(pdf) (ps)(pdf) Ex.Class 1 (ps)(pdf) Sol.Class 1 (ps)(pdf) 2
Sep 11 Lock protocol slides(ps)(pdf) (ps)(pdf) CP lab 2 CP lab 2 sol. -
3 Sep 15 SPIN slides (ps)(pdf) (ps)(pdf) Ex.Class 2 (ps)(pdf) Sol.Class 2(ps)(pdf) -
Sep 18 Temporal logic slides(ps)(pdf) (ps)(pdf) CP lab 3   -
4 Sep 22 - (ps)(pdf) Ex.Class 3 (ps)(pdf) Sol.Class 3(ps)(pdf) 3
Sep 25 Mandatory 1 Advisory slides (ps)(pdf)   Assignment 1 -  
5 Sep 29 Monitor slides(ps)(pdf) (ps)(pdf) Ex.Class 4 (ps)(pdf) Sol.Class 4(ps)(pdf) 4
Oct 2 - (ps)(pdf) - - -
6 Oct 6 Deadlock slides (ps)(pdf)
Sharing slides (ps)(pdf)
Platform slides (ps)(pdf)
Testing slides (ps)(pdf)
(ps)(pdf) Ex.Class 5 (ps)(pdf) Sol.Class 5(ps)(pdf) -
Oct 9 Message slides (ps)(pdf) (ps)(pdf) - - -
FALL VACATION
7 Oct 20 Network slides (pdf) - - - -
Oct 23 Internet slides (pdf) - NP Lab 1 - -
8 Oct 29 Process slides (ps)(pdf)
Memory slides (ps)(pdf)
IPC slides (ps)(pdf)
- Ex.Class 6 (ps)(pdf) Sol.Class 6(ps)(pdf) -
Oct 30 - (ps)(pdf) OS Lab 1 OS Lab 1 sol. -
9 Nov 3 Sockset slides (pdf) - Ex.Class 7 (ps)(pdf) Sol.Class 7(ps)(pdf) -
Nov 6 Middleware slides (pdf) - NP Lab 2 - -
10 Nov 10 Distributed systems slides (pdf) - NP Lab 3 - -
Nov 13 Transaction slides (ps)(pdf)
Concurrency Utility slides (ps)(pdf)
- - - -
11 Nov 17 OS architecture slides (ps)(pdf)
Spin lock slides (ps)(pdf)
- - - -
Nov 20 - - - - -
12 Nov 24 Scheduling slides (ps)(pdf)   - - -
Nov 27 - - - - -
13 Dec 1 - - Ex.Class 8 (ps)(pdf) Sol.Class 8(ps)(pdf) -
Dec 4 Summing-up slides (ps)(pdf) (ps)(pdf) - - -

 

Old Exam Problems

This year, 2008, the written exam will be 4 hours. Note that the exams from 2003 and 2004 were two hours only.

To give you some idea of the kinds of problems that you might encounter for the exam a number of old exam papers are presented below. The problems that fall within the requirements this year have been indicated.

Exam Solutions Relevant problems Duration

E07(ps)(pdf) (ps)(pdf) All 4 Hours

E06(ps)(pdf) (ps)(pdf) All 4 Hours

E05(ps)(pdf) (ps)(pdf) All 4 Hours

E04(ps)(pdf) (ps)(pdf) All 2 Hours

E03(ps)(pdf) (ps)(pdf) All 2 Hours

E02(ps)(pdf) (ps)(pdf) 1, 2, 3, 5 4 Hours

Supplementary material

If you would like to deepen your understanding of selected topics, you may consult the following references:

[Goetz] Brian Goetz et al.: Java Concurrency in Practice
Addison-Wesley 2006. ISBN 0-321-34960-1.

A faily new book by a number of well-known concurrency experts on the use of both the classic Java thread notions as well as the concurrency utility classes found in Java 1.5. Assumes basic knowledge of concurrency concepts [as obtained in this course] and extends this with numerous pieces of advice on how apply these notions in the context of Java threads. Most of the material should be relevant for C#/.NET as well.

Recommended after this course for anybody interested in using best-practice concurrency programming techniques.

[Holzmann] Gerard J. Holzmann: The SPIN Model Checker - Primer and reference manual
Addison-Wesley 2004. ISBN 0-321-22862-6.

The standard modern reference on SPIN. Covers both the theory on which SPIN is based as well as some applications. A must for large scale use of SPIN.

[Taubenfeldt] Gadi Taubenfeldt: Synchronization Algorithms and Concurrent Programming
Pearson 2006. ISBN 0-131-97259-6.

A recent collection of synchronization algoritms mostly using low-level variable sharing (with varying atomicity assumptions).

[Reek] Kenneth A Reek: Design Patterns for Semaphores
Article, 2004, 5 pages. Can be found at [CampusNet].

Discusses passing-the-baton versus a technique called I'll-do-it-for-you.

[Armstrong] Joe Armstrong Programming Erlang - Software for a Cocurrent World
The Pragmatic Bookshelf, 2007. ISBN 1-934356-00-X

An comprehensive book on Erlang programming comprising a number of larger examples.

[Gooma] Hassan Gooma: Designing Concurrent Distributed, adn Real-Time Applications with UML
Addison-Wesley, 2000. ISBN 0-201-65793-7.

A huge (785 pages), but serious presentation of a design method with emphasis on concurrency aspects, here cast in a UML setting. Contains a number of worked-through examples although implemenation issues are only touched upon.

[MOS] Andrew S. Tanenbaum: Modern Operating Systems, 2nd edition.
Prentice-Hall, Inc. 2001. ISBN 0-13-031358-0

A standard textbook on operating systems.

[OSDI] Andrew S. Tanenbaum and Albers S. Woodhull: Operating Systems, Design and Implementation, 3rd Ed.
Prentice-Hall, Inc. 2006. ISBN 0-13-142938-8

Same subjects as [MOS] above, but with full details of a smaller Unix-like operating system MINIX.

[OSC] Abrahm Silberschatz, Peter Baer Galvin, and Greg Gagne: Operating System Concepts, 7th Ed.
Wiley, 2005. ISBN 0-471-69466-5.

Another classic OS textbook.

[Nutt] Gary Nutt: Operating Systems, 3rd edition
Addison-Wesley, 2003. ISBN 0-321-18955-8.

A newer OS textbook with more emphasis on current operating systems and hands-on work. Still it covers the main principles of most OS-topics.

[Design] Hans Henrik Løvengreen: Design of Reactive Systems, vers. 1.2.
Note, 14 pages. (ps)(pdf)

A note proposing a simple design method for small embedded systems. The note has formerly been used in this course, but is no longer mandatory.

Hans Henrik Løvengreen, Dec 5, 2008