Multitasking (đa nhiệm) là trường hợp đặc biệt của đa chương (Multiprogramming) khi mà thời gian sử dụng CPU của các tác vụ được chia ra làm các khoảng rất nhỏ và do đó mà việc chuyển đổi qua lại giữa các tác vụ là rất nhanh. Điều này khiến cho người dùng có cảm giác là hệ thống đang chạy nhiều chương trình cùng một lúc.
Để có thể đáp ứng được “cảm giác” chạy nhiều chương trình cùng một lúc, các thuật toán điều phối cần phải chuyển đổi qua lại giữa các tác vụ một cách nhanh chóng. Hay nói cách khác, những thuật toán này cần phải hỗ trợ cơ chế preemptive, ví dụ như:
- Round-robin
- Priority
- Multilevel queue
Tuy nhiên, những thuật toán non-preemptive chẳng hạn như FCFS hay SJF vẫn có thể được sử dụng trong môi trường đa nhiệm nhưng chỉ dùng cho các thiết bị nhúng mà ở đó các tác vụ có cùng độ ưu tiên và có nhu cầu sử dụng tài nguyên giống nhau.