Làm thế nào là tốt đẹp làm việc?


20

calendar_setscheduler nói:

Tất cả lập lịch đều được ưu tiên: nếu một quy trình có mức ưu tiên tĩnh cao hơn sẵn sàng để chạy, quy trình hiện đang chạy sẽ được ưu tiên và trở lại danh sách chờ cho mức ưu tiên tĩnh.

trong khi setp Warriority nói

Điều này khiến các giá trị đẹp rất thấp (+19) thực sự cung cấp ít CPU cho một tiến trình bất cứ khi nào có bất kỳ tải ưu tiên cao nào khác trên hệ thống và làm cho các giá trị cao đẹp (-20) cung cấp hầu hết CPU cho các ứng dụng yêu cầu

Vì vậy, làm thế nào là thay đổi giá trị tốt đẹp sẽ ảnh hưởng đến việc thực hiện các chương trình? Nó có giống với lập lịch RT không (trong đó một chương trình có giá trị cao hơn sẽ làm gián đoạn chương trình có giá trị đẹp thấp hơn)?


Tất cả thông tin trên internet là cách sử dụng nicevà cách thay đổi mức độ ưu tiên của một quy trình. Không có liên kết giải thích cách chính xác quá trình với các ưu tiên khác nhau hoạt động. Tôi thậm chí không thể tìm thấy mã nguồn.

Câu trả lời:


24

Tỷ lệ thời gian của bộ xử lý mà một quy trình cụ thể nhận được được xác định bởi sự khác biệt tương đối về độ đẹp giữa nó và các quy trình có thể chạy khác.

Bộ lập lịch hoàn toàn công bằng Linux (CFS) tính toán trọng số dựa trên mức độ độc đáo. Trọng lượng gần tương đương với 1024 / (1.25 ^ nice_value). Khi giá trị tốt đẹp giảm trọng lượng tăng theo cấp số nhân. Thời gian được phân bổ cho quy trình tỷ lệ thuận với trọng số của quy trình chia cho tổng trọng lượng của tất cả các quy trình có thể chạy được. Việc thực hiện CFS là trong kernel/sched/fair.c.

CFS có độ trễ mục tiêu cho thời gian lập lịch. Độ trễ mục tiêu nhỏ hơn mang lại khả năng tương tác tốt hơn, nhưng khi độ trễ mục tiêu giảm, chi phí chuyển đổi tăng, do đó làm giảm thông lượng chung.

Chẳng hạn, độ trễ mục tiêu là 20 mili giây và hai quá trình có thể chạy được với độ đẹp bằng nhau, sau đó cả hai quá trình sẽ chạy trong 10 mili giây mỗi lần trước khi được ưu tiên cho quá trình kia. Nếu có 10 quá trình có độ đẹp bằng nhau, mỗi lần chạy trong 2 mili giây.

Bây giờ hãy xem xét hai quy trình, một quy trình có độ đẹp bằng 0 (mặc định), quy trình còn lại có độ độc là 5. Sự khác biệt tỷ lệ giữa các trọng số tương ứng là khoảng 1/3, có nghĩa là quy trình ưu tiên cao hơn nhận được khoảng thời gian khoảng 15 mili giây trong khi quá trình ưu tiên thấp hơn nhận được thời gian là 5 mili giây.

Cuối cùng xem xét hai quá trình với các giá trị độc đáo lần lượt là 5 và 10. Mặc dù độ đẹp tuyệt đối lớn hơn trong trường hợp này, sự khác biệt tương đối giữa các giá trị độ đẹp giống như trong ví dụ trước, mang lại sự phân chia thời gian giống hệt nhau.


Chỉ là điều tôi đang tìm kiếm. Cảm ơn! Sau đó tôi tìm thấy bài viết này giải thích mọi thứ chi tiết, nhưng không phải những gì bạn vừa viết.
Bовић

Có điều gì đó tôi không hiểu .. vai trò của vr Yoon là gì?
Surfer vào mùa thu

@Surferonthefall vr Yoon là cơ chế nội bộ CFS theo dõi nhiều quá trình thời gian CPU được phân bổ. Câu hỏi này là về giá trị tốt đẹp hiển thị cho không gian người dùng. Nếu bạn có câu hỏi về nội bộ CFS và không thể tìm thấy câu trả lời ở nơi khác , hãy hỏi một câu hỏi mới
Thomas Nyman
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.