Multitasking
Handling more than one task at a time.
Multicore
A given processor with 2 or more cores that can operate together or independently
Multiprocessing
A system that uses multiple processors to handle the execution of a multithreaded application
Multithreading
Multiple tasks operate in a single process. Threads are part of the same parent process and can operate in parallel. Most useful for applications that need to do a lot of context switching.
Multiprogramming
pseudo-simultaneous execution of two tasks on a single processor coordinated by the operating system. It batches execution of tasks in serial.