原子性atomic與非原子性natomic

原子操作是不可分割的操作,在原子操作執(zhí)行完畢之前,其不會(huì)被任何其它任務(wù)或事件中斷。在單處理器系統(tǒng)(UniProcessor)中, 能夠在單條指令中完成的操作都可以認(rèn)為是" 原子操作",因?yàn)橹袛嘀荒馨l(fā)生于指令之間。某些CPU指令系統(tǒng)中引入了test_and_set、test_and_clear等指令產(chǎn)生臨界資源互斥效果。

在對(duì)稱(chēng)多處理器(Symmetric Multi-Processor)結(jié)構(gòu)中因?yàn)榇嬖诙鄠€(gè)處理器之間將相互并行的搶占計(jì)算機(jī)資源,即處理器之間并行的相互強(qiáng)行切換,即使能在單條指令中完成的操作也有可能受到干擾。

CPU提供了在指令執(zhí)行期間對(duì)總線(xiàn)加鎖的手段。CPU芯片上有一條引線(xiàn)#HLOCK pin,如果當(dāng)匯編語(yǔ)言的程序中在一條指令前面被加上前綴"LOCK",經(jīng)過(guò)底層匯編以后的產(chǎn)生的機(jī)器代碼就使CPU在執(zhí)行這條指令期間把引線(xiàn)#HLOCK pin的電位拉低,電位拉低促使同一總線(xiàn)上別的CPU就暫時(shí)不能通過(guò)總線(xiàn)訪(fǎng)問(wèn)內(nèi)存了,結(jié)束其他CPU的干擾影響,一直持續(xù)到這條lock鎖指令結(jié)束時(shí)放開(kāi)電位重新恢復(fù)至高電位,使得其他CPU可以通過(guò)總線(xiàn)訪(fǎng)問(wèn)內(nèi)存。在此期間,保證了同一時(shí)間段下只有這條唯一的指令被執(zhí)行并順利完畢,既保證了這條指令即便在多處理器環(huán)境中依然具有不被干擾的原子特性。

簡(jiǎn)單來(lái)講:在cpu中要保證一條一條指令順利執(zhí)行完畢,原子性則就是一條指令,去完成讀寫(xiě)操作。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容