Mô phỏng một tiến trình xử lý các sự kiện theo thứ tự. Trạng thái ban đầu: RUNNING, mask rỗng, pending rỗng. Quy tắc (dùng hành động mặc định, KHÔNG handler):
BLOCK n / UNBLOCK n: thêm/bỏ n khỏi mask. SIGKILL(9), SIGSTOP(19) không thể chặn (BLOCK 9/19 bị bỏ qua).UNBLOCK n: nếu n đang pending, giao ngay theo thứ tự (xem xử lý SIG bên dưới) rồi xóa khỏi pending.SIG n: nếu tiến trình đã TERMINATED → bỏ qua. Nếu n bị chặn (và không phải 9/19) → đưa vào pending (không trùng). Ngược lại giao ngay:
Term/Core → TERMINATED.Stop → nếu RUNNING thì STOPPED.Cont → nếu STOPPED thì RUNNING.Ign → không đổi.In trạng thái cuối, rồi tập pending còn lại (tăng dần, cách nhau dấu cách; nếu rỗng in dòng trống).
| Số hiệu | Tên | Hành động mặc định |
|---|---|---|
| 1 | SIGHUP | Term |
| 2 | SIGINT | Term |
| 3 | SIGQUIT | Core |
| 9 | SIGKILL | Term |
| 10 | SIGUSR1 | Term |
| 11 | SIGSEGV | Core |
| 12 | SIGUSR2 | Term |
| 13 | SIGPIPE | Term |
| 14 | SIGALRM | Term |
| 15 | SIGTERM | Term |
| 17 | SIGCHLD | Ign |
| 18 | SIGCONT | Cont |
| 19 | SIGSTOP | Stop |
| 20 | SIGTSTP | Stop |
Xem test mẫu.
Nhiều dòng sự kiện BLOCK n / UNBLOCK n / SIG n.
Số sự kiện ≤ 2000.
Dòng 1: trạng thái cuối. Dòng 2: pending tăng dần (hoặc trống).
Ví dụ:
Đầu vào:
BLOCK 15
SIG 15
SIG 2
UNBLOCK 15
Đầu ra:
TERMINATED
Giải thích:
Đang tải editor...