ABSTRACT
This chapter lays out the theoretical foundations of concurrent programming, starting from the all-important concept of process, or task. Then, it introduces the fundamental tools used to represent the state of a process and express how it evolves over time, that is, the task control block and the task state diagram.
The second part of the chapter presents the main concepts and techniques of task-based, real-time scheduling on single processor systems. The discussion of scheduling algorithms suitable for multicore systems is left to Part V.
