Trong chính sách lập lịch RR điều gì sẽ xảy ra nếu chuỗi ưu tiên thấp khóa một mutex và bị xóa bởi trình lên lịch bởi vì một chuỗi ưu tiên cao khác đang đợi?Lập lịch trình chủ đề trong unix
Nó cũng sẽ giải phóng khóa được giữ bởi chuỗi ưu tiên thấp?
Ví dụ: xem xét 3 chuỗi chạy trong tiến trình có mức độ ưu tiên là 10,20 và 30 trong chính sách lập lịch RR.
Bây giờ tại một thời điểm cho trước, chuỗi ưu tiên thấp 1 khóa mutex và vẫn thực hiện nghĩa là thực thi trong khi chuỗi ưu tiên cao bật lên và cũng chờ trên mutex được giữ bởi chuỗi 1. Bây giờ chủ đề 2 đi vào hình ảnh cũng cần cùng một mutex bị khóa bởi thread 1.
Theo như tôi biết theo thuật toán lập lịch, các chủ đề ngủ hoặc chờ mutex, semaphore vv được loại bỏ và những thứ khác, thậm chí có mức độ ưu tiên thấp được phép thực thi. Điều này có đúng không? Nếu đúng như vậy, trong ví dụ trên, các chủ đề ưu tiên cao sẽ chờ hoàn thành chuỗi ưu tiên thấp mà không có ý nghĩa gì. Đây có phải là cách hệ thống hoạt động nếu ở tất cả các luồng được thiết kế như tôi đã nói ở trên không?
hoặc mức độ ưu tiên của luồng phải được đặt theo cách ưu tiên của người ưu tiên cao sẽ không phụ thuộc vào mức độ ưu tiên thấp của người khác?
Ngoài ra, bất kỳ ai cũng có thể giải thích cho tôi cách lập lịch hoạt động ở cấp quy trình? Làm thế nào để chúng tôi đặt ưu tiên cho một quy trình?
Vấn đề được sử dụng là "quá nhiều chủ đề, không đủ lõi" nhưng cuộc cách mạng đa lõi đang nhanh chóng đảo ngược vấn đề đó. Ưu tiên luồng hữu ích khi bạn cần chọn chuỗi nào để chạy, không phải khi các nhà thiết kế chip đang tự hỏi liệu một lõi phụ có thể vẫn làm điều gì đó hữu ích hay không. – MSalters