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. 自旋锁和信号量在互斥使用时需要注意哪些?在中断服务程序里面的互斥是使用自旋锁还是信号量?还是两者都能用?为什么?
    使用自旋锁的进程不能睡眠,使用执行时间短的任务,使用信号量的进程可以睡眠,适合于执行时间较长的任务。中断服务例程中的互斥使用的是自旋锁,原因是在中断处理例程中,硬中断是关闭的,这样会丢失可能到来的中断。

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