2013-08-23 21 views
6

Sự khác biệt giữa "RES: ngắt lịch trình" và "LOC: ngắt hẹn giờ cục bộ" là gì? Điều gì là nguyên nhân gây ra ngắt RES? LOC có giống như ngắt bộ đếm thời gian chung được tạo bởi Timer h/w trong bộ xử lý không?Ngắt lịch biểu (RES) là gì? Điều gì gây ra nó? Nó được xử lý như thế nào trong nhân Linux?

Ngoài ra, vui lòng cung cấp cho một số rõ ràng về phần nào của bộ lập lịch được gọi trong quá trình ngắt hẹn giờ và ngắt RES? Làm thế nào nó xảy ra trong hạt nhân Linux?

Xin cảm ơn trước.

Trả lời

9

Ngắt lịch lại là cách của hạt nhân Linux để đánh thức CPU-core nhàn rỗi để lên lịch chuỗi trên đó. Trên các hệ thống SMP, điều này thường được thực hiện bởi bộ lập lịch trong một nỗ lực để truyền tải tải trên nhiều CPU-lõi.

Trình lên lịch cố gắng truyền bá hoạt động của bộ xử lý qua nhiều lõi nhất có thể. Nguyên tắc chung là có thể có nhiều tiến trình chạy trên tất cả các lõi với công suất thấp hơn (tần số xung nhịp thấp) thay vì có một lõi thực sự bận rộn chạy ở tốc độ tối đa trong khi các lõi khác đang ngủ.

Ngắt lịch biểu được thực hiện bằng cách sử dụng Inter-Processor Interrupts (IPI). Để biết thêm chi tiết, hãy thanh toán số này article on Rescheduling Interrupts on Linux.


hẹn giờ địa phương ngắt được nuôi dưỡng bởi các APIC cho một CPU lõi cụ thể. Chỉ có lõi CPU nhận được các ngắt và xử lý chúng. Để có mô tả ngắn gọn về các lợi thế khác nhau của nó, hãy kiểm tra số answer này.

+0

Cảm ơn bạn đã trả lời. Vì vậy, là ** 'TIF_NEED_RESCHED' ** trong mã trình lập lịch CFS về cơ bản đang xử lý ngắt RES này? Và, thứ hai, ngắt nào kích hoạt trình lập lịch biểu? Nó là bộ đếm thời gian gián đoạn thông qua APIC? Nếu vậy, hãy thực hiện cả hai ngắt thời gian và hẹn giờ lại xảy ra không đồng bộ w.r.t. lẫn nhau? Rõ ràng hơn về lời gọi lịch trình sẽ giúp ích. Cảm ơn một lần nữa! – user31986

Các vấn đề liên quan