![]() |
![]() |
|
02152 Concurrent Systems Fall 2008 |
Course Material |
Home | Plan | 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.
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.
|
[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.]
|
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) | - | - | - |
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
|
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 |