卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

腳本語言有哪些 自旋鎖的自旋鎖-原理?

自旋鎖的自旋鎖-原理?自旋鎖自旋鎖類似于互斥鎖,只是自旋鎖不會導致調用者睡眠。如果一個自旋鎖被另一個執(zhí)行單元持有,調用者總是在那里循環(huán),看它是否被持有自旋鎖的持有者是否已經釋放了鎖,因此得名“self

自旋鎖的自旋鎖-原理?

自旋鎖

自旋鎖類似于互斥鎖,只是自旋鎖不會導致調用者睡眠。如果一個自旋鎖被另一個執(zhí)行單元持有,調用者總是在那里循環(huán),看它是否被持有

自旋鎖的持有者是否已經釋放了鎖,因此得名“self spin”。它的功能是解決資源的互斥使用問題。由于自旋鎖不會導致調用者睡眠,所以自旋鎖的效率比互斥鎖高很多。雖然它的效率高于互斥鎖,但它也有一些缺點:1。自旋鎖總是占用CPU。它運行所有的時間-自旋沒有得到鎖,所以它占用CPU。如果不能在短時間內獲得鎖,無疑會降低CPU效率。

2. 使用自旋鎖時,可能會導致死鎖。遞歸調用時,可能導致死鎖。調用其他一些函數也可能導致死鎖,例如copyuutouuser()、copyufromuuser()、kmalloc()等,因此使用自旋鎖要謹慎。只有當內核是搶占式或SMP時,才真正需要自旋鎖。在單CPU非搶占式內核中,自旋鎖的操作為空。旋轉鎖適用于鎖用戶在短時間內保持鎖。

互斥:線程將切換上下文,搶占CPU并將信號從休眠發(fā)送到運行。

自旋鎖:線程總是在運行(lock> unlock),死循環(huán)檢測鎖標志位,機制并不復雜。

互斥鎖是一種睡眠等待鎖。例如,在雙核機器上,有兩個線程(線程a和線程b),分別在core0和

core1上運行。假設線程a要通過pthreadmutexLock操作來獲得關鍵區(qū)域的鎖,此時鎖被線程B持有,那么線程a將被阻塞

在X86平臺上,自旋鎖主要通過處理器的鎖指令前綴來實現。當一個線程的指令訪問內存時,另一個線程的指令不能訪問內存。因此,在spinlock的初始化階段,lock變量中的值K被分配給1。鎖定時,使用lock decl(x)指令將變量更改為互斥的0,并詢問結果0是否分配給EFLAGS寄存器的相應位。只有鎖定的線程會導致0,而其他線程不會。然后,通過判斷相應的位來判斷是否加鎖。否則,循環(huán)將執(zhí)行l(wèi)ock decl(x),直到添加它為止。其中x是變量的地址。這是GCC的at&t語法的匯編。

spinlock自旋鎖是如何實現的?

粒子的自旋與物體的自轉和地球的自轉是不同的物理機制,這在量子力學教科書中已經明確提到了很長一段時間。

首先,宏觀物體的旋轉,比如地球的旋轉,是角動量守恒的背后。物理學中有一個非常強大的定理,它是由一位名叫諾特的女數學家證明的,因此被稱為諾特定理。諾特定理告訴我們,在連續(xù)對稱性的背后,必然有一個相應的守恒定律。物理學家把這個定理應用到我們的時空中,從空間平移對稱性得到動量守恒,從時間平移對稱性得到能量守恒。與空間旋轉相對應的對稱性,即“自由實體”在沒有外力的情況下會旋轉而不能停止。這種對稱性背后的相應定律是角動量守恒定律。

事實上,許多中國物理學家認為“自旋”這個名字不合適,他們更喜歡用英文名“自旋”,因為“自旋”聽起來像粒子在旋轉。如果你認為自旋是粒子的經典旋轉,那就違反了相對論。這是因為你可以計算電子的自旋線速度。計算過程如下:

答案超過光速,這與狹義相對論相矛盾。