linux 核心同步自學報告

來源:互聯網
上載者:User

核心同步保護的是資料(data),而不是邏輯(logic).

中斷處理常式中能避免並發訪問的安全的程式碼稱為中斷安全的程式碼,在對稱式多處理的機器中能避免並發訪問的安全的程式碼稱為SMP安全的程式碼(SMP-safe),在核心搶佔時能避免並發訪問的安全的程式碼稱為搶佔安全的程式碼(preempt-safte).

1,原子操作,只能針對整數或者bit,用atomic_t類型(只能用24位,因為在SPARC體繫上,在int類型的低八位中嵌入一個鎖)。

2,自旋鎖(spin lock),最多隻能被一個可執行線程持有。一個被爭用的自旋鎖使得請求它的線程在等待鎖重新可用時自旋(佔用cpu等待)。所以自旋鎖不應該長時間佔有。一般適用於SMP。在單一處理器機器上,編譯的時候並不會加入自旋鎖,僅僅被當做一個設定核心搶佔機制是否被開機的開關。自旋鎖不能遞迴(中斷處理常式中使用自旋鎖時,一定要在擷取鎖之前,首先禁止本地中斷,因為中斷處理常式就會打斷正持有鎖的核心代碼)。

3,訊號量。可以睡眠的同步機制。因為出現睡眠的情況,所以使用這種鎖可能引發進程切換的消耗。訊號量被稱為計數訊號量(counting semaphone),數目可以大於1.訊號量和自旋鎖不能同時使用。

順序和屏障,保障程式的順序執行。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.