Hide menu

TDDB68 Concurrent programming and Operating Systems

Course information

Course Literature VT 2017


The main textbook for this course is:
  • Silberschatz, Galvin and Gagne: Operating System Concepts, 9th ed., John Wiley & Sons, 2014. ISBN 978-11180-9375-7.

    Earlier editions of the book, such as the 8th edition of 2010 (ISBN 978-0-470-23399-3) or 7th edition of 2005 (ISBN 0-471-69466-5), are still useful to a very large degree. Some alternative textbooks are listed below.

    Note that there is also a variant of the book (by the same authors) called Operating Systems Concepts in Java. That book contains basically the same presentation of the theory, but most code examples (especially on synchronization) are in Java. In contrast, our lecture examples and labs are based on C (for good reasons), and Java-specific issues are also covered in the ordinary (non-Java) variant of the book. If you can easily abstract from the programming language used, there is no major problem with the Java variant of the book. However, as Java is less suitable as an OS implementation language, we do not recommend the Java variant. Reading directions are based on the non-Java version.

    Errata for the 7th edition, first printing compiled by C. Kessler, July 2005

Other useful books are:
  • Deitel, Deitel and Choffnes: Operating Systems, 3rd ed., Prentice Hall, 2004 (or a newer edition).
  • Stallings: Operating Systems, Internals and Design Principles 5th ed., Prentice Hall, 2004 (or a newer edition).
  • Tanenbaum: Modern Operating Systems, 3rd edition, Pearson / Prentice Hall, 2009.
  • Silberschatz, Galvin and Gagne: Applied Operating Systems Concepts, John Wiley & Sons, 2003 (or a newer editon)
  • Nutt: Operating Systems, 3rd ed., Addison-Wesley, 2003
  • Bacon and Harris: Operating Systems - Concurrent and Distributed Software Design, Addison-Wesley, 2003
  • Bic and Shaw: Operating Systems Principles, Prentice Hall, 2003

Lab documents

Lab assignments

see the lab page


  • Besides the code itself, the most important piece of documentation is the original pintos documentation [stanford.edu]. Or if you prefer it, as pdf. - The projects refered to in this document are not the same as our laboration assignments!

Programming in C

  • B. Kernighan, D. Ritchie: The C Programming Language, 2nd ed.. Prentice-Hall, 1988, or a later edition.
  • H.M. Deitel, P.J. Deitel: C How To Program. Prentice-Hall, 1992, or a later edition (more recently: 5th edition, Pearson, 2007).
  • or any newer book on C.


We use the GDB debugger for debugging in the Pintos labs. A general introduction to debugging is

DDD debugger (with Lab 0 only)

Further reading

Some recent articles on operating systems and concurrent programming

  • Peter J. Denning: The Locality Principle. Communications of the ACM 48(7):19-24, July 2005.
    Short review of OS research on virtual memory, working sets, and locality optimizations.
  • B. Kuperman et al.: Detection and prevention of stack buffer overflow attacks. Communications of the ACM 48(11):19-24, Nov 2005.
  • Edward A. Lee: The Problem with Threads. IEEE Computer May 2006, pp. 33-42.
  • A. Adl-Tabatabai, C. Kozyrakis, B. Saha: Unlocking Concurrency: Multicore programming with transactional memory. ACM Queue Dec/Jan 2006/2007.
  • M. Price: The Paradox of Security in Virtual Environments. IEEE Computer Nov 2008, pp. 22-28.
    Short review of virtualization techniques and their positive and negative implications on system security.

Some follow-up courses at IDA

Page responsible: Mikael Asplund
Last updated: 2016-12-16