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] Tính throughput với SJF không ưu tiên

    Cho N tiến trình với arrival và burst, lập lịch SJF không ưu tiên ngắt (non-preemptive) (khi CPU rảnh chọn tiến trình đã đến có burst nhỏ nhất; nếu bằng chọn ID nhỏ hơn; nếu không có tiến trình nào đã đến thì idle tới arrival kế tiếp).

    Sau khi mô phỏng xong, tính throughput = số tiến trình hoàn thành / tổng thời gian (makespan = thời điểm tiến trình cuối hoàn thành; thời gian bắt đầu tính từ 0).

    In ra throughput với 4 chữ số thập phân.

    Ví dụ: arrival [0,0,0], burst [4,2,1]. SJF: P3(1)->P2(2)->P1(4). Makespan=7. Throughput=3/7≈0.4286.

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

      Dòng đầu N. N dòng tiếp: arrival burst của tiến trình ID i.

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

      1 ≤ N ≤ 1000; 0 ≤ arrival ≤ 100000; 1 ≤ burst ≤ 10000.

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

      Một số thực: throughput, 4 chữ số thập phân.

    Ví dụ:

    Đầu vào:

    3
    0 4 0 2 0 1
    

    Đầu ra:

    0.4286

    Giải thích:

    SJF tại t=0 chọn burst nhỏ nhất: P3(1)->t=1, P2(2)->t=3, P1(4)->t=7. Makespan=7. Throughput=3/7=0.4286.

    Đang tải editor...