进程和进程管理工具

进程的相关定义以及相关工具的使用

一、进程

1.内核的作用:进程的管理、文件系统、网络功能、内存管理、驱动程序、安全功能等。然后其中进程的管理是其中重要的一块。

2.进程跟程序:进程和程序是同一事物的不同时刻,进程是运行中的程序的一个副本,是被载入内存的一个指令集合。进程有它自己的进程ID号(PID)来标识。

3.task struct是Linux内核存储进程信息的数据结构格式,而多个task struct组成的链表就形成task list

4.所有的进程都是由父子关系组成的,init是第一个进程,其他的进程都是该进程的子进程,子进程都是由父进程创建的,fork(),clone()

5.特性:

(1)子进程都是由父进程创建的

(2)CoW

(3)存在生命周期

(4)UID、GID和SELinux语境决定对文件系统的存取和访问权限,通

常从执行进程的用户来继承

6.进程的五种基本状态及转换

(1)五种状态:

创建状态:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调度运                                                                  行,把此时进程所处状态称为创建状态

就绪状态:进程已经准备好,已分配到所需资源,只要分配到          CPU就能立即运行

执行状态:进程处于就绪状态被调度后,进程进入执行执行状态

阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。在满足请求时进入就绪状态等待系统调用。

终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行

7.状态之间转换六种情况

(1)运行–>就绪:1,主要是进程占用CPU的时间过长,而系统分配给该进程占用CPU的时间是有限的;2,在采用抢先式优先级调度算法的系统中,当有更高优先级的进程要                                   运行时,该进程就被迫让出CPU,该进程便由执行状态转化为就绪状态。

(2)就绪–>运行:运行的进程的时间片用完,调度就转到就绪状态。

(3)运行–>阻塞:正在执行的进程因发生某等待事件而无法执行,则进程由执行状态变为阻塞状态,如发生了I/O请求。

(4)阻塞–>就绪:进程所等待的事件已经发生,就进入了就绪队列。

8.进程优先级:

为了提高系统的效率,特意引用了队列,每一个队列代表一种优先级,将所有的进程都分到队列中。

(1)系统优先级:范围是0—139,共有140个。数字越小,优先级越高。共有140个运行队列和过期队列

(2)pri优先级:与系统优先级类似,其范围也是0—139,数字越大,优先级越高

(3)实时优先级(realtime):其范围为0—99,值越大,优先级越高

(4)nice优先级:其范围为-20—19,对应优先级100—139,其值越小,优先级越高,-20优先级最高

9.进程内存:

(1)页框是用来存储页面数据,存储Page 大小4k

(2)LRU:近期最少使用算法,用来释放内存

10.进程类型:

(1)守护进程:在系统引导过程中启动的进程,和终端无关进程,开机自动加载,启动

(2)前台进程:跟终端相关,通过终端启动的进程

(3)两者可相互转化,相互协调

11.进程状态:

(1)运行态:running

(2)就绪态:ready

(3)睡眠态:

可中断:interruptale

不可中断:uninterruptable

(4)停止态:stopped,暂停内存,但不会被调用,除非手工启动

(5)僵死态:zombie,结束进程,父进程结束前,子进程不关闭

二、进程管理工具

Pstree,ps,pidof,pgrep,top,htop,glance,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup

1.pstree 显示进程树

0.1

0.0

(1)pstree -h 高亮显示进程

0.2

(2)pstree -p 显示进程号

0.3

2.ps 显示进程的状态,将当时的进程以快照的方式显示出来,不跟踪显示进程的变化,默认显示出当前终端中的进程

ps命令支持三种格式的选项:UNIX格式,BSD格式,GNU格式

1.0

(1)BSD格式,不加横线

ps a 显示所有终端中的进程

1.1

ps x 显示与终端无关的进程

1.2

ps u 显示进程所有者的信息

1.6

ps aux显示所有终端中与终端无关的进程所有者的信息

1.4

ps f 显示进程树,等于–forest

1.5

ps o 选择定制的信息显示

1.6

ps L 显示支持的属性

1.7

(2)UNIX格式,加一个横线

ps -C+命令 指定命令 可以使用多个命令,用,隔开

1.8

ps -L 显示线程

1.9

ps -e显示所有进程,相当于-A

1.10

1.11

ps -f 显示完整格式程序信息

1.12

ps -F 显示更完整的进程信息

1.13

ps -ef 以完整的格式显示进程信息

1.14

ps -H 以进程层级格式显示进程相关信息

1.15

ps -u指定有效的用户

1.16

1.17

ps -U指定真正的用户

ps -p pid显示属于pid的子进程

1.18

3.搜索进程

(1)ps 选项 |其他命令

2.0

(2)pgrep

pgrep -t 显示与终端相关的进程

2.1

2.2

pgrep -l 显示进程名

pgrep -a 显示完整格式的进程名

2.3

pgrep -P pid 显示指定程序的子进程

2.4

4.uptime 显示当前时间,系统已启动的时间、当前上线人数,系统平均负载

3.0

 

系统平均负载:指在特定时间间隔内运行队列的平均进程数

