Linux进程状态

进程管理

进程常用命令

  |-w查看当前系统信息

  |-ps进程查看命令

  |-kill终止进程

  |-一个存放内存中的特殊目录/proc

  |-进程的优先级

  |-进程的挂起与恢复

  |-通过top命令查看进程

计划任务

  |-计划任务的重要性

  |-一次性计划at和batch

  |-周期性计划crontab

进程管理的概念

进程和程序区别

1.程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的。2.程序和进程无一一对应关系。一个程序可以由多个进程共用;另一方面,一个进程在活动中有可顺序地执行若干个程序

父子进程的关系

1.子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程2.在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。3.父进程终止子进程自然终止。

前台进程和后台进程

前台进程

在shell提示处理打入命令后,创建一个子进程,运行命令,Shell等待命令退出,然后返回到对用户给出提示符。这条命令与Shell异步运行,即在前台运行,用户在它完成之前不能执行别一个命令。

后台进程

在Shell提示处打入命令,若后随一个&,Shell创建子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与Shell同步运行,即在后台运行。“后台进程必须是非交互式的”

进程的状态

◆运行状态(TASK_RUNNING)当进程正在被CPU执行,或已经准备就绪随时可由调度程序执行,则称该进程为处于运行状态(running)。进程可以在内核态运行,也可以在用户态运行。当系统资源已经可用时,进程就被唤醒而进入准备运行状态,该状态称为就绪态。这些状态(图中中间一列)在内核中表示方法相同,都被成为处于TASK_RUNNING状态。

◆可中断睡眠状态(TASK_INTERRUPTIBLE)当进程处于可中断等待状态时,系统不会调度该进行执行。当系统产生一个中断或者释放了进程正在等待的资源,或者进程收到一个信号,都可以唤醒进程转换到就绪状态(运行状态)。

◆暂停状态(TASK_STOPPED)当进程收到信号SIGSTOP、SIGTSTP、SIGTTIN或SIGTTOU时就会进入暂停状态。可向其发送SIGCONT信号让进程转换到可运行状态。

◆僵死状态(TASK_ZOMBIE)当进程已停止运行,但其父进程还没有询问其状态时,则称该进程处于僵死状态。

◆不可中断睡眠状态(TASK_UNINTERRUPTIBLE)与可中断睡眠状态类似。但处于该状态的进程只有被使用wake_up()函数明确唤醒时才能转换到可运行的就绪状态。

当一个进程的运行时间片用完,系统就会使用调度程序强制切换到其它的进程去执行。另外,如果进程在内核态执行时需要等待系统的某个资源,此时该进程就会调用sleep_on()或sleep_on_interruptible()自愿地放弃CPU的使用权,而让调度程序去执行其它进程。进程则进入睡眠状态(TASK_UNINTERRUPTIBLE或TASK_INTERRUPTIBLE)。

只有当进程从“内核运行态”转移到“睡眠状态”时,内核才会进行进程切换操作。在内核态下运行的进程不能被其它进程抢占,而且一个进程不能改变另一个进程的状态。为了避免进程切换时造成内核数据错误,内核在执行临界区代码时会禁止一切中断。

PS:

进程已死亡,但父进程没有收尸,该进程就成僵尸进程僵尸进程不打开任何文件,几乎不占内存,但是占据进程表的资源,进程表记录pid、进程状态、CPU时间等僵尸状态是每个子进程结束时必经的状态系统监控中出现大量僵尸进程,应检查其父进程代码

当一个人把寂寞当作人生预约的美丽,

Linux进程状态

相关文章:

你感兴趣的文章:

标签云: