10-1 进程如何工作

作者: 見贤思齊_ | 来源:发表于2020-08-04 15:10 被阅读0次

本章将介绍以下命令:

  • ps : 显示当前所有进程的运行情况。
  • top : 实时显示当前所有任务的资源占用情况。
  • jobs : 列出所有活动作业的状态信息。
  • bg : 设置在后台中运行作业。
  • fg : 设置在前台中运行作业。
  • kill : 发送信号给某个进程。
  • killall : 杀死指定名字的进程。
  • shutdown : 关机或重启系统。

一、进程如何工作

父进程创建子进程

一个程序的运行可以触发其它程序的运行。

进程的有序进行

内核会保存每个进程的信息以便确保任务有序进行。

比如,每个进程将被分配一个称为进程ID(PID)的号码。进程ID是按递增的顺序来分配的,init 进程的PID始终为1。

1.使用 ps 命令查看进程信息

(0)ps命令简介

(1)语法格式

ps [选项]

'''
 功能: 用来查看进程信息。

 参数:

 选项:

 返回值:
'''
① 示例
Ⅰ.只输入 ps 命令
 ps
ps命令.png

输出结果列出了两个进程:进程 3260 和 进程 4001,分别对应 bash 命令和 ps 命令。

由此可见,在默认情况下,ps 命令输出的内容并不多,只是输出 和当前终端会话相关的进程信息

为了获得更多的信息,需要添加一些选项。

Ⅱ.添加 x 选项

添加 x 选项(注意:这里没有前置连字符)将告诉 ps 命令显示所有的进程,而不需要关注它们是由哪个终端控制的,使用这个选项可以查看所有进程的列表信息

 ps x
ps命令x选项.png

由于系统中运行着大量的进程,所以 ps 命令将会输出一个长列表。

把 ps 命令的输出作为less 命令的输入的方法通常很管用,它可更方便地查看显示结果。有些选项组合也会产生很长的输出行,因此最大化终端仿真窗口很有用。

Ⅲ.选项组合 aux

这是一个常用的选项组合,注意不带前置连字符。

该选项组合将会显示属于每个用户的进程信息

ps aux
ps命令aux选项组合.png
Ⅳ.为何不带前置连字符?

不带前置连字符将使得命令以“BSD模式”运行

ps命令的 Linux 版本可以模拟多种 UNIX 版本中 ps 程序的运行方式,使用这些选项将显示更多列的信息。

(2)ps 命令输出的字段信息

① PID(进程ID)

进程ID。

② TTY

代表了进程的控制终端(controlling terminal)。

是 teletype (电传打字机)的缩写。

? 表示没有控制终端

③ STAT(进程状态)

STAT 是 state 的缩写。

显示的是进程的当前状态

状态 含义
R 运行状态。进程正在运行或者准备运行。
S 睡眠状态。进程不在运行,而是在等待某事件发生,如键盘输入或者收到网络报文。
D 不可中断的睡眠状态。进程在等待 I/O 操作,如硬盘驱动。
T 暂停状态。进程被指示暂停(后续还可继续运行)。
Z 无效或“僵尸”进程。子进程被终止,但是还没有被其父进程彻底释放掉。
< 高优先级进程。进程可以被赋予更多的重要性,分配更多的CPU时间。进程的这一特性称为优先级。高优先级的进程被说成较不友好,是因为它将消耗更多的CPU时间,这样留给其它进程的CPU时间就会减少。
N 低优先级进程。低优先级进程(友好进程)只有在其它更高优先级的进程使用完处理器后才能够获得使用处理器的时间。

这些进程状态后面可以带其它地字符来表示不同的特殊进程特性。

④ TIME

表示进程消耗的CPU时间总和(即进程的运行时间)。

回到示例Ⅰ中,可以看到 bash进程和 ps进程,没有使得计算机变得忙碌。

⑤ COMMAND

执行的命令。

(3)BSD模式下ps命令输出的列字段

标题 含义
USER 用户ID。表示该进程的所有者。
%CPU CPU 使用百分比。
%MEM 内存使用百分比。
VSZ 虚拟耗用内存大小。
RSS 实际使用的内存大小。(即进程使用的物理内存RAM大小,以KB为单位。)
START 进程开启的时间。若数值超过 24 个小时,那么将使用日期来显示。

2.使用 top 命令动态查看进程信息

ps 命令可以显示有关机器运行情况的很多信息,但是它提供的只是在 ps 命令被执行时刻机器状态的一个快照。

要想查看机器运行情况的动态视图,可以使用 top 命令

(0)top命令简介

top 命令将按照进程活动的顺序,以列表的形式持续更新显示系统进程的当前信息默认每 3 秒更新一次)。

它主要用于查看系统最高(top)进程的运行情况,其名称也源自于此。

top 命令的显示内容包含2个部分:顶部显示系统总体状态信息下面显示的是一张按CPU活动时间排序的进程情况表

(1)语法格式

top

'''
 功能: 用来查看进程信息。

 参数: 

 选项:

 返回值: 包含2部分: ①顶部显示**系统总体状态信息**。
                     ②下面显示的是一张按CPU活动时间排序的进程情况表。
'''
top命令1.png

下图,是我过了几秒钟的截图,可以看到是有区别的,这是因为 top 命令是实时更新。

top命令2.png
① 顶部信息中的字段
字段 含义
1 top 程序名。
1 17:01:15 当前时间。
1 up 7:34 正常运行时间(uptime)。从机器最后一次启动开始计算的时间总数。在上例中,系统已经运行了大约7.5小时。
1 1 user 有 1 个用户已登录。
1 load average: 负载均值:指的是等待运行的进程数;即可共享CPU资源的处于可运行状态的进程数。显示的 3 个值分别对应不同的时间段:第1个对应的是前60秒的均值;第 2 个对应的是前 5 分钟的均值;第 3 个对应的是前 15 分钟的均值。该值小于 1.0 表示该机器并不忙。
2 任务(tasks) 统计进程数及各个进程的状态信息。
3 2.7%us 2.7%的CPU时间被用户进程占用(此指处于内核外的进程)
3 0.7%sy 0.7%的CPU时间被系统进程(即内核进程)占用
3 0.0%ni 0.0%的CPU时间被友好进程(即低优先级进程)占用
3 96.7%id 96.7%的CPU时间是空闲的。
3 0.0%wa 0.0%的CPU时间用来等待 I/O 操作
4 Mem: 显示物理RAM(随机存取内存)的使用情况。
5 Swap: 显示交换空间(虚拟内存)的使用情况。

(2)可接受键盘指令

top 命令可以接受许多键盘指令,其中最常用的有 2 个:

  • 一个是h:输入后将显示程序的帮助页面。
  • 另一个是 q:用来退出 top 命令(不输入 q 的话,不会返回shell提示符)。

相关文章

  • 10-1 进程如何工作

    本章将介绍以下命令:ps : 显示当前所有进程的运行情况。top : 实时显示当前所有任务的资源占用情况。jobs...

  • Binder使用

    Binder 在安卓使用Binder实现进程间通信需要做哪些工作 如何模糊跨进程调用与进程内调用? 如何使用AID...

  • 操作系统是如何管理CPU的

    CPU的工作原理 tips 如何让CPU忙碌起来?? 如何查看电脑中的进程 多进程如何组织(操作系统组织的核心) ...

  • Vicky的ScalersTalk第六轮新概念朗读持续力训练Da

    练习材料: Lesson 10-1 Silicon valley ˈlɛsn 10-1 ˈsɪl...

  • 进程调度

    目标 本章将讨论Linux内核是如何进行进程调度的,进程调度程序(也称为调度器)的工作与实现原理。 进程调度程序负...

  • 【译】深入了解现代web浏览器(三)渲染进程内部工作

    渲染进程的内部工作 这是我们了解浏览器如何工作4篇博客的第3篇。之前,我们介绍了 多进程架构 和 导航流程。在本文...

  • Linux进程

    进程知识 发现问题 什么是进程 操作系统为什么需要进程 进程如何实现 如何进行进程管理 进程和CPU的关系是什么 ...

  • 2.进程管理

    进程管理 进程是操作系统的基本概念,本节主要总结Linux内核如何管理进程:进程在内核中如何创建,消亡。 1.进程...

  • 操作系统是如何管理内存的

    计算机是如何工作的? 一个程序在执行时,程序有进程睡眠时就会把该进程交换到磁盘中,那么如何记录程序的地址呢? 程序...

  • Nginx系列-初始化

    Nginx 进程分为主进程(master process)和若干工作进程(work process),其中工作进程...

网友评论

    本文标题:10-1 进程如何工作

    本文链接:https://www.haomeiwen.com/subject/gesvrktx.html