როდის გამოვიყენოთ mutex_lock_interruptible?

Სარჩევი:

როდის გამოვიყენოთ mutex_lock_interruptible?
როდის გამოვიყენოთ mutex_lock_interruptible?

ვიდეო: როდის გამოვიყენოთ mutex_lock_interruptible?

ვიდეო: როდის გამოვიყენოთ mutex_lock_interruptible?
ვიდეო: Mutex Lock 2024, სექტემბერი
Anonim

გამოიყენეთ mutex_lock_interruptible ფუნქცია , რათა თქვენი მძღოლი შეწყდეს ნებისმიერი სიგნალით. ეს გულისხმობს, რომ თქვენი სისტემური ზარი უნდა დაიწეროს ისე, რომ მისი გადატვირთვა შესაძლებელი იყოს. (ასევე იხილეთ ERESTARTSYS.)

შემიძლია დავბლოკო spinlock ერთ CPU-ში და განვბლოკო სხვა CPU?

სპინლოკების გამოყენებას ერთბირთვიან/ერთ CPU სისტემაზე, როგორც წესი, აზრი არ აქვს, რადგან სანამ spinlock polling ბლოკავს ერთადერთ ხელმისაწვდომი CPU ბირთვს, ვერცერთი სხვა ძაფი ვერ გაშვება და რადგან ვერცერთი სხვა ძაფი ვერ აწარმოებს, არც საკეტი განიბლოკება.

შემიძლია დავურეკო Kmalloc Gfp_kernel, სანამ სპინლოკი მაქვს?

თქვენ არ შეგიძლიათ, მაგრამ არ შეგიძლიათ გააკეთოთ ისეთი რამ, რაც დაიძინებს სპინლოკის დაჭერისას.მაგალითად, არასოდეს გამოიძახოთ ფუნქცია, რომელიც ეხება მომხმარებლის მეხსიერებას, kmalloc-ს GFP_KERNEL დროშით, რაიმე სემაფორის ფუნქციას ან განრიგის რომელიმე ფუნქციას სპინლოკის დაჭერისას. … სემაფორები Linux-ში არის საძილე საკეტები.

რა არის Spinlock_t?

int spin_trylock(spinlock_t lock) ბლოკავს spinlock თუ ის უკვე არ არის ჩაკეტილი. თუ საკეტის მიღება შეუძლებელია, ის გამოდის შეცდომით და არ ტრიალებს საკეტს. spin_lock_irq: spin_lock_irq(spinlock_t lock)

რა არის ბირთვის მუტექსი?

Linux ბირთვში, mutexes ეხება კონკრეტულ ჩამკეტ პრიმიტივს, რომელიც ახორციელებს სერიულიზაციას საზიარო მეხსიერების სისტემებზე და არა მხოლოდ ზოგად ტერმინს, რომელიც ეხება "ურთიერთ გამორიცხვას", რომელიც გვხვდება აკადემიური ან მსგავსი თეორიული სახელმძღვანელოები.

გირჩევთ: