《操作系统》概念上分为三种状态
阻塞到就绪:等待的事件发生了
就绪到运行:进程调度程序为之分配了处理机后,该进程便由就绪状态转变运行
运行到就绪:时间片已用完而不得不让出处理机,于是进程从运行状态转变就绪
运行到阻塞:因为某个事件中断
R (TASK_RUNNING),可执行状态
表明进程要么是在运行中要么在运行队列里。
S (TASK_INTERRUPTIBLE),可中断的睡眠状态。
僵尸状态
进程占有的所有资源将被回收,除了task_struct结构(以及少数资源)以外,这会导致内存泄漏。
内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。---引用自百度百科
一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程。 但是如果该进程的父进程已经先结束了,那么该进程就不会变成僵尸进程(变成孤儿了), 因为每个进程结束的时候,系统都会扫描当前系统中所运行的所有进程, 看有没有哪个进程是刚刚结束的这个进程的子进程,如果是的话,就由Init 来接管他,成为他的父进程。
在操作系统领域中,孤儿进程指的是在其父进程执行完成或被终止后仍继续运行的一类进程。这些孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。