Figure 1: (a) Stack before initialization; (b) stack after initialization; (c) starting a new task a with stack size 5000; (d) starting a new task b with stack size 3000; (e) a has finished, leaving b between two free blocks; (f) a is started again with a smaller stack size.
Copyright © 1995, Dr. Dobb's Journal