5.6 Review
In this chapter, you have seen how the nature of software design changes when we use multitasking techniques. If you have taken these lessons to heart, you will now:
- Have a good grasp of the basics of task-based designs
- Understand the rationale for structuring software as a set of cooperating tasks – multitasking
- Appreciate the advantages gained by using a multitasking design approach
- Know the format, content, and use of the tasking diagram
- Understand that enabling mechanisms are needed to implement multitasking designs
- Understand the role of interrupts and RTOSs as enabling mechanisms
- Appreciate the role of scheduling in the operation of an RTOS
- Understand the basics of first-in-first-out, round-robin, and priority preemptive scheduling policies
- Know why, in practical multitasking systems, resource sharing always takes place
- Realize what problems arise from using shared resources: contention, performance, data corruption...