当前位置: 技术问答>linux和unix
linux进程撤消,PCB怎么被撤消的
来源: 互联网 发布时间:2015-05-18
本文导语: 在调用exit()(或do-exit())释放进程占有的各种资源时,将(struct task-struct *)p->state设为TASK_ZOMBIE,然后调用schdule()进行进程调度,将p从runqueue中删除。此时进程的状态是TASK_ZOMBIE,它应该只剩一个PCB在系统PCB...
在调用exit()(或do-exit())释放进程占有的各种资源时,将(struct task-struct *)p->state设为TASK_ZOMBIE,然后调用schdule()进行进程调度,将p从runqueue中删除。此时进程的状态是TASK_ZOMBIE,它应该只剩一个PCB在系统PCB双向链表中了,在pidhash[]中也没有unhash掉。我查了一下,REMOVE_TASK_STRUCT和unhash_process都是由sys-wait4()调用的。请问在do-exit()调用schedule()之后,系统是如何删除掉PCB的?请把调用过程说清楚一点,分不够,可以再加!
|
I sorry, i no idea for this arictler.