2019-08-21---进程

进程

  1. 进程:正在运行的程序就是进程

    • 程序成为进程后系统或自动分配内存和运行用户
    • 进程运行中,系统会有各种指标来表示当前运行的状态
  2. 进程和程序:

    • 程序是数据和指令的集合,是静态的,可以永久存储在系统中
    • 进程是程序运行的过程,是动态的,会随着程序的终止而销毁,不会永久存在系统中
  3. 进程生命周期:

    • 父进程接收任务调度,通过fock派子进程来处理,子进程会继承父进程属性

    • 子进程在处理任务代码后,会执行推出,然后唤醒父进程来回收进程信息

    • 如果子进程处理任务过程中,父进程退出,子进程会成为僵尸状态

监控进程

  1. ps静态查看进程信息:

    • 第一列(USER ):启动进程的用户
    • 第二列(PID):进程的PID
    • 第三列(%CPU):进程占用的CPU百分比
    • 第四列(%MEM):进程占用的内存百分比
    • 第五列(VSZ):虚拟内存
    • 第六列(RSS):实际占用内存
    • 第七列(TTY):终端的次要装置号码; ?表示内核进程,与终端无关
    • 第八列(STAT):进程状态
    • 第九列(START):进程开始的时间
    • 第十列(TIME):进程占用CPU的时间
    • 第十一列(COMMAND):程序的运行指令;{}表示内核程序
    ps.png
  1. top实时查看进程信息:

    • 第一行:当前时间、系统已运行时间、当前登录用户的数量、最近1、5、15分钟内的平均负载
    • 第二行:任务的总数、运行中(running)的任务、休眠(sleeping)中的任务、停止(stopped)的任务、僵尸状态(zombie)的任务
    • 第三行:cpu状态
    字段 字段释义
    us user: 运行(未调整优先级的) 用户进程的CPU时间
    sy system: 运行内核进程的CPU时间
    ni niced:运行已调整优先级的用户进程的CPU时间
    id idle:空闲时间
    wa IO wait: 用于等待IO完成的CPU时间
    hi 处理硬件中断的CPU时间
    si 处理软件中断的CPU时间
    st 虚拟机占用真实CPU的时间
    • 第四行:内存

    全部可用内存、已使用内存、空闲内存、缓冲内存

    • 第五行:swap

    全部、已使用、空闲和缓冲交换空间

    • 第七行至N行:各进程任务的的状态监控
    字段 释义
    PID 进程ID,进程的唯一标识符
    USER 进程所有者的实际用户名
    PR 进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
    NI 进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
    VIRT virtual memory usage 虚拟内存,进程使用的虚拟内存。
    RES resident memory usage 常驻内存,驻留内存大小。驻留内存是任务使用的物理内存大小。
    SHR SHR:shared memory 共享内存
    S 这个是进程的状态。
    %CPU 自从上一次更新时到现在任务所使用的CPU时间百分比。%CPU显示的是进程占用一个核的百分比,而不是整个cpu(N核)的百分比,有时候可能大于100,那是因为该进程启用了多线程占用了多个核心,所以有时候我们看该值得时候会超过100%,但不会超过总核数*100
    %MEM 进程使用的可用物理内存百分比
    TIME+ 任务启动后到现在所使用的全部CPU时间
    COMMAND 运行进程所使用的命令。进程名称(命令名/命令行)
    • 命令:

      • 1:监控每个逻辑CPU的状况

      • i:忽略闲置和僵死进程。这是一个开关式命令

      • M:根据驻留内存大小进行排序

      • P:根据CPU使用百分比大小进行排序


        top.png
  1. STAT状态:

    • 基本状态

    • R:进程运行

    • S:可中断的睡眠状态

    • T:进程被暂停

    • D:不可中断睡眠的状态

    • Z:僵尸进程

  • 符号状态

  • s:进程是控制进程,Ss表示父进程

  • <:表示运行在高优先级上,S<优先级较高的

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

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

  • l:进程是多线程的

中断:中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求

Linux软中断与硬中断:

  • Linux 中的中断处理程序分为上半部和下半部
  • 上半部对应硬件中断,用来快速处理中断
  • 下半部对应软中断,用来异步处理上半部未完成的工作
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容