Օգտագործեք mutex_lock_interruptible ֆունկցիան, որպեսզի ձեր վարորդն ընդհատվի ցանկացած ազդանշանով: Սա ենթադրում է, որ ձեր համակարգային զանգը պետք է գրվի այնպես, որ այն հնարավոր լինի վերագործարկել: (Տես նաև ERESTARTSYS):
Կարո՞ղ եմ կողպել պտտվող կողպեքը մեկ պրոցեսորի մեջ և ապակողպել այն մեկ այլ պրոցեսորի մեջ:
Մեկ միջուկային/մեկ պրոցեսորային համակարգի վրա պտտվող կողպեքների օգտագործումը սովորաբար անիմաստ է, քանի որ քանի դեռ պտտվող հարցումը արգելափակում է միակ հասանելի պրոցեսորի միջուկը, ոչ մի այլ շղթա չի կարող աշխատել, և քանի որ ոչ մի այլ շղթա չի կարող աշխատել, կողպեքը նույնպես չի ապակողպվի.
Կարո՞ղ եմ զանգել 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)
Ի՞նչ է միջուկի մուտեքսը:
Լինուքսի միջուկում mutexe-ները վերաբերում են որոշակի կողպման պարզունակությանը, որն ապահովում է սերիալիզացիա ընդհանուր հիշողության համակարգերում, և ոչ միայն ընդհանուր տերմինը, որը վերաբերում է «փոխադարձ բացառմանը», որը հայտնաբերված է: ակադեմիական կամ նմանատիպ տեսական դասագրքեր։