一。Linux内核主要有几种内核锁
主要有自旋锁和信号量
自旋锁是防止多处理器并发而引入的一种锁,在内核中大量应用于中断处理
二。Linux用户模式和内核模式
用户模式是受限模式,对内存和硬件的访问必须通过系统调用实现
内核模式是一种高特权模式,能直接访问内存和硬件
三。怎样申请大块内核内存
vmalloc()用于申请内核大块内存,特点是线性地址连续,物理地址不连续,不能直接用于DMA
kmalloc()申请小块内存,基于slab实现的,最多32 * PAGE_SIZE - 16字节的内存,16字节被业描述符结构占用,特点线性地址连续,物理地址 连续,可以用于DMA
四。用户进程间通信主要几种方式
1. 管道: 具有亲缘关系金城见的通信
2. 命名管道: 克服了管道没有名字的限制,还允许无亲缘关系进程间的通信
3. 信号: 用于通知接受进程有某种事件发生
4. 消息队列: 消息队列克服了信号承载信息量少,管道只能无格式字节流以及缓冲区大小受限等
5. 共享内存:
6. 信号量: 进程间以及同一进程不同线程间
7. 套接字
五。伙伴系统算法
1.