C 语言
指针函数 和 函数指针的区别
# 指针函数
int * fun();
# 函数指针
int (*fun)();
volite 关键字优化的问题
https://www.yuque.com/u762558/ucbsrb/hlngwb
应用
父进程怎么回收子进程的资源?
wait 函数。
内核
自旋锁和互斥锁的差别
自旋锁 不会睡眠,将会一直忙等待。
互斥锁 得不到就会线程阻塞。
信号量
一个计数器, 用于对多个进程对共享资源的同步访问。
中断里面可以调用kmalloc 么
可以, 中断服务函数需要响应快速。
使用 GFP_ATOMIC 标志可以在中断函数里面调用。这是一个原子操作。
可以在中断服务程序执行malloc吗?
kmalloc vmalloc malloc 差别
自动驾驶公司
Cache 的工作原理
进程切换的时候需要都tlb做什么事? 什么是asid
一般性能优化是什么步骤?
有哪些cache 和 内存一致性出问题的情况。
请描述一下mmap
Linux 内核的page cache是什么?
中断发生会从那几个方面影响程序性能?每个方面影响的程度大概是多少了?
为什么编译器以结构体最大的成员size 对齐整个结构体的大小?
为什么总线写要比总线读要快?
软件版本管理应该有哪些需求?
如果同时使用两把锁,要注意什么避免死锁?
操作系统
操作系统如何进行进程的管理
进程控制块到底存储了哪些信息?
- 每一个进程都需要包含一个页表 TLB。
- 包含很多个段信息描述结构体
- 比如代码段, 全局变量段, 包含动态库数据的段,
- 进程需要包含当前PC指针指向的地址。
- 换句话说,就是需要知道当前进程执行到哪里了。
进程的生命周期管理
进程的几个状态
分为三态和五态。
在内核中有五态。
- 运行态
- 就绪态
- 挂起态(阻塞)
- 创建态
- 终止态
运行态: