Trong một hệ thống thời gian thực một tác vụ có thể rơi vào một trong các trạng thái sau đây (xem hình 10.6):
- Sẵn sàng để chạy.
- Chạy.- Bị chặn.
- Chạy.- Bị chặn.
Khi một tác vụ lúc đầu được tạo ra, nó thường ở trạng thái sẵn sàng để chạy và được nhập vào trong danh sách tác vụ. Từ trạng thái này, tùy thuộc vào các thuật toán lập lịch trình, nhiệm vụ có thể trở thànhmột nhiệm vụ đang chạy. Theo các điều kiện của lịch ưu tiên, nhiệm vụ sẽ chạy nếu nó là nhiệm vụ ưu tiên cao nhất trong hệ thống và không phải đợi một nguồn tài nguyên. Một nhiệm vụ chạy trở thành một nhiệm vụ chặn nếu nó cần một nguồn tài nguyên chưa có sẵn. Ví dụ, một tác vụ có thể cần dữ liệu từ một bộ chuyển đổi A/D (bộ chuyển đổi từ tương tự sang số) và bị chặn cho đến khi bộ chuyển đổi A/D hoàn tất. Một khi các nguồn tài nguyên có thể được truy suất, các nhiệm vụ bị chặn trở thành một nhiệm vụ chạy nếu nó là nhiệm vụ ưu tiên cao nhất trong hệ thống, nếu không nó chuyển sang trạng thái sẵn sàng.Chỉ một nhiệm vụ đang chạy có thể bị chặn. Một nhiệm vụ sẵn sàng chạy không thể bị chặn.
Khi một nhiệm vụ chuyển từ trạng thái này sang trạng thái khác, bộ vi xử lý lưu bối cảnh của nhiệm vụ đang chạy vào trong bộ nhớ, nạp bối cảnh nhiệm vụ mới từ bộ nhớ, và sau đó thực thi lệnh mới như yêu cầu.
Khi một nhiệm vụ chuyển từ trạng thái này sang trạng thái khác, bộ vi xử lý lưu bối cảnh của nhiệm vụ đang chạy vào trong bộ nhớ, nạp bối cảnh nhiệm vụ mới từ bộ nhớ, và sau đó thực thi lệnh mới như yêu cầu.
