Trong chương 5 của ULK các bang tác giả như sau:Có yêu cầu spinlock cho mọi trình xử lý ngắt không?
" ... từng gián đoạn handler là serialized liên quan đến bản thân-có nghĩa là, nó không thể thực hiện nhiều hơn một đồng thời Do đó, việc tiếp cận các cấu trúc dữ liệu. không yêu cầu các nguyên tắc đồng bộ hóa "
Tôi không hiểu tại sao trình xử lý ngắt được" tuần tự hóa "trên các CPU hiện đại với nhiều lõi. Tôi nghĩ rằng có thể có một ISR tương tự có thể chạy trên các lõi khác nhau cùng một lúc, đúng không? Nếu đó là trường hợp, nếu bạn không sử dụng spinlock để bảo vệ dữ liệu của bạn, nó có thể đến một điều kiện chủng tộc. Vì vậy, câu hỏi của tôi là, trên một hệ thống hiện đại với multi-cpus, cho mỗi trình xử lý ngắt bạn sẽ viết mà sẽ đọc & viết một số dữ liệu, là spinlock luôn luôn cần thiết?
Tôi nghĩ, nó chỉ vô hiệu hóa ngắt cho CPU thực thi trình xử lý đó chứ không phải cho các CPU khác. Có đúng không? – Eugene
Nó vô hiệu hóa ngắt dòng, tại bộ điều khiển ngắt. Cho dù * khác * ngắt trên cùng một CPU bị vô hiệu hóa hay không là kiến trúc cụ thể. –