Có ít nhất 3 trạng thái tiến trình trong môi trường đa lập trình. Các trạng thái đó là: sẵn sàng, chạy, và chờ/chặn. Điều này có nghĩa là, ở bất kỳ thời gian nhất định nào, một tiến trình sẽ có một trong ba trạng thái này. Con số thực tế của các trạng thái có thể khác nhau tùy theo từng hệ điều hành. Nếu ai đó biết ý nghĩa của 3 trạng thái đó, lý do cho mọi chuyển đổi trạng thái, và phương pháp thực tế với một sự chuyển đổi diễn ra, sau đó vai trò của các trạng thái mới trong một hệ điều hành nhất định thì dễ dàng để hiểu. Nghĩ về con người. Anh ta có thể là một đứa bé, tức là, trạng thái thơ ấu, thanh niên, người lớn, hay một người già. Sự khác nhau giữa một tiến trình với một con người là, một tiến trình có thể chuyển đổi giữa các trạng thái nhiều lần, trong khi một con người chỉ chuyển đổi theo một hướng và không có quay trở lại. Khi một tiến trình được tạo ra, trạng thái của nó là sẵn sàng. Trong trạng thái này, tiến trình sẵn sàng để sử dụng bộ xử lý( hoặc một trong những bộ xử lý) để thực thi các thao tác của nó. Ở trạng thái đang chạy, tiến trình thực ra là thực thi các lệnh của nó. Điều này có nghĩa, bộ xử lý được phân công cho tiến trình này để thi thực thi các lệnh của nó. Trong trạng thái chờ/chặn, tiến trình hoặc bị chặn cho các thao tác I/O để được hoàn tất bởi bộ xử lý I/O hoặc nó đang chờ một số sự kiện khác sảy ra trước khi việc thực thi các lệnh của nó thì không thể. Sự chuyển tiếp từ một trạng thái sang trạng thái khác xảy ra khi điều kiện nhất định được thỏa mãn. Ví dụ, khi bộ xử lý rảnh rỗi, một trong các tiến trình( bất cứ tiến trình nào) từ trạng thái sẵn sàng sẽ được chọn để thi hành và trạng thái của nó sẽ được đổi từ sẵn sàng sang chạy. Điều này được gọi là sự chuyển tiếp trạng thái và nó xảy ra khi bộ xử lý trở thành rảnh rỗi.
Trong môi trường đa lập trình, có thể có nhiều hơn một tiến trình trong trạng thái sẵn sàng. Các tiến trình này thường đặt trong một hàng đợi, được gọi là hàng đợi sẵn sàng.
Ở hệ thống với một bộ xử lý đa dụng, tức là, một hệ thống với một CPU, chỉ có một tiến trình có thể được ở trong trạng thái chạy. Trong một số trường hợp, ví dụ, khi không có tiến trình trong hệ thống, có thể không có bất kỳ tiến trình nào ở trong trạng thái chạy. Kỹ thuật đa lập trình cũng được dùng trong các hệ thống với nhiều hơn một bộ xử lý đa dụng. Đối với loại hệ thống này, nếu có n bộ xử lý có thể có, tối đa, n tiến trình chạy cùng mọt lúc. Một tiến trình có thể rút ra từ trạng thái đang chạy và đặt trở lại trạng thái sẵn sàng vì nhiều lý do. Có thể là khi tiến trình đã được sử dụng bộ xử lý cho một thời gian và kết quả là, các tiến trình sẵn sàng khác đã phải chờ một lượng lớn thời gian cho cơ hội sử dụng bộ xử lý.
Một số nhà nghiên cứu gọi sơ đồ chuyển tiếp trạng thái trong hình 3.2 là một mô hình 5 trạng thái, trong khi chúng ta gọi nó là mô hình 3 trạng thái. Họ đếm trạng thái trược khi sinh tiến trình và trạng thái chấm dứt. Chúng ta không thích đếm các trạng thái này vì chúng không phải là bộ phận của khoảng thời gian sống của tiến trình. Tương tự, trạng thái trước khi sinh ra loài người và trạng thái sau khi chúng ta chết không phải là một phần của cuộc sống.
Trong khi chạy, một tiến trình có thể cần một dich vụ được đưa ra bởi bộ xử lý đa dụng, nó có thể yêu cầu một thiết bị hiện không có sẵn. Nó có thể phải chờ đối với một số trường hợp phát sinh.Trong trường hợp này, nó sẽ được rút ra khỏi trạng thái chạy và đổi thành chờ/bị chặn. Liên kết đang kết nối trạng thái chạy với trạng thái chờ/bị chặn là kết nối một chiều. Do đó, không thể có tiến trình đi từ trạng thái chờ/bị chặn sang trạng thái chạy. Nếu mục đích của tiến trình là để chuyển tới trạng thái chạy từ trạng thái chờ/bị chặn thì sau đó nó phải chuyển tới trạng thái sẵn sàng và chờ ở đó cho đến khi đến lượt mình để sử dụng bộ xử lý. Hình 3.2 mô tả sơ đồ chuyển tiếp trạng thái tiến trình.