NCS: Multi-Threaded Control Systems

From Murray Wiki
Jump to navigationJump to search
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).

Additional Resources