第 5 章 并發(fā)和競爭情況

2018-02-23 16:24 更新

第?5?章?并發(fā)和競爭情況

迄今, 我們未曾關(guān)心并發(fā)的問題 -- 就是說, 當(dāng)系統(tǒng)試圖一次做多件事時發(fā)生的情況. 然而, 并發(fā)的管理是操作系統(tǒng)編程的核心問題之一. 并發(fā)相關(guān)的錯誤是一些最易出現(xiàn)又最難發(fā)現(xiàn)的問題. 即便是專家級 Linux 內(nèi)核程序員偶爾也會出現(xiàn)并發(fā)相關(guān)的錯誤.

早期的 Linux 內(nèi)核, 較少有并發(fā)的源頭. 內(nèi)核不支持對稱多處理器(SMP)系統(tǒng), 并發(fā)執(zhí)行的唯一原因是硬件中斷服務(wù). 那個方法提供了簡單性, 但是在有越來越多處理器的系統(tǒng)上注重性能并且堅持系統(tǒng)要快速響應(yīng)事件的世界中它不再可行了. 為響應(yīng)現(xiàn)代硬件和應(yīng)用程序的要求, Linux 內(nèi)核已經(jīng)發(fā)展為很多事情在同時進行. 這個進步已經(jīng)產(chǎn)生了很大的性能和可擴展性. 然而, 它也很大地使內(nèi)核編程任務(wù)復(fù)雜化. 設(shè)備啟動程序員現(xiàn)在必須從一開始就將并發(fā)作為他們設(shè)計的要素, 并且他們必須對內(nèi)核提供的并發(fā)管理設(shè)施有很強的理解.

本章的目的是開始建立那種理解的過程. 為此目的, 我們介紹一些設(shè)施來立刻應(yīng)用到第 3 章的 scull 驅(qū)動. 展示的其他設(shè)施暫時還不使用. 但是首先, 我們看一下我們的簡單 scull 驅(qū)動可能哪里出問題并且如何避免這些潛在的問題.

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號