Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Hệ điều hành Unix] Mô phỏng kill: trạng thái tiến trình

    Mô phỏng kill: trạng thái tiến trình

    Một tiến trình ban đầu ở trạng thái RUNNING. Bạn nhận một dãy tín hiệu gửi tới nó (theo số hiệu) và phải mô phỏng trạng thái theo quy tắc đơn giản (giả sử tiến trình KHÔNG cài handler, dùng hành động mặc định):

    • Tín hiệu Term/Core (vd 2,9,15,11,...): tiến trình kết thúc → TERMINATED. Sau khi đã TERMINATED, mọi tín hiệu tiếp theo bị bỏ qua.
    • Tín hiệu Stop (19,20): nếu đang RUNNING → STOPPED.
    • Tín hiệu Cont (18): nếu đang STOPPED → RUNNING; nếu đang RUNNING thì giữ nguyên.
    • Tín hiệu Ign (17): bỏ qua, không đổi trạng thái.

    In trạng thái cuối cù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

    Ví dụ

    Vào: 20 18 → Ra: RUNNING (bị dừng rồi tiếp tục).

    • Định dạng đầu vào:

      Một dòng gồm các số hiệu tín hiệu cách nhau bởi dấu cách (có thể rỗng).

    • Ràng buộc đầu vào:

      Số tín hiệu ≤ 50. Mỗi số trong bảng tín hiệu.

    • Định dạng đầu ra:

      Trạng thái cuối: RUNNING, STOPPED hoặc TERMINATED.

    Ví dụ:

    Đầu vào:

    20 18
    

    Đầu ra:

    RUNNING

    Giải thích:

    SIGTSTP (Stop) → STOPPED, rồi SIGCONT (Cont) → RUNNING.

    Đang tải editor...