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

2018-02-23 16:24 更新

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

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

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

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

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號