linux驅動筆試題總結__linux

來源:互聯網
上載者:User
linux驅動筆試題總結

試題取之於網路,用之於民。最近在學習linux驅動,驅動開發在筆試的時候考的知識點是有規律可循的,並且這些面點也是平時驅動工作中的理論指導,深刻的理解這些面點還是很有必要的,所以在此總結記錄,相信會用到的。
ps:以後面試驅動,誰在問我這些問題,我鄙視死他。權威答案整蒙b他。 1:linux中核心空間及使用者空間的區別。使用者空間與核心通訊方式有哪些。

答:
-在32位架構cpu中,實體記憶體大小限制在4G。linux將4G記憶體分為兩部分,0~1G為kernel使用,1~4G為使用者使用;進程運行在kernel,就是運行在0-1G,進程運行在使用者空間,就是運行在1-4G。
-使用者空間和核心空間通訊方式有那些。
1. 使用API:這是最常使用的一種方式了
A.get_user(x,ptr):在核心中被調用,擷取使用者空間指定地址的數值並儲存到核心變數x中。
B.put_user(x,ptr):在核心中被調用,將核心空間的變數x的數值儲存到到使用者空間指定地址處。
C.Copy_from_user()/copy_to_user():主要應用於裝置驅動讀寫函數中,通過系統調用觸發。
2. 使用proc檔案系統:和sysfs檔案系統類似,也可以作為核心空間和使用者空間互動的手段。
3. netlink
4. 使用mmap系統調用
5. 訊號
核心空間和使用者空間通訊方式 2:linux中記憶體劃分及如何使用。虛擬位址及物理地址的概念及彼此之間的轉化,高端記憶體概念。

 1. 使用者虛擬位址     這是在使用者空間進程所能看到的常規地址。每個進程多有自己的虛擬位址,並且可以使用大於實體記憶體大小的空間。 2. 物理地址     該地址在處理器和系統記憶體之間使用,對應與真是物理地址。 3. 匯流排地址     沒看懂,不說了。 4. 核心邏輯地址     核心邏輯地址組成了核心的常規地址空間。該地址映射了部分(或者全部)記憶體,並經常被視為物理地址。     邏輯地址使用硬體內建的指標大小,因此在安裝了大量記憶體的32位系統中,它無法定址全部的實體記憶體。     邏輯地址通常儲存在unsigned long或者void *這樣類型的變數中。kmalloc返回的記憶體就是核心邏輯地址。     (上面這段話很重要,一定要理解,建議自己使用記號筆標紅) 5. 核心虛擬位址     核心虛擬位址與物理地址的映射不必是一對一的,而這是虛擬位址的特點。     所有邏輯地址都是核心虛擬位址,但是許多核心虛擬位址不是邏輯地址。vmalloc分配的記憶體就是一個虛擬位址。     可以參考下面的地址:  

記憶體詳解

總結:高端記憶體的作用就是用於建立臨時地址映射,用於kernel申請user空間記憶體 3: linux中中斷的實現機制,tasklet與workqueue的區別及底層實現區別。為什麼要區分上半部和下半部。

答:
tasklet和workqueue區別。
tasklet運行於中斷上下文,不允許阻塞 、休眠,而workqueue運行與進程上下文,可以休眠和阻塞。
為什麼要區分上半部和下半部。
中斷服務程式非同步執行,可能會中斷其他的重要代碼,包括其他中斷服務程式。因此,為了避免被中斷的代碼延遲太長的時間,中斷服務程式需要儘快運行,而且執行的時間越短越好,所以中斷程式只作必須的工作,其他工作延遲到以後處理。所以Linux把中斷處理切為兩個部分:上半部和下半部。上半部就是中斷處理常式,它需要完成的工作越少越好,執行得越快越好,一旦接收到一個中斷,它就立即開始執行。像對時間敏感、與硬體相關、要求保證不被其他中斷打斷的任務往往放在中斷處理常式中執行;而剩下的與中斷有相關性但是可以延後的任務,如對資料的操作處理,則延遲一點由下半部完成。下半部分延後執行且執行期間可以相應所有中斷,這樣可使系統處於中斷屏蔽狀態的時間儘可能的短,提高了系統的響應能力。實現了程式運行快同時完成的工作量多的目標。 4:linux中斷的響應執行流程。中斷的申請及何時執行(何時執行中斷處理函數)。

中斷的響應流程:cpu接受終端->儲存中斷上下文跳轉到中斷處理曆程->執行中斷上半部->執行中斷下半部->恢複中斷上下文。
中斷的申請request_irq的正確位置:應該是在第一次開啟 、硬體被告知終端之前。 5:linux中的同步機制。spinlock與訊號量的區別。

linux中的同步機制:自旋鎖/訊號量/讀取所/迴圈緩衝區
spinlock在得不到鎖的時候,程式會逐一查看鎖,效能下降
訊號量在得不到鎖的時候會休眠,等到可以獲得鎖的時候,繼續執行。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.