CS header


Computer Science Home
Gabriela Ochoa Home
Textbooks
Further Reading
Module Plan
Suggested Readings
A Glossary (Andrews)
Demo Programs (Magee & Kramer)
G52APR
Previous Edition
The Java Tutorials
School of Computer Science
University of Nottingham
Jubilee Campus
Wollaton Road
Nottingham NG8 1BB
UK

Room: B74
T:
+44(0) 115 846 6569
F:+44(0) 115 9514254
gxo[at]cs.nott.ac.uk

Heading





































G52CON Concepts of Concurrency (Semester 2)

This module introduces the basic principles of concurrent programming and their use in designing computer programs. It covers concurrency primitives for shared memory and distributed implementations of concurrency, the correctness of concurrent algorithms, and concurrent programming in Java.

Instructor 

  • Gabriela Ochoa, email:gxo[at]cs.nott.ac.uk

Mentor

  • Brian Logan, email:bsl[at]cs.nott.ac.uk

Lectures

  • Monday, 9:00 AM, JC-EXCHGE-C.LT2
  • Friday, 11:00 AM, JC-EXCHGE-C.LT2

Assessment

  • Exam (100%), 2 hr written examinationandrews_book

Textbooks


Further Reading

Books

Articles

Reports of concurrency problems in spacecraft

Slides

Module Plan 

(under construction)

Date
Wk
Monday
Friday
24/01
1
Introduction to Concurrency and Module Overview.  Slides: 1 per p.6 per p.
Demos: ParticleAplet, Sorting Applets, Ornamental Garden Problem
Operative Systems Processes
Slides: 1 per p., 6 per p.
31/01
2
Processes and Threads in Java
Slides: 1 per p., 6 per p.
Demos: ParticleAplet (Java source)
Inter-process Communication and Synchronisation
Slides: 1 per p., 6 per p.
Demos: Ornamental Garden Problem
07/02
3
Critical Sections and Atomic Actions
Slides: 1 per p., 6 per p.
Mutual Exclusion Algorithms I: Test-and-Set: 1 per p., 6 per p.
14/02
4
Algorithms for Mutual Exclusion II
Slides: 1 per p., 6 per p.
Semaphores I
Slides: 1 per p., 6 per pp.
Examples: Count.java, CountSem.java
21/02
5
Semaphores II
Slides: 1 per p., 6 per p.
Monitors
Slides: 1 per p., 6 per p.
28/02
6
Monitors in Java
Slides: 1 per p., 6 per p.
Example: Producer & Consumers (pcmonitor.java),
Syncronization in Java I
Slides: 1 per p., 6 per p.
Examples: Ornamental Garden Problem.
ParticleAplet (Java source)
07/03
7
Synchronization in Java II
Slides: 1 per p., 6 per p.
Examples: Single-line bridge
Readers & Writers
RW Applet by Magee & Kramer (2006)
Java Implementation by Ben-Ari (2006) (rwmonitor.java)
Syncronisation in Java III
Slides: 1 per p., 6 per p.
Examples: Readers & Writers
Dining Philosophers
14/03
8
Message Passing
Slides: 1 per p., 6 per p.
Demos: Asynchronous message passing, Synchronous message passing
Remote Invocation
Slides: 1 per p., 6 per p.
Demo: Rendezvous
21/03
9
Proving Correctness
Slides: 1 per p., 6 per p.
Proof of mutual exlcusion: pdf (Ben-Ari, 82)
Slides proving Peterson's algorithm
Example: Count.java
Model Checking
Slides: 1 per p.
28/03
10
Revision
Slides: 1 per p.
Office hour CS, Room B37 and
Room B74
[Top]

Suggested Readings and Exercises

(under construction)

Date
Wk
Monday
Friday
24/01
1
Introduction
Andrews (2000), chapter 1, sections 1.1-1.2. Ben-Ari (1982, 2006), chapter 1
Operative Systems Processes
Tanenbaum (2008), chapter 2, sections 2.1 and 2.4
Andrews (2000), chapter 1, section 1.2
31/01
2
Processes and Threads in Java 
Bishop (2000), chapter 13
Lea (2000), chapter 1
Java Tutorial: Processes and Threads
Inter-process Communication and Synchronization
Andrews (2000), chapter 2, section 2.1, chapter 3, section 3.1
Tanenbaum (2008), chapter 2, sections 2.2 and 2.3
07/02
3
Atomic Actions
Andrews (2000), chapter 2, sections 2.1 and 2.4, chapter 3, section 3.2
Ben-Ari (1982, 2006), chapter 2
Mutual Exclusion Algorithms I
Andrews (2000), chapter 3, sections 3.1–3.2
Ben-Ari (1982), chapter 2
14/02
4
Mutual Exclusion Algorithms II
Ben-Ari(1982, 2006), chapter 3;
Burns & Davies (1993), chapter 3, section 3.4.
Exercise 1: Interference
Solution to Ex. 1
Semaphores I
Andrews (2000), chapter 4, sections 4.1–4.2;
Ben-Ari (1982), chapter 4
Ben-Ari (2006), chapter 6
Burns & Davies (1993), chapter 6.

21/02
5
Semaphores II
Andrews (2000), chapter 4, sections 4.1–4.2
Ben-Ari (1982), chapter 4
Ben-Ari (2006), chapter 6
Burns & Davies (1993), chapter 6.
Exercise 2: Semaphores
Solution to Ex. 2
Monitors I
Andrews (2000), chapter 5
Ben-Ari (1982), chapter 5;
Ben-Ari (2006), chapter 7;
Burns & Davies (1993), chapter 7, sections 7.4-7.9.
Exercise 3: Monitors
Solution to Ex.3
28/02
6
Monitors in Java
Ben-Ari (2006), chapter 7;
Andrews (2000), chapter 5
Exercise 4: Monitors in Java
Solution to Ex.4
Synchronisation in Java I
Magee & Kramer (2006), chapters 6 and 7;  Ben-Ari (2006), chapter  7
Java Tutorial: Synchronization
07/03
7
Synchronisation in Java II
Magee & Kramer (2006), chapters 6 and 7;  Ben-Ari (2006), chapter  7

Synchronisation in Java III
Magee & Kramer (2006), chapter 6
Ben-Ari (2006), chapter 6
Exercise 5: Dining Philosophers Problem

14/03
8
Message Passing
Remote Invocation
21/03
9
Proving Correctness
Andrews (2000), chapter 2, sections 2.6-2.8
Ben-Ari (1982), chapter 3
Ben-Ari (2006), chapter 4
Exercise 6: Proving Correctness
Solution to Ex. 6
Model Checking
Model Checking. Huth & Ryan (2000), chapter 3
Exercise 7: CTL
28/03
10
Revision
Office hour
[Top]

Last Update: 26 March 2011, by Gabriela Ochoa