嵌入式软件刷题日记【第一天】

1.什么是同步IO,什么是异步IO

同步就是在发出一个功能调用时,会一直阻塞等地结果。异步就是在发出一个功能调用时,无需阻塞等待结果,当结果产生一般通过状态,回调等方法来通知调用者。
同步 IO 指的是程序在执行 IO 操作时,会阻塞其他操作,直到 IO 操作完成后才会继续执行。
异步 IO 指的是程序在执行 IO 操作时,不会阻塞其他操作,可以继续执行其他操作。在 IO 操作完成后,程序会收到一个通知或回调,告诉程序 IO 操作已经完成。

2.linux中进程都有哪些状态

(1)就绪态(Readay):进程已获得运行所需资源,正处于就绪队列中,等待调度器调度
(2)R运行状态(runing):进程正在运行;
(3)S睡眠状态(sleeping):进程在等待事件完成;(浅度睡眠,可以被唤醒)
(4)D磁盘睡眠状态(Disk sleep):不可中断睡眠(深度睡眠,不可以被唤醒,通常在磁盘写入时发生)
(5)暂停状态(stopped):可以通过发送SIGSTOP信号给进程来停止进程,可以发送SIGCONT信号让进程继续运行
(6)X死亡状态(dead):该状态是返回状态,在任务列表中看不到;
(7)Z僵尸状态(zombie):子进程退出,父进程还在运行,但是父进程没有读到子进程的退出状态,子进程进入僵尸状态;

3.挂起态和睡眠态的区别

挂起态和睡眠态是操作系统中两种不同的进程状态。
挂起态(Suspended)指的是进程被暂停执行,但是依然保留在内存中,并且它的资(如内存)依然被占用,可随时恢复执行。
睡眠态(Sleeping)指的是进程被挂起执行,并且进入睡眠状态。并且它也不占用资源。睡眠态的进程在接收到特定的信号或事件时,才会被唤醒并恢复执行。
阻塞态(Blocked state)是指进程因为某些原因被阻塞,无法执行。阻塞的原因可能是进程等待某个资源,或者进程在等待某个事件发生。阻塞态的进程也不会占用处理器资源,但是与睡眠态不同的是,阻塞态的进程不能被唤醒,需要等待资源或者事件发生后自行转换到就绪态。
总的来说,挂起态和睡眠态的区别在于是否可以被唤醒;而阻塞态和睡眠态的区别在于是否需要等待特定的事件发生。

4.什么是优先级翻转,如何避免优先级翻转?

优先级翻转指的是一个具有中等优先级的任务比一个更高优先级的任务先执行。我们可以采用带有优先级继承机制的互斥量来避免优先级翻转。

5. linux驱动程序的作用是什么?

设备驱动连接操作系统和硬件。设备驱动程序是一种可以使计算机与设备进行通信的特殊程序,可以说相当于硬件的接口。操作系统只有通过这个接口,才能控制硬件设备的工作。

6:Linux驱动程序的分类有哪些?

Linux将硬件设备分为3大类,分别是字符设备、块设备和网络设备。
(1)字符设备是指那些能一个字节一个字节读取数据的设备,如键盘鼠标等,常见的SPI/I2C/UART默认也是字符设备。
(2)块设备与字符设备类似,一般是像磁盘一样的设备。
(3)网络设备主要负责主机之间的数据交换。与字符设备和块设备完全不同,网络设备主要是面向数据包的接收和发送而设计的。

7.内核程序中申请内存和应用程序时申请内存有什么区别?

应用程序的内存申请,例如C/C++可以使用malloc函数,与内核的kmalloc(),kzalloc(), vmalloc(), alloc_page()等函数相比,比较像vmalloc机制,即虚拟地址申请,物理地址不一定连续,区别在于,应用程序malloc不会做分配物理页的动作,交由内核去申请,而vmalloc本身在内核中会执行这个动作。

8.请你讲一讲Linux中断的原理和开发方法?

分为上半部分和下半部分,上半部分处理紧急执行的操作,剩下的由下半部分去执行。

9.static修饰局部变量和全局变量会有什么效果?

修饰局部变量会改变变量生命周期。修改全局变量,则限定其适用范围,仅在本文件使用。但是注意,即在函数执行期间,静态局部变量的值不会被重置为初始值。
例如,在下面的代码中,静态局部变量x的初始值是0,在第一次调用foo函数后,x的值变为1,在第二次调用foo函数时,x的值仍然是1,而不是0。

void foo()
{
    static int x = 0;
    x++;
    printf("x=%d\n", x);
}

int main()
{
    foo();
    foo();
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值