Vòng đời một tiến trình:
- New: đang được tạo, chưa nạp vào ready queue.
- Ready: sẵn sàng chạy, chỉ chờ scheduler cấp CPU.
- Running: đang thực thi trên CPU (chỉ 1 tiến trình mỗi lõi tại một thời điểm).
- Waiting (Blocked): đang chờ một sự kiện (I/O xong, tín hiệu, lock) — không thể chạy dù có CPU.
- Terminated: đã kết thúc, OS đang thu hồi tài nguyên.
Các chuyển trạng thái chính: New→Ready (admit), Ready→Running (dispatch), Running→Ready (bị preempt hoặc hết time slice), Running→Waiting (chờ I/O), Waiting→Ready (I/O xong), Running→Terminated (exit).
Điểm cần nhớ: chỉ Running mới thực sự dùng CPU; scheduler chọn tiến trình từ hàng Ready. Khi chờ I/O, tiến trình phải rời CPU (sang Waiting) để tiến trình khác chạy.