进程管理

Linux进程管理

1、进程和程序
程序:一组指令以及参数集合,按照相应的逻辑控制计算机完成特性任务
进程:运行的程序,动态。操作系统上的基本单位,生命周期,状态

  • 操作系统以进程为单位分配系统资源
  • 每一个进程运行是独立的
  • 具有独立的地址空间,运行状态
  • 多个程序同时运行,每一个程序就是一个进程

程序和进程的区别

  • 程序是静态的,它只是一组指令的集合,不具有任何的运行意义,而进程是程序运行的动态过程。
  • 进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程。
  • 进程还具有并发性和交互性,而程序却是封闭的。

linux程序:系统、用户、固件

(指令,参数)
程序—>系统调用---->缓存(内存)---->CPU处理 执行任务
特点:静态的、封闭的

程序----运行---->进程1,进程2,进程3…
特点:  * 动态
            * 有生命周期
            * 运行状态
            * 操作系统运行的基本单位
            * 并发性、交互性

扩展:
            应用(应用程序)
            |
            内核(内核文件、内核模块、驱动)
            |   固件(芯片+程序)
            硬件

2、进程和线程
进程——线程1,线程2…——>线程把整个任务完成之后,才能运行
(linux:进程,线程——>独立的资源集),入口,序列,出口)

进程和线程的区别

  • 一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有
  • 线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程 才能被执行

3、父进程和子进程
父进程——>子进程——>子进程
            父进程的资源,权限
            运行自己的程序(exec)
            —exit()
            唤醒 |
<—————— 僵尸进程
        子进程继承父进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代码。随后,子进程可能exec自己的程序代码。通常,父进程在子进程运行期间处于睡眠(sleeping)状态。当子进程完成时发出(exit)信号请求,在退出时,子进程已经关闭或丢弃了其资源,剩余的部分称之为僵停(僵尸Zombie)。父进程在子进程退出时收到信号而被唤醒,清理剩余的结构,然后继续执行其自己的程序代码。

4、进程的管理工具

pstree 进程树 查看进程之间的关系
    -p 显示pid
    -u 显示用户
在这里插入图片描述
ps
    -a 显示所有进程
    -u 显示以用户为主的进程
    x 和au配合使用,显示完整信息
    -l:较长、较详细的将该PID的信息列出
在这里插入图片描述

  • F:代表这个程序的旗标(flag),4代表使用者为superuser;
  • S:代表这个程序的状态(STAT);
  • UID:代表执行者身份
  • PID:进程的ID号
  • PPID:父进程的ID
  • C:CPU使用的资源百分比
  • PRI:指进程的执行优先权,其值越小越早被执行
  • NI:进程的nice值,表示进程可被执行的优先级的修正数值
  • ADDR:这个是内核函数,指出该程序在内存的那个部分。如果是个执行的程序,一般就是【-】
  • SZ:使用掉的内存大小
  • WCHAN:目前这个程序是否正在运作当中,若为 - 表示正在运行
  • TTY:登入者的终端机位置
  • TIME:使用掉的CPU时间。
  • CMD:所下达的指令名称
    在这里插入图片描述
  • USER:该属于哪个使用者账号
  • PID:该进程的进程ID 号
  • %CPU:该进程使用掉的CPU资源百分比
  • %MEM:该进程所占用的物理内存百分比
  • VSZ;该进程使用掉的虚拟内存量
  • RSS:该进程所占用的固定的内存量
  • TTY:该进程是在哪个终端机上运作,若与终端机无关,则显示?。另外,tty1-tty6是本机上面的登 入者程序,若为pts/0等等的,则表示为由网络连接进主机的程序。
  • STAT:该程序目前的状态
  • START:该进程被触发启动的时间
  • TIME:该进程实际使用CPU运作的时间
  • COMMAND:该程序的实际指令

kill killall pkill
    -9 杀死进程
    -w 等待进程死亡
    -l 列出已知信号
       kill 选项 pid
说明:
只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 下面是常用的信号:
    INT 2 中断(同Ctrl+c)
    QUIT 3 退出(同Ctrl+\)
    TERM 15 终止
    KILL 9 强制终止
    CONT 18 继续(与STOP相反,fg/bg命令)
    STOP 19 暂停(同Ctrl+z)

实例1:得到指定信号值
在这里插入图片描述
实例2:先用ps查找进程,然后用kill杀掉
    命令:kill 1615
在这里插入图片描述
实例3:彻底杀死进程
    命令:kill -9 1615

pgrep
    -l:同时显示进程名和PID
    -o:当匹配多个进程时,显示进程号最小的那个
    -n:当匹配多个进程时,显示进程号最大的那个
在这里插入图片描述
htop
htop姑且称之为top的增强版,相比top其有着很多自身的优势。如下:

  • 两者相比起来,top比较繁琐
  • 默认支持图形界面的鼠标操作
  • 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行
  • 杀进程时不需要输入进程号等

