全球旧事资料 分类
能睡眠,使用信号量的进程可以睡眠。中断服务例程中的互斥使用
的是自旋锁,原因是在中断处理例程中,硬中断是关闭的,这样会丢失可能到来的中断。
13写一个中断服务需要注意哪些?如果中断产生之后要做比较多的事情你是怎么做的?
一、中断服务程序要注意快进快出,在中断服务程序里面尽量快速采集信息,包括硬件
信息,然后推出中断,要做其它事情可以使用工作队列或者tasklet方式。也就是中断上半
部和下半部。
第二:中断服务程序中不能有阻塞操作。
第三:中断服务程序注意返回值,要用操作系统定义的宏做为返回值,而不是自己定义
的OK,FAIL之类的。
14字符型驱动设备你是怎么创建设备文件的,就是dev下面的设备文件,供上层应用程
序打开使用的文件?
mk
od命令结合设备的主设备号和次设备号,可创建一个设备文件。
15li
ux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些?
内核空间中存放的是内核代码和数据,而进程的用户空间中存放的是用户程的代码和数
据。
1使用API2使用proc文件系统3使用sysfs文件系统kobject4
etli
k
5文件6使用mmap系统调用:可以将内核空间的地址映射到用户空间。7信号:从内
核空间向进程发送信号。
16li
ux中内存划分及如何使用?虚拟地址及物理地址的概念及彼此之间的转化,高端内存概念?4G的进程地址空间被人为的分为两个部分用户空间与内核空间。用户空间从0到3G(0xC0000000),内核空间占据3G到4G。用户进程通常情况下只能访问用户空间的虚拟地址,不能访问内核空间虚拟地址。只有用户进程进行系统调用(代表用户进程在内核态执行)等时刻可以访问到内核空间。虚拟地址即逻辑地址,是指由程序产生的与段相关的偏移地址部分。物理地址physicaladdress放在寻址总线上的地址。地址空间大于1G的内存区域称之为高端内存17li
ux中中断的实现机制,tasklet与workqueue的区别及底层实现区别?为什么要区分上半部和下半部?
内核把中断处理分为两部分:上半部(tophalf)和下半部(bottomhalf),上半部(就是中断服务程序)内核立即执行,而下半部(就是一些内核函数)留着稍后处理。下半部运行时是允许中断请求的,而上半部运行时是关中断的,这是二者之间的主要区别。
18li
ux中断的响应执行流程?中断的申请及何时执行何时执行中断处理函数?
19li
ux中的同步机制?spi
lock与信号量的区别?Li
ux中的同步机制一FutexFutex是一种用户态和内核态混合机制,所
以需要两个部分合作完成,li
ux上提供了sys_futex系统r
好听全球资料 返回顶部