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] Khi nào inode được giải phóng

    Khi nào inode được giải phóng

    Một file có c hard link ban đầu và đang được mở bởi o tiến trình. Inode (và dữ liệu) chỉ được giải phóng khi link count = 0 VÀ không còn tiến trình nào mở.

    Cho c, o và một dãy thao tác (unlink giảm link count 1, close giảm số tiến trình mở 1), hãy in chỉ số (1-based) của thao tác đầu tiên khiến inode được giải phóng; nếu không bao giờ, in -1.

    Ví dụ

    • c=1, o=1, ops=unlink close → sau unlink: count=0 nhưng vẫn mở; sau close: giải phóng → 2
    • Định dạng đầu vào:

      Dòng 1: c o. Dòng 2: số thao tác k. Dòng 3: k từ khoá (unlink/close).

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

      0 ≤ c,o ≤ 1000. 0 ≤ k ≤ 2000. Số thao tác hợp lệ (không giảm dưới 0).

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

      Một dòng: chỉ số thao tác giải phóng inode, hoặc -1.

    Ví dụ:

    Đầu vào:

    1 1
    2
    unlink close
    

    Đầu ra:

    2

    Giải thích:

    Sau unlink count=0 nhưng còn mở; sau close (thao tác 2) mới giải phóng.

    Đang tải editor...