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] Synchronization - Reader-Writer lock

    Khoá đọc–ghi (reader–writer lock)

    Khoá đọc–ghi cho phép nhiều reader đồng thời nhưng writer độc quyền. Quy tắc (không ưu tiên writer):

    • RL (read-lock): cho phép nếu không có writer; khi đó readers += 1. Nếu có writer → thất bại (đếm fail).
    • RU (read-unlock): readers -= 1.
    • WL (write-lock): cho phép nếu không có reader và không có writer; khi đó writer = True. Ngược lại thất bại (đếm fail).
    • WU (write-unlock): writer = False.

    In ba số sau khi xử lý hết: readers hiện tại, 1 nếu writer đang giữ (ngược lại 0), và fail.

    Ví dụ

    RL(readers=1), WL(thất bại vì có reader, fail=1), RU(readers=0), WL(thành công) → 0 1 1.

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

      Dòng đầu: n. n dòng: một trong RL,RU,WL,WU.

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

      1 ≤ n ≤ 2000. Lịch trình hợp lệ (không RU khi readers=0, không WU khi không có writer).

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

      Ba số nguyên cách nhau dấu cách: readers, writer(0/1), fail.

    Ví dụ:

    Đầu vào:

    4
    RL
    WL
    RU
    WL
    

    Đầu ra:

    0 1 1

    Giải thích:

    RL→readers=1; WL thất bại (có reader)→fail=1; RU→readers=0; WL thành công → '0 1 1'.

    Đang tải editor...