Multitasking operating systems allow more than one program to run at a time using one of two methods: preemptive multitasking, where the OS allocates time to each application, or cooperative multitasking, where programs voluntarily relinquish control back to the OS. Preemptive multitasking is used by modern OSes while cooperative multitasking was used by older systems like Windows 3.x and Mac OS 9.