linux进程概念(二)
进程状态:就绪,运行,阻塞
Linux进程状态:
运行态(R):
一个正在运行的进程,或者只要拿到时间片就可以运行的进程就叫做运行态
可中断睡眠态(S):
可中断的睡眠状态的进程会睡眠直到某个条件变为真,如产生一个硬件中断、释放进程正在等待的系统资源或是传递一个信号都可以是唤醒进程的条件。
不可中断睡眠态(D):
不可中断睡眠状态与可中断睡眠状态类似,但是它有一个例外,那就是把信号传递到这种睡眠状态的进程不能改变它的状态,也就是说它不响应信号的唤醒。
停止态(T):
指的是进程什么都没有执行,什么都不做的状态
僵尸(死)态(Z):
处于僵死的进程——进程退出后,资源没有完全释放(没有完全退出)
死亡态(X):
指的就是进程退出了,结束了。
在进程状态里面我主要学习了僵尸态,下面是僵尸态的一些概念
**僵尸进程:**处于僵死的进程——进程退出后,资源没有完全释放(没有完全退出)
僵尸进程是如何产生的呢?
由于子进程先于父进程退出,将自己的退出原因保存在pcb中,操作系统检测到子进程退出,因为父进程还没有退出,所以不敢随意退出释放资源,信号通知到父进程后,由于父进程在执行其他程序,没有时间指示子进程退出,导致子进程的资源一直没有释放,那么这个子进程就处于僵死态,称为僵尸进程。
僵尸进程的危害
僵尸进程的危害主要在于,会造成资源泄露,而且一个用户在操作系统下,能够创建的进程是有限的,而僵尸进程如果没有释放,那么可能导致新进程创建失败
销毁父进程就可以杀死僵尸进程
**孤儿进程:**父进程先于子进程退出,子进程成为孤儿进程,运行在后台,父进程成为1号进程
**守护进程/精灵进程:**孤儿进程长时间运行在后台,会演变成守护进程