面试题

内核

  1. Linux中主要有哪几种内核同步方法?(原子操作,自旋锁(读写自旋锁),信号量(读写信号量),互斥体,完成变量,大内核锁,顺序锁,RCU,禁止抢占,顺序和屏障)
  2. vmalloc和kmalloc的区别?

    vmalloc分配的内存虚拟地址是连续的,而物理地址则无须连续。用于申请较大的内存,虚拟内存是连续的。分配的内存在VMALLOC_START~VMALLOC_END之间。
    kmalloc确保页在物理地址上是连续的(虚拟地址自然也是连续的)。用于申请较小的,连续的物理内存。
  3. 通过伙伴系统申请内核内存的函数有哪些?(alloc_pages, _get_free_pages)
  4. 说一下对伙伴系统算法的理解。
  5. 通过slab分配器申请内核内存的函数有哪些?(kmem_cache_create/kmem_cache_alloc)
  6. 讲下中断分成上半部分和下半部分的原因,为何要分?(上半部分执行,会使得当前中断线在所有处理器上都会被屏蔽,如果一个处理程序是IRQF_DISABLED类型,它执行的时候会禁止所有本地中断。而缩短中断被屏蔽的时间对系统的响应能力和性能都至关重要。所以要尽力缩短中断处理程序,解决方法就是把一些工作放到以后去做。)
  7. 说一下对软中断和工作队列的理解,它们有什么不同?

网络

  1. 静态路由和策略路由的区别
  2. 路由转发的原理

算法

  1. 堆排序

你可能感兴趣的:(个人笔记)