Hide menu

TDDC47 Real-Time and Concurrent Programming


Course literature

This course combines content from two different areas, concurrent programming and real-time systems. These are normally taught in two different courses, thereby there is no unique course book that covers the whole content. The following combinations of reading instructions can be followed to study the material based on the course books or electronic articles. Every student should choose the combination that suits him/her best.

The reading guidelines at the bottom of this page provides a more detailed recommendation of how to combine the reading material. Note that the columns in the table provide alternatives ( i.e. "or" not "and").

[1] C. Norström, K. Sandström, J. Mäki-Turja, H. Hansson, H. Thane och J. Gustafsson, Robusta realtidssystem.

available to purchase at Tryckakademin in Kårallen. The book gives an acceptable description of scheduling and real-time communication. However an adjustment to the theory of real-time communication appeared in 2007 (after writing this book) and will be presented in the article by Davis et al. This book does not cover concurrent programming.

[2] A. Burns and A. Wellings, Real-time Systems and their programming languages, 3rd ed. (2001) or 4th ed. (2009), Addison Wesley.

This book covers the notion of processes with the exception of deadlocks, and covers scheduling of CPU as a resource. It does not cover real-time communication in CAN and TTP buses. This can be complemented by [4,5,8] according to the reading guidelines below. Note that an earlier version Burn and Wellings exist in Google Books as Preview material.

The table below refers to chapters in the forth edition. Corresponding chapters from earlier editions apply too.

[3] A. Silberschatz, P. Galvin, and G. Gagne, Operating Systems Concepts, John Wiley & Sons, 2010, 8th Edition, or any earlier editions with respect to the chapters on processes and deadlock.

The book gives a good coverage of concurrent programming. However more than half of the book is about operating systems which is not part of this course.


In addition to the course books we use research articles in the course [4]-[6]. Due to copyright restrictions we cannot upload the PDFs, but you can access them through the Linköping University library using your LiU-ID.

The first two articles treat CAN protocols timing behaviour (the later one corrects an error in the first one):

[4] K. W. Tindell, H. Hansson, A. J. Wellings, Analysing real-time communications: controller area network (CAN), Real-Time Systems Symposium, 1994. [link]

[5] R. Davies, A. Burns, R. Bril, and J. Lukkien, Controller Area Network (CAN) Schedulability Analysis: Refuted, Revisited and Revised, Real-Time Systems 35(3) (2007) [link] The next article presents taxonomies of faults errors and failures, and gives an overview of fault management techniques.

[6] A. Avizienis, J.-C. Laprie, B. Randell, and C. Landwehr Basic Concepts and Taxonomy of Dependable and Secure Computing,IEEE Transactions on Dependable and Secure Computing, vol. 1, no. 1, pp.11-33, 2004. [link]

Other literature

The same material on the process part of the course with examples in Java syntax can be found in this eBook:

[7] V. K. Garg, Concurrent and distributed computing in Java, Wiley (2004)

[8] Kopetz, H. Real-Time Systems : Design Principles for Distributed Embedded Applications, Chapter 3, Kluwer Academic Publishers, 1997 electronic resource

Reading guidelines



  Norström [1] (kapitel) Burns [2] (chapter) Silberschatz [3], Articles, etc.
Introduction 1 1  
The notion of process and concurrent programming, scheduling basics 2.1, 2.2, 2.5.1-2.5.3 4.1-4.3, 4.9 Ch. 3 and
Ch. 5.1 to 5.2 in [3]
Inter-process communication 2.5.6 6.1-6.2 Ch. 3 in [3]
Critical section, synchronisation (semaphores and monitors) - 5.1-5.7 Ch. 6 in [3]
Deadlock, Bankers algorithm - - Ch. 7 in [3] or your lecture notes
Cyclic scheduling, rate monotonic (RM), earliest deadline first (EDF), deadline monotonic (DM), response time analysis, protocol for managing shared resources, execution time analysis 3.1-3.6, 3.11.1-3.11.4, 2.5.9 11.1-11.9, 11.11.1, 12.1, 13.1  
Real-time communication 5, 7, 8 - [4],
[8] Pages 171-175
Response time analysis for CAN - - [5]
Management of faults and errors     [6] and lecture notes




Page responsible: Mikael Asplund
Last updated: 2011-08-18