מתי להשתמש ב-mutex_lock_interruptible?

תוכן עניינים:

מתי להשתמש ב-mutex_lock_interruptible?
מתי להשתמש ב-mutex_lock_interruptible?

וִידֵאוֹ: מתי להשתמש ב-mutex_lock_interruptible?

וִידֵאוֹ: מתי להשתמש ב-mutex_lock_interruptible?
וִידֵאוֹ: באיזה יחידות מידה להשתמש ב- CSS?! 2024, סֶפּטֶמבֶּר
Anonim

השתמש בפונקציה mutex_lock_interruptible כדי לאפשר לנהג שלך להיות מופרע על ידי כל אות. זה מרמז שיש לכתוב את קריאת המערכת שלך כך שניתן יהיה להפעיל אותה מחדש. (ראה גם ERESTARTSYS.)

האם אוכל לנעול ספינלוק במעבד אחד ולפתוח אותו במעבד אחר?

שימוש ב-Spinlocks במערכת ליבה אחת/יחידה-CPU בדרך כלל לא הגיוני, שכן כל עוד סקר הספינלוק חוסם את ליבת ה-CPU הזמינה היחידה, שום שרשור אחר לא יכול לפעול ומכיוון שאף שרשור אחר לא יכול לפעול, גם המנעול לא יבוטל.

האם אני יכול להתקשר ל-Kmalloc Gfp_kernel בזמן שאני מחזיק ספינלוק?

אי אפשר, עם זאת, לעשות כל דבר שישנה תוך החזקת ספינלוק.לדוגמה, לעולם אל תתקשר לאף פונקציה שנוגעת בזיכרון המשתמש, kmalloc עם דגל GFP_KERNEL, פונקציות סמפור כלשהן או כל אחת מפונקציות לוח הזמנים תוך החזקת ספינלוק. … סמפור בלינוקס הם מנעולים ישנים.

מה זה Spinlock_t?

int spin_trylock(spinlock_t lock) נועל את הספינלוק אם הוא עדיין לא נעול. אם לא מצליח להשיג את המנעול, הוא יוצא עם שגיאה ואינו מסתובב לנעול. spin_lock_irq: spin_lock_irq(spinlock_t lock)

מהו מוטקס ליבה?

בליבה של לינוקס, מוטקסים מתייחסים ל- פרימיטיבי נעילה מסוים האוכף סדרה על מערכות זיכרון משותפות, ולא רק למונח הגנרי המתייחס ל'אי הכללה הדדית' שנמצא ב- אקדמיה או ספרי לימוד תיאורטיים דומים.

מוּמלָץ: