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] Kiểm tra yêu cầu cấp phát hợp lệ

    Cài đặt bước kiểm tra một yêu cầu (Request) của tiến trình trong thuật toán Banker.

    Cho m loại tài nguyên: vector Need (nhu cầu còn lại của tiến trình), Available (đang rảnh) và Request (đang yêu cầu).

    Quy tắc (theo thứ tự):

    1. Nếu tồn tại j mà Request[j] > Need[j] → tiến trình đòi quá nhu cầu khai báo → in ERROR.
    2. Ngược lại, nếu tồn tại j mà Request[j] > Available[j] → chưa đủ tài nguyên, phải chờ → in WAIT.
    3. Ngược lại → có thể thử cấp → in OK.

    Thuật toán: kiểm tra điều kiện 1 trước, rồi điều kiện 2, rồi mặc định.

    Ví dụ: m=3, Need 7 4 3, Available 3 3 2, Request 1 0 2. Request ≤ Need và ≤ Available → in OK.

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

      Dòng 1: m. Dòng 2: m số Need. Dòng 3: m số Available. Dòng 4: m số Request.

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

      1 ≤ m ≤ 100; 0 ≤ giá trị ≤ 1000000.

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

      Một chuỗi: ERROR, WAIT, hoặc OK.

    Ví dụ:

    Đầu vào:

    3
    7 4 3
    3 3 2
    1 0 2
    

    Đầu ra:

    OK

    Giải thích:

    Request=[1,0,2]. So Need=[7,4,3]: 1≤7,0≤4,2≤3 → không ERROR. So Available=[3,3,2]: 1≤3,0≤3,2≤2 → không WAIT. → OK.

    Đang tải editor...