AFAIK, API mutex được giới thiệu với hạt nhân sau LDD3 (trình điều khiển thiết bị Linux phiên bản thứ 3) được viết nên nó không được mô tả trong cuốn sách.Biến thể khóa mutex nào tôi nên sử dụng trong hạt nhân Linux đang phát triển?
Cuốn sách mô tả cách sử dụng API semaphore của hạt nhân cho chức năng mutex.
Nó đề nghị sử dụng down_interruptable()
thay vì down()
:
Bạn không, như một quy luật chung, muốn sử dụng hoạt động noninterruptible trừ khi có thực sự là không có thay thế. hoạt động không ngắt được là một cách tốt để tạo ra các quy trình unkillable (sợ hãi “D trạng thái” nhìn thấy trong ps), và làm phiền người dùng của bạn [Linux Device Drivers 3rd ed]
Now. đây là câu hỏi của tôi:
API mutex có hai chức năng "tương tự": mutex_lock_killable()
an mutex_lock_interruptable()
. Tôi nên chọn cái nào?
Bất kỳ ý tưởng nào tại sao biến thể này (có thể giết) không tồn tại trên API semaphore? – stdcall
Không ai cảm thấy cần phải thực hiện điều này bởi vì các semaphores không được sử dụng rộng rãi. –