This paper by veteran real-time instructor David Kalinsky provides an introduction to the subject of task scheduling, from the perspective of novice embedded systems software developers. It begins with a survey of simple “home-made” task schedulers. Then it introduces the concept of preemption and priority-based preemptive schedulers, as used in off-the-shelf real-time operating systems. It ends with a glimpse into deadline scheduling for hard real-time systems.
Hmm… interesting piece if a little basic. I also disagree with some of his statements. We cranked out a basic RTOS complete with message queues, semaphores as well as a bunch of demo tasks in a couple of weekends for our RTOS course… and it was all in MC68000 assembly langauge (lab partners grumble grumble… should’ve used C).
Also instead of disabling interrupts another option is to use basic ring buffers or FIFOs whatever you want to call them to communicate from the ISR to the tasks… ie: use message passing. Also fairly basic.
Anyway, I guess it’s sufficient to wet your whistle but he doesn’t have much confidence in programmers abilities to crank out code.