5.3 Sharing Resources in Multitasking Systems
5.3.1 Problems with Sharing Resources
Up to this point, our example systems have consisted of separate, independent tasks; these perform their functions without any interaction with other tasks. In reality, this situation is rarely met in practical systems; tasks almost always influence each other in some way or means. Let's look at the most common reason for this: task intercommunication, as shown in Figure 5.18:
Assume that the design requirement of this pressure control system calls for the control and alarming tasks to exchange and share information. To support such operations, we now include a data store, one that can be written to and read from. Stores like this are frequently formed as records (structs) and/or data arrays, being located in RAM.
Sharing resources in a multitasking system is not, in itself, a problem. What...