NCS: Multi-Threaded Control Systems
Prev: Spread | Course Home | Next: Alice Follow |
Early control systems used carefully synchronized control loops to insure that control processes ran at a fixed clock cycle and with predictable timing. Modern multi-threaded control environments use much looser timing models and provide non-deterministic execution, but provide advantages in terms of programming flexibility and processor utilization. In this lecture we focus on the Pthreads programming environment, which provides a standardized API for managing process threads and mutexes (to resolve data access conflicts).
Lecture Materials
Reading
POSIX Threads Programming, Lawrence Livermore National Laboratory. 2006. This tutorial provides an introduction to Pthreads, the standard implementation of threads under linux. It's a pretty quick read, with examples of the code and pretty good descriptions of the basic pthreads functionality.
Monitors: An Operating System Structuring Concept, C. A. R. Hoare. Communciations of the ACM, 17(10):549--557, 1974. This paper describes the concept of a "monitor", which is basically a function that uses mutexes to access a shared resourse. This is one of the early papers on concurrent computing and is cited as one of the design patterns for using threads and mutexes.
Cooperating Sequential Processes, E. W. Dijkstra. In Structured Programming, Academic Press, 1972. This is one of the most widely cited papers in concurrent programming and is often labelled as the paper that started the field. I haven't been able to locate an online copy yet (and haven't read it either).