通常每个CPU内核的当前活动进程数不大于3,那么系统的性能良好,如果每个CPU内核的任务数大于5,那么此主机的性能有严重问题

 

5.top

 

4

 

6.vmstat命令:查看虚拟内存信息

5.0

 

5.1

Procs:

r:可运行进程的个数,和核心数有关

b:处于不可中断睡眠态的进程个数

Memory:

Swpd:交换内存的使用总量

Free:空闲物理内存总量

Buffer:用于buffer的内存总量

Cache:用于cache的内存总量

Swap:

Si:从磁盘交换进内存的数据速率

So:从内存交换至磁盘的数据速率

io:

bi:从块设备读入数据到系统的速率

bo:保存数据至块设备的速率

System:

in:interrupts  中断速率,包括时钟

cs:context switch 进程切换速率

选项:-s:显示内存的统计数据

7.iostat:统计CPU和设备IO信息

6.0

 

8.dstat命令:系统资源统计,代替vmstat,iostat

7.0

 

-C: 显示cpu相关信息

7.1

-D:显示disk相关信息

7.2

-g:显示page相关统计数据

7.3

-m:显示memory相关统计数据

7.4

-n:显示network相关统计数据

7.5

-p:显示process相关统计数据

7.6

-r:显示io请求相关的统计数据

7.7

-s:显示swapped相关的统计数据

7.8

9.iotop:iotop命令是一个用来监视I/O使用状态的类top类工具。

8.0

 

 

第一行:Read和Write速率总计

第二行:实际的Read和Write速率

第三行:

10.信号:

(1)查看所有的信号:kill -l

9.0

(2)几种重要的信号:

  1. 1=SIGHUP=HUP:  无须关闭进程而让其重新读配置文件
  2. 2=SIGINT=INT:   中止正在进行的进程,相当于Crtl+c
  3. 9=SIGKILL=KILL:   强制杀死正在运行的进程

d.15=SIGTERM=TERM:终止正在进行的进程

(3)杀死进程

按PID:kill [-SIGNAL] pid…

按名称:

按模式:

三、Linux的作业控制:

1作业分为:

前台作业:通过终端启动,且启动后一直占据终端

后台作业:可通过终端启动,但启动后就转入到后台

2让作业运行于后台

运行中的作业: Ctrl+z

尚未启动的作业:COMMAND&

3.查看当前终端所有作业:jobs

4.作业控制:

(1)fg :把指定的后台作业调回前台

(2)bg:让送往后台的作业在后台继续运行

(3)kill:终止指定的作业

 

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90310

(0)
zss123456zss123456
上一篇 2017-12-17
下一篇 2017-12-17

相关推荐

  • Nginx代理MogileFS并实现负载均衡和高可用

    Nginx代理MogileFS并实现负载均衡和高可用 MogileFS nginx 负载均衡 前言 实验拓扑 实验环境 实验步骤 配置MogileFS 配置Nginx 总结 前言 上篇文章我们了解分布式系统和MogileFS的基本使用, 但是那样的架构是有问题的, 本篇文章我们来了解一下如何使用nginx-mogilefs-module-…

    大数据运维 2016-05-05
  • 命令read

    read命令是一个bash命令,它用于从键盘或标准输入中读取文本.我们可以使用read以交互的形式读取来自用户的输入.并且read还提供一种不需要按回车就能够输入参数的方法. read可以从标准输入中读取单独的一行,或者使用-u选项,从文件描述符FD中读取.并且这单独的行被分隔成多个域,第一个词被赋值给第一个变量,第一个赋值给第二个变量,以此类推,直到剩下的…

    Linux干货 2016-08-12
  • 单网卡多IP,双网卡实现负载

        有些时候会我们一个IP不够用,但是又不想加网卡,可以试试一个网卡实现多个IP,下面我们来操作一下。 生成新增IP配置文件信息;  [root@localhost network-scripts]# cat ifcfg-eth0      DE…

    Linux干货 2016-09-06
  • 第一周linux学习总结

    1、描述计算机的组成及其功能
    2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别
    3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述
    4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述
    5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的
    6、请罗列Linux发行版的基础目录名称命名法则及功用规定

    Linux干货 2017-12-04
  • 初识Linux基础

    一:计算机的组成及其基本功能 计算机主要由五大基础部件组成:控制器,运算器,存储器,输入设备,输出设备。 1、控制器:计算机的核心组件,协调各程序的运行,对计算机的各项资源进行控制分配; 2、运算器:计算机实现算术运算以及逻辑运算的部件; 3、存储器:计算机用来存放数据和程序的基本部件,存储器由若干存储单元组成,每个存储单元都有一个             …

    Linux干货 2018-03-04
  • LVS

    一 LVS工作原理 1. lvs-nat模型 lvs-nat:多目标的DNAT, 通过将请求报文中的目标地址和目标端口修改为挑选出的某RS的RIP和PORT 实现转发。 (1) RIP和DIP必须在同一IP网络,且应该使用私有地址,RS的网络要指向DIP(保证响应报文必须由VS); (2) 请求报文和响应报文都经由Director转发,较…

    Linux干货 2016-12-06