I was thinking that effective real life multitasking is no different from one of the not-so-simple, or , sophisticated process scheduling algorithms that we find in operating systems.
- Have a list of todo items for each task.
- Group the items in each task according to the non-preemption affinity (i.e. those set of items that have to be done together and cannot be pre-empted in between)
- Now, have this grouped items in a set.
- Juggle around the set as wished. 🙂