Các quá trình ngủ có nhận được cùng một thời gian CPU?


11

Một số quy trình dành phần lớn "cuộc sống" của họ trong một sleeptrạng thái. Daemon, máy chủ và người nghe nói chung đến với tâm trí. Tôi đã tự hỏi nếu họ có cùng thời gian CPU trong trạng thái đó? Trên một cái gì đó như máy tính xách tay của tôi, điều đó sẽ không được tối ưu!

Tôi mơ hồ nhớ từ khóa học hệ điều hành của mình rằng có nhiều cách tiếp cận khác nhau để lên lịch. Tôi muốn tìm hiểu thêm về hộp Linux (Debian) hiện tại của tôi.

Làm cách nào tôi có thể tìm hiểu về các chính sách lập lịch trình hiện tại của mình? Tôi có thể thay đổi chúng một cách linh hoạt không? Với một ứng dụng khá hay?

Câu trả lời:


15

Các quy trình không tiêu tốn tài nguyên CPU trong khi chúng đang ngủ. Họ có thể thêm một số chi phí vì Kernel phải tung hứng chúng, nhưng điều đó rất không đáng kể.

Tuy nhiên, do cách đặt câu hỏi, tôi nên đề cập rằng khi sử dụng CFS (Bộ lập lịch hoàn toàn công bằng) của Linux, nó cố gắng cung cấp cho các chương trình thời gian CPU tăng theo tỷ lệ với thời gian nó ngủ - nghĩa là, nếu một quá trình ngủ nhiều , khi được nối lại, nó được ưu tiên cao hơn.

Xem http://www.ibm.com/developerworks/linux/l Library / l-completely-fair-scheduler/ để biết mô tả về CFS.


2
Tôi muốn bỏ phiếu cho câu trả lời này nhưng điểm đại diện hiện tại của bạn (6,666) quá đẹp để thay đổi. À, dù sao thì tôi cũng đang làm điều đó ...
rahmu

2
@rahmu không! Đẹp sáu mươi thẳng của tôi! Bây giờ tôi sẽ phải đến bảy giờ.
Shawn J. Goff

4

Theo định nghĩa, một quá trình ngủ không thực hiện trên cpu, vì vậy rõ ràng lượng thời gian cpu mà nó đang sử dụng là bằng không.


Nếu đó là sự thật, làm thế nào để máy biết khi nào thời gian ngủ hoàn thành và nó sẽ khởi động lại việc thực hiện?
Dave Goldsmith
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.