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] Thời gian chờ trung bình FCFS

    Mô phỏng thuật toán lập lịch FCFS (First-Come, First-Served) cho CPU và tính thời gian chờ trung bình.

    Có n tiến trình, mỗi tiến trình có thời điểm đến arrival và thời gian phục vụ burst. CPU xử lý theo đúng thứ tự đến; nếu hai tiến trình đến cùng lúc thì tiến trình có chỉ số (ID) nhỏ hơn được phục vụ trước.

    Thuật toán từng bước:

    1. Sắp xếp các tiến trình theo (arrival, ID) tăng dần.
    2. Duy trì biến time = thời điểm hiện tại, ban đầu time = 0.
    3. Lần lượt mỗi tiến trình: nếu time < arrival thì CPU rảnh, nhảy time = arrival. Thời gian chờ của tiến trình là time - arrival. Sau đó time += burst.
    4. Thời gian chờ trung bình = tổng thời gian chờ / n, làm tròn 2 chữ số.

    Ví dụ: 3 tiến trình (arrival, burst) = (0,5), (1,3), (2,8). Chờ lần lượt = 0, 4, 6 → tổng 10 → TB = 3.33.

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

      Dòng đầu: số nguyên n. n dòng tiếp theo: mỗi dòng hai số nguyên arrival burst (ID tiến trình đánh số theo thứ tự nhập, từ 0).

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

      1 ≤ n ≤ 1000; 0 ≤ arrival ≤ 10000; 1 ≤ burst ≤ 10000.

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

      Một số thực: thời gian chờ trung bình, làm tròn 2 chữ số thập phân (định dạng {:.2f}).

    Ví dụ:

    Đầu vào:

    3
    0 5
    1 3
    2 8
    

    Đầu ra:

    3.33

    Giải thích:

    Sắp xếp theo arrival: P0(0,5), P1(1,3), P2(2,8). time=0→P0 chờ 0, time=5. P1 chờ 5-1=4, time=8. P2 chờ 8-2=6, time=16. Tổng chờ=10, TB=10/3=3.33.

    Đang tải editor...