
进程管理
文章平均质量分 82
zhuguanghong
这个作者很懒,什么都没留下…
展开
-
dup_task_struct©_thread &kernel_thread函数分析(v4.4-rc6)
dup_task_struct©_thread &kernel_thread函数分析原创 2022-11-06 14:08:22 · 313 阅读 · 0 评论 -
linux进程管理-创建进程
/设置了CLONE_FS则增加fs_struct引用计数共享父进程的fs_struct,否则新分配fs_struct然后将值从父进程的fs_struct拷贝过来。clone_flags 创建的标志位,stack_start和stack_size设置新的进程的栈,parent_tidptr和child_tidptr用于存放新进程父进程的pid和新进程本身的pid。原创 2022-10-16 15:17:13 · 370 阅读 · 0 评论 -
linux 进程管理---硬件上下文切换
/进行正在的切换动作,注意这里返回之后则是运行到了next进程的switch_to函数剩余部分,则是执行next进程,保存的pc地址也就是这里的return指令地址。mov x10, #THREAD_CPU_CONTEXT //从上述定义可以看出是thread.cpu_context相对于task的偏移。tls_thread_switch函数则是保存旧的current->thread.tp_value加载新的next->thread.tp_value。//保存非通用寄存器的值。原创 2022-10-15 22:44:13 · 749 阅读 · 0 评论 -
linux进程管理-----进程资源限制
define RLIMIT_CORE 4 异常退出进程内存转储文件的大小,当一个进程异常终止时内核在进程的当前目录下创建内存信息转储文件之前检查这个值。# define RLIMIT_AS 9 进程地址空间的最大数,当进程使用malloc等相关函数扩充进程自己的地址空间时,内核检查这个值。#define RLIMIT_STACK 3 栈大小的最大值,内核扩充进程的用户态堆栈之前检查这个值。原创 2022-10-10 20:02:48 · 1045 阅读 · 0 评论 -
linux进程管理-----等待队列函数
#define wake_up(x) __wake_up(x, TASK_NORMAL, 1, NULL)#define wake_up_nr(x, nr) __wake_up(x, TASK_NORMAL, nr, NULL)#define wake_up_all(x) __wake_up(x, TASK_NORMAL, 0, NULL)原创 2022-09-28 20:20:30 · 781 阅读 · 0 评论 -
linux 进程-----进程之间关系
TASK_RUNNING 运行状态TASK_INTERRUPTIBLE 可被信号唤醒状态TASK_UNINTERRUPTIBLE 不可被信号唤醒状态TASK_STOPPED 进程执行被暂停状态TASK_TRACED 进程执行已由debugger跟踪状态EXIT_ZOMBIE 进程死亡等待父进程回收状态EXIT_DEAD 进程死亡正在被回收状态。原创 2022-09-27 20:23:01 · 401 阅读 · 0 评论 -
进程exit类函数分析
static inline int signal_group_exit(const struct signal_struct *sig){ return (sig->flags & SIGNAL_GROUP_EXIT) || (sig->group_exit_task != NULL);//group_exit_task是处理退出信号的进程,也就是判断是否存在SIGNAL_GROUP_EXIT或者判断sig->group_exit_task不为空}...原创 2021-08-16 20:47:44 · 679 阅读 · 0 评论 -
进程相关小常用函数分析(arm)
register unsigned long current_stack_pointer asm ("sp");//表示访问current_stack_pointer 直接使用sp寄存器里的值。static inline struct thread_info *current_thread_info(void){ return (struct thread_info *) (current_stack_pointer & ~(THREAD_SIZE - 1));//将t...原创 2021-08-16 15:22:00 · 926 阅读 · 0 评论