Lập lịch trình vòng tròn: cho phép liệt kê một quy trình nhiều lần?


9

Trong một lịch trình vòng tròn, thêm một quy trình nhiều lần vào danh sách quy trình là một cách rẻ tiền để ưu tiên cao hơn.

Tôi tự hỏi làm thế nào thực tế một cách tiếp cận này có thể được. Nó có lợi ích gì so với các kỹ thuật khác như cho quy trình một lát cắt thời gian dài hơn (lợi ích: thời gian chuyển đổi ít hơn) hoặc duy trì một danh sách riêng các quy trình ưu tiên cao. Cụ thể, làm thế nào để liệt kê một quá trình nhiều lần ảnh hưởng đến sự công bằng và phản ứng?

(Từ bài tập 2.16 trong Hệ điều hành của Andrew Tanenbaum : Thiết kế và triển khai lần thứ nhất.)


Tannenbaum đã viết nhiều sách. Có lẽ bạn có nghĩa là hệ điều hành .
Dave Clarke

@DaveClarke Vâng, cảm ơn bạn đã chỉ ra điều này. (Và trên thực tế, tất cả những gì có ở đây là một bản dịch, nhưng tôi không nghĩ rằng nó thiếu bất kỳ một phần của văn bản.)
Gilles 'Somali dừng tà ác'

Câu trả lời:


4

Ưu điểm của phương pháp này là lập lịch luân chuyển vòng rất hiệu quả, do đó bạn không cần phải dựa vào lịch trình phức tạp hơn, điều này sẽ đánh cắp các chu kỳ. Giới thiệu các lát cắt thời gian dài hơn cho các quy trình ưu tiên cao hơn sẽ làm giảm khả năng phản hồi của các luồng khác và khiến HĐH khó nhảy vào để xử lý ngắt và v.v. Việc duy trì danh sách các quy trình riêng biệt sẽ đòi hỏi một bộ lập lịch phức tạp hơn nhiều, sẽ tốn kém hơn về mặt chu kỳ. Tôi không thấy làm thế nào sẽ có bất kỳ vấn đề với sự công bằng, mặc dù. Tôi đoán vấn đề là độ chi tiết khá dĩ nhiên: các quá trình chỉ có thể có bội số nguyên của lát cắt thời gian cơ bản.

Một điểm tiêu cực là việc loại bỏ một quy trình sẽ tốn kém hơn, vì mỗi lần xuất hiện của quy trình sẽ phải được loại bỏ khỏi hàng đợi. Có lẽ điều này có thể được thực hiện một cách lười biếng, mặc dù.


2

Việc thêm tác vụ vào hàng đợi lập lịch vòng tròn nhiều lần sẽ mở ra vấn đề đảm bảo rằng các mục vẫn được phân phối hợp lý. Điều này dễ dàng đảm bảo nếu hệ thống không cho phép tạo hoặc xóa tác vụ động, nhưng nói chung là không thể.

Ngoài quy trình loại bỏ các mục phức tạp hơn khỏi hàng đợi, sự sai lệch cuối cùng của các mục quy trình trong hàng đợi sẽ dẫn đến hành vi không cân bằng, dễ thực hiện công bằng hơn với nhiều mức độ ưu tiên.


Có mong muốn có những ưu tiên không chống lại sự công bằng?
Raphael
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.