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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章