Read up on preemptive vs. cooperative multitasking and real-time operating systems. Or, if you don't have the time, I'll summarize it for you: every modern mainstream OS uses preemptive multitasking - this means it can interrupt a process/program/app at any time, without needing its consent. Cooperative multitasking, the alternative approach, is when a program <b>tells</b> the OS "I have some free time, feel free to do something else". It never really took off, except in a few "real-time operating systems", used in flight control modules and other tasks when having strict control over timing is really necessary. You can imagine why - all it takes is one badly-coded program that never yields its time to freeze the whole OS.