2010-04-26 29 views

Trả lời

7

Có giao diện at this question. "Thời gian thực" (cho một quy trình) đề cập đến thuật toán lập lịch, hoặc suy nghĩ hạt nhân thực hiện khi nó quyết định tiến trình nào sẽ chạy. Một quá trình thời gian thực sẽ preempt tất cả các quy trình khác (có trọng lượng lập lịch ít hơn) khi nhận được ngắt và nó cần phải chạy.

Chương trình chỉ chấp nhận đầu vào của người dùng sẽ chuyển sang chế độ ngủ (chặn) trong khi đợi đầu vào hoặc thậm chí giữa các lần nhấn phím (tùy thuộc). Chương trình như vậy không cần phải có ưu tiên lên lịch cao như vậy. Quy trình RT cần cần để chạy trước mọi quy trình khác trên hệ thống. Điều này có thể là do quá trình này rất quan trọng đối với một số mục tiêu quan trọng hoặc cần có bộ tính giờ hiệu suất cao (trong trường hợp này, bạn muốn có một hệ điều hành thời gian thực, chuẩn Linux là không phải là).

Dù sao, để biết tổng quan về sự khác biệt giữa SCHED_FIFO và SCHED_RR, hãy xem câu hỏi mà tôi đã liên kết. Quyết định bạn nên thực hiện nếu dự tính một cái khác không phải là nếu chương trình cần chạy dưới dạng RT, đó là quyết định kỹ thuật cơ bản. Quyết định giữa hai người chỉ là vấn đề bạn muốn quy trình hợp tác với người khác như thế nào.

Nếu tôi đang sử dụng hạt nhân chuẩn để điều khiển thang máy, quy trình dịch vụ ngắt phần cứng từ các công tắc vi mô có thể sẽ sử dụng SCHED_FIFO với trọng lượng RT. Sau đó, một lần nữa, tôi có lẽ sẽ không sử dụng Linux chuẩn cho điều đó.

Nếu tôi đang viết một ứng dụng email, tôi sẽ sử dụng bộ lập lịch chuẩn và cho phép người dùng nice các chương trình đang chạy khi chúng thấy phù hợp.

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