安装完htop后,直接输入htop出现以下界面
在这里插入图片描述
    在上图中将输出的界面划分成了四个区域,其中: 上左区域:显示了CPU、物理内存和交换分区的信息; 上右区域:显示了任务数量、平均负载的连接运行时间等信息; 进程区域:显示出当前系统中的所有进程;这里同top显示一致; 提示区域
上图进程区域的各项分别为:
    PID:进程的标识号
    USER:运行此进程的用户
    PRI:进程的优先级
    NI:进程的优先级别值,默认的为0,可以进行调整
    VIRT:进程占用的虚拟内存值
    RES:进程占用的物理内存值
    SHR:进程占用的共享内存值
    S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态
    %CPU:该进程占用的CPU使用率
    %MEM:该进程占用的物理内存和总内存的百分比
    TIME+:该进程启用后占用的总的CPU时间
    COMMAND:进程启动的启动命令名称

提示区域
F1:显示帮助信息
在这里插入图片描述
F2:配置界面中的显示信息
在这里插入图片描述
F3:搜索进程
在这里插入图片描述
搜索到的进程会用设定的颜色标记出来,方便查看
F4:过滤器
在这里插入图片描述
F5:以树形方式显示
在这里插入图片描述
F6:排序方式
在这里插入图片描述
F7,F8:调整进程nice值
F7表示减小nice值(增大优先级),F8增大nice值(减小优先级)nice值得范围为-20-19
F9:杀死进程
选择某一进程按F9即可杀死此进程
F10:退出htop

vmstat:常见的linux监控工具
在这里插入图片描述
(参数)
lsof 文件句柄

  • -u :uname/uid 显示归属uname/uid的进程情况
  • -g: gname/gid 显示归属gname/gid的进程情况
  • -i:用以显示符合条件的进程的情况
  • -p 123:列出进程号为123的进程所打开的文件
  • -c abc : 显示出以abc开头,进程打开的文件
  • +d:/usr/local/显示目录下被进程开启的文件
  • +D:/usr/local/同上,但是会搜索目录下的目录,时间较长
  • -d 4 :显示使用fd为4的进程
    在这里插入图片描述
    losf输出各列信息的意义如下:
        COMMAND:进程的名称
        PID:进程标识符
        USER:进程所有者
        FD:文件描述符,应用程序通过文件描述符识别该文件。
        TYPE:文件类型
        DEVICE:指定磁盘的名称
        SIZE:文件的大小
        NODE:索引节点(文件在磁盘上的标识)
        NAME:打开文件的确切名称

实例:lsof -d 4 显示使用fd为4的进程
在这里插入图片描述

5、进程优先级
进程优先级划分【0-139】 (数字越小优先级越高)
【0-99】:有效实时优先级
【100-139】:非有效实时优先级——调整nice【-20,19】

进程管理;系统资源分配
进程的优先级:默认都是0
静态优先级100-139管理员手动调整优先级
动态优先级0-99数字越小优先级越高,实时优先级

nice值调整的方法:
top “r” ——enter; 输入PID——enter;输入nice值——enter
renice【-29,19】PPID
     htop F7 减 F8 加
NI:nice值【-20-19】
     renice 优先级 进程号 (top)修改优先级
在这里插入图片描述

ps -el
PRI:静态优先级-40

在这里插入图片描述
6、进程的状态
sleeping----睡眠状态
stopping----停止状态
running----运行状态
zombie----僵死状态
实时变化的

7、进程在前后台的运行、作业控制
在前台一次只能运行一个作业。
在后台可以运行多个作业
ping 192.168.1.130 >/dev/null 2>&1 &
jobs 查看后台作业;与终端,不同终端上的作业要在对应的终端上查看。

fg %job编号:把后端作业提到前端
bg %job编号: 把后台作业运行起来
ctrl +z:挂起
在这里插入图片描述
kill %job编号:先停止,再杀死。
ping 192.168.1.130 & 已经在后台运行,在前台输出结果;不影响前台作业执行

8、linux系统
1、linux系统结构,在X86平台的CPU,是如何执行内核程序和用户程序的。

  • ring0:与硬件相关或者硬件寄存器,总线控制的相关程序——内核程序。
  • ring1-2:驱动程序或者与虚拟化相关的程序。
  • ring3:用户态的程序

2、/proc 正在运行的内核信息映射
主要输出:进程信息;内存资源信息;磁盘分区信息等等

  • /proc下文件基本都是只读的,除了/proc/sys目录,它是可写的(查看和修改内核的运行参数)
  • /proc下数字命令的目录就是对于PID的进程目录
  • /proc目录中进程N的信息每一个进程中基本包含以下信息

3、/sys 硬件设备的驱动程序信息
     sysfs是基于ram文件系统和proc一样。Sysfs文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息。其实,就是在用户态可以通过对sys文件系统的访问,来看内核态的一些驱动或者设备等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值