- 博客(4)
- 收藏
- 关注
原创 深入理解linux进程切换
子进程会继承父进程的优先级。每个进程使用CPU的顺序由进程已使用的CPU虚拟时间(vruntime)决定,已使用的虚拟时间越少,进程排序就越靠前,进程再次被调度执行的概率也就越高。内核堆栈栈顶寄存器sp代表进程内核堆栈(保存函数调用历史),进程描述符(最后的成员thread是关键)和内核堆栈存储于连续存取区域中,进程描述符存在内核堆栈的低地址,栈从高地址向低地址增长,因此通过栈顶指针寄存器还可以获取进程描述符的起始地址。这些寄存器从一个进程的状态切换到另一个进程的状态,进程切换的关键上下文就算完成了。
2023-04-26 09:08:55
335
1
原创 以time/gettimeofday系统调用为例分析ARM64 Linux 5.4.34
Linux源代码中的arch/x86/entry/syscalls/syscall_32.tbl和arch/x86/entry/syscalls/syscall_64.tbl 分别定义了32位x86和x86-64的系统调用内核处理函数,它们最终通过脚本转换按照系统调用号依次存入ia32_sys_call_table和sys_call_table数组中。do_int80_syscall_32和do_syscall_64的代码如arch/x86/entry/common.c。
2023-03-30 21:55:02
231
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人