Swapper,warpperspective python
id为0的进程通常是一个调度进程,通常称为交换进程。这个进程是内核的一部分,它不执行磁盘上的任何程序,所以也叫系统进程。
引导进程后,内核调用id为1的Init进程。
Id是一个2页的守护进程。
对于其父进程已经终止的所有进程,它们的父进程被更改为init。
当一个进程终止时,内核会逐个检查所有活动的进程,以确定它是否是即将终止的子进程。如果是,它将进程id更改为1。这种方法确保每个进程都有一个父进程。
如果子进程在父进程终止之前终止,父进程如何做相应的检查才能得到子进程的终止状态?答案是:内核为每个子进程保留了一定量的信息,所以当终止进程的父进程调用wait或waitpid时,就可以获得这些信息。
死进程(Dead process):已经终止,但其父进程尚未对其进行处理的进程(获取已终止子进程的信息,释放其仍占用的资源)。
当init进程采用的进程终止时会发生什么?他会变成僵尸过程吗?
不要!因为init是这样编写的,无论子进程何时终止,init都会调用一个等待函数来获取它的终止状态。这可以防止系统中出现许多死进程。
Swapper 进程:
流程0:
由于历史原因,所有进程的祖先都被称为进程0、空闲进程或交换进程。它是在linux的初始化阶段从零开始创建的内核线程。这个祖先进程使用静态分配的数据结构。
在多处理器系统中,每个CPU都有一个进程0。当机器电源打开时,计算机的BIOS启动一个CPU并禁用其他CPU。正在运行的CPU上的swapper进程初始化内核数据结构,然后激活其他进程,并使用copy_process()函数创建另一个swapper进程,将0传递给新创建的swapper进程作为它们的PID。
1:流程:
进程0创建的内核线程执行init()函数,init()一次性完成内核的初始化。Init()调用execve()系统调用来加载可执行程序init。结果,init内核线程变成了一个普通的进程,每个进程都有自己的内核数据结构。在系统关闭之前,init进程仍然存在,因为它创建并监视在操作系统之外执行的所有进程的活动。
许多python培训视频可以在流行的IT软件开发工作室获得。欢迎在线学习!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。