进程管理
文章平均质量分 60
sydyh43
这个作者很懒,什么都没留下…
展开
-
程序是如何跑起来的?
1、写段小程序,然后用strace命令查看程序运行情况。 #include <stdio.h> int mian() { printf("hello world.\n"); return 0; } strace ./hello 从上图可以看出,会先调用execve系统函数对可执行程序进行解析。execve的使用方法见:执行新程序 execve()_杨博东的博客-CSDN博客_execve 2、execve系统函数处理流程 SYSCALL_DEFINE3(e原创 2022-02-11 11:24:21 · 1573 阅读 · 0 评论 -
如何变成僵尸进程
1、进程fork()后,子进程子承父业,继续运行与父进程一样的程序,但是子进程可以通过调用exec(),走向与父进程完全不同的道路(将新程序加载到旧程序的地址空间,丢弃旧的程序,进程的栈,数据段,堆栈被新程序替换)。 2、制作僵尸进程 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main() { pid_t pid;原创 2021-12-31 21:02:20 · 1150 阅读 · 0 评论 -
CFS调度算法
1、CFS调度算法,顾名思义就是完全公平调度策略。 比方说,调度延迟时间是10ms,存在两个进程A和B,那么两个进程分别占用CPU的时间是5ms。然而,阶级总是存在的,毕竟有些进程高贵些,需要消耗更多的时间。因此引入了nice值, 假如A进程nice值是0,对应的权重prio_to_weight是1024;B进程nice值是1,对应的权重prio_to_weight是820。因此,相对应的,A进程占用CPU的时间就变成了10 * 1024 / (1024 + 820)约5.6ms,B进程占用CPU时原创 2021-11-06 15:21:21 · 3694 阅读 · 0 评论 -
sleep睡眠时间的疑问
一、内核配置的tick频率 menuconfig Kernel Features Timer frequency menuconfig原创 2021-06-10 17:24:42 · 385 阅读 · 0 评论