1. 程式人生 > >Android linux 知識

Android linux 知識

  1. linux 驅動死迴圈

    (1) for( ;;){ … } (2) while(1) { … }
    一般for(;;) { } 效能更優
    原因:
    for(;;) { } 兩個;; 空語句,編譯器一般會優掉的,直接進入死迴圈;while(1){} 每迴圈一次都要判斷常量1是不是等於零,因此 while 比 for 多做了這點事

  2. 字元裝置和塊裝置的區別,列舉例項

    字元裝置:字元裝置是個能夠像位元組流(類似檔案)一樣被訪問的裝置,由字元裝置驅動程式來實現這種特性。字元裝置驅動程式通常至少實現open,close,read和write系統呼叫。字元終端、串列埠、滑鼠、鍵盤、攝像頭、音效卡和顯示卡等就是典型的字元裝置。
    塊裝置:和字元裝置類似,塊裝置也是通過/dev目錄下的檔案系統節點來訪問。塊裝置上能夠容納檔案系統,如:u盤,SD卡,磁碟等。
    在核心中,和字元驅動程式相比,塊驅動程式具有完全不同的介面。

  3. 自旋鎖和訊號量在互斥使用時需要注意哪些?在中斷服務程式裡面的互斥是使用自旋鎖還是訊號量?還是兩者都能用?為什麼?
    使用自旋鎖的程序不能睡眠,使用執行時間短的任務,使用訊號量的程序可以睡眠,適合於執行時間較長的任務。中斷服務例程中的互斥使用的是自旋鎖,原因是在中斷處理例程中,硬中斷是關閉的,這樣會丟失可能到來的中斷。