10.1 进程概述和ps管理进程

10.1.1 什么是进程?

  进程是已启动的可执行程序的运行实例,进程有以下组成部分:

    (1.已分配内存的地址空间;

    (2.安全属性,包括所有权凭据和特权;

    (3.程序代码的一个或多个执行线程;

    (4.进程状态

  程序:二进制文件,静态 /bin/date,/usr/sbin/sshd

  进程:是程序运行的过程,动态,有生命周期及运动状态

  进程的生命周期图:

  进程的生命周期图描述:

    父进程复制自己的地址空间(fork 分叉)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程 ID(PID),满足跟踪安全性之需。PID 和 父进程 ID(PPID)是子进程环境的元素,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代。

    centos5 或 6 PID为1的进程是:init

    centos7 PID 为1的进程是:systemd

    僵尸进程:一个进程使用 fork 创建子进程,如果子进程退出,而父进程并没有调用 wait 或 waitpid 获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程。

    简单描述:父进程退出了,子进程没有退出,那么这些子进程就没有父进程来管理,就变成僵尸进程

10.1.2 进程的属性

  进程 ID(PID):是唯一的数值,用来区分进程

  父进程的ID(PPID)

  启动进程的用户 ID(UIP)和所归属的组(GIP)

  进程状态:状态分为运行 R、休眠 S、僵尸 Z

  进程执行的优先级

  进程所连接的终端名

  进程资源占用:比如占用资源大小(内存、CPU占用量)

10.1.2 使用ps查看进程工具

  1.ps 查看进程工具

    例1:常用参数:

      a:显示跟当前终端关联的所有进程

      u:基于用户的格式显示(U:显示某用户ID所有的进程)

      x:显示所有进程,不以终端机来区分

    例2:常用的选项组合是ps -aux

        注:最后一列[xxxxx] 使用方括号括起来的进程是内核态的进程。没有括起来的是用户态(用户空间)进程。

        上面的参数输出每列含意:

          USER:启动这些进程的用户

          PID:进程的ID

          %CPU 进程占用的 CPU 百分比;

          %MEM 占用内存的百分比;

          VSZ:进程占用的虚拟内存大小(单位:KB)

          RSS:进程占用的物理内存大小(单位:KB)

          STAT:该程序目前的状态,Linux 进程有5种基本状态:

            R:该程序目前正在运作,或者是可被运作;

            S:该程序目前正在睡眠当中(可以说 idle 状态),但可被某些讯号(signal)唤醒。

            T:该程序目前正在侦测或者是停止了

            Z:该程序应该已经终止,但是其父程序无法正常的终止他,造成 zombie(僵尸)程序的状态

            D:不可中断状态

            5个基本状态后,还可以加一些字母,比如:Ss、R+,如图:

            含义如下:

              <:表示进程运行在高优先级上

              N:表示进程运行在低优先级上

              L:表示进程有页面锁定在内存中

              s:表示进程是控制进程

              l:表示进程是多线程的

              +:表示当前进程运行在前台

        START:该 process 被触发启动的时间

        TIME:该process 实际使用 CPU 运作的时间

        COMMAND:该程序的实际指令

       注:

          ctrl + c   是发送 SIGINT 信号,终止一个进程

          ctrl + z   是发送 SIGSTOP 信号,挂起一个进程。将作业放置到后台(暂停)

          ctrl + d  不是发送信号,而是表示一个特殊的二进制值,表示 EOF。代表输入完成或者注销

    例3:D 不可中断状态

      例如文件执行压缩的过程会处于D+状态

     例4:ps -ef 

      e:表示显示所有进程

      f:表示显示完整格式输出

      包含的信息如下:

        UID:启动这些进程的用户

        PID:进程的ID

        PPID:父进程的进程号

        C:进程生命周期中的 CPU 利用率

        STIME:进程启动时的系统时间

        TTY:表明进程在哪个终端设备上运行。如果显示 ?表示与终端无关,这种进程一般是内核态进程。另外,tty1-tty6 是本机上面的登入者程序,若为 pts/0 等,则表示运行在虚拟终端上的进程。

        TIME:运行进程一共累计占用的CPU时间

        CMD:启动的程序名称

posted on 2024-05-23 14:41  与太阳肩并肩  阅读(6)  评论(0编辑  收藏  举报

导航