天天看点

linux中,关于进程和作业的管理

linux中关于进程与作业的管理

首先说一下什么是进程?

在linux中,每触发一个事件,就会产生一个进程,系统中有很多的进程,系统是如何识别

不同的进程的呢?就像我们人一样,第个人都有一个身份证号,用来标识每一个人,进程也一样,每个进程都有一个ID号,称为PID。我们知道了,每个进程都有一个唯一的PID号,那么什么是进程?

进程就是一段内在空间,里面包含很多线程。进程就像代理一样,我们通过进程调用系统资料,管理计算机,进程包含

1.PID

2.代码段或指令

3.变量

4.库文件

5.要操作的文件

进程都在内在中,可以用ls /proc 看一下内存。在内在中凡是以数字命名的都是相关的进

程。PID号的范围为1到32767

其中1属于INIT进程,让linux启动起来的初始化linux的。

其它所有的进程都是init派生出来的,直接的或间接的派生的。

我们知道,内核的功能有以下几种

1.内在管理

2.进程管理

3.硬件管理

4.cpu管理

5.文件系统管理

所以,进程都是由内核管理的

 为了让cpu执行不同的进程,把cpu分成不同的cpu时间片(time slice),用来执行不同的进程的。

在内存中有进程的队列,进程优先级高的先执行,相同的先来的先执行,分给不同的时间片,所以进程是有优先级的,进程的优先级是用nice值来表示的。

nice的值越大,表示优先级越低,相反,nice值越小,表示进程的优先级越高。nice值的范围是-20到19.

进程的类别:

1.用户进程,或者与终端有关的进程

2.守护进程,或与终端无关的进程

进程的状态

进程有不同的状态,分别用以下字母表示

D:不可被的睡眠(通常是I/O文件)

R:正在运行或等待运行的(已经有资料了,只等CPU时间了)

S:可中断的睡眠

T:stop,表示停止了,不执行了

W:paging,表示不再使用了

X:dead,死了的进程,已从内存中清除,所以在内存中看不见了

Z:僵尸进程,没办法清除了

进程的优先级

进程的优先级用nice值表示,nice值的范围为-20到19,值越大,优先级就越小

用命令ps aux查看系统中的进程,STAT那一行,表示进程的状态,可以看到进程状态后面的字母通常有一些修饰符,如 < ,N, L, s,l,+,各修饰符意思如下

<,表示优先级高

N, 表示优先级低

L,只能在物理内存中运行

s,表示睡眠状态

l,表示多线程的

+,表示在前台运行的

如何改变进程的优先级?

可以改变进程的nice值来改变进程的优先级的,通常只能往低优先级改变,不能由低到高的改变,默认的nice=0. 我们可以在某个时刻重新调整nice的值。用到nice命令。语法如下:

nice -n num command

-n后面接-20到19之间的一个数字,最后面接一个要产生进程的命令

如改变ifconfig的优先级,如下

1.启动之前改变 nice -n -1 ifconfig

这样就把ifconfig的优先级改为-1了。这个优先级已经很高了

2.如果启动之后如何改优先级呢?这时要用到renice命令了,语法如下

renice n -p PID

如 renice 3 -p 2435

就把进程号是2435的那个进程的nice值改变为3了。

我们会改变nice的值了,如何查看进程的nice的值呢?

可以这样,如下

#ps axo pid,nice

指定两个字段pid,nice

大家可以试一下

动态查看进程

我们用ps查看进程,只是查看某一时刻的进程,如何查看动态的进程呢?

用到top命令

在命令行下直接输入top回车就行了

默认以使用的内存大小排序,每隔5秒刷新一次

查看进程

如何查看进程,用到ps命令,用法如下

ps [axu]

a:与终端相关的进程

x:与终端无关的进程

u :以用户导向显示进程

o:自己可以指定字段查看

可以在命令下输入ps aux 看一下

如以下字段

%cpu:表示cpu的使用率

%mem:表示内存的使用率

VSZ:占用虚拟内存的大小,以K为单位

TTY:表示终端,若为 ? ,表示跟终端无关

START:启动的时间

TIME:CPU的累积时间,即总共获得cpu的时间

COMMAND:哪一个命令发起的进程

如何结束一个进程

用到命令Kill,用法如下

kill n

直接kill加进程号就可以将一个进程结束了

作业的管理

作业管理是在bash环境下使用的,也就是说:“当我们登陆系统获取一bash sell之后,

在单一模式终端界面下,同时管理多个作业”。

一个作业可以发起多个进程,作业和进程不是一一对应的,在启动的时候后面加一个&。表

示在后台运行

也可以用ctrl+z将当前的一个作业放在后台运行

查看当前放在后台运行的作业,jobs

后台作业移动到前台用到fg

前台作业移动到后台用bg

如fg %1 ,表示把第1个后台作业放在前台来

fg后面的%号是可以省略的,后面直接跟上作业号

jobs -l:查看作业执行的进程

jobs -r:查看正在运行的作业

jobs -s:仅列出停止的作业

关于进程和作业的管理,就先写到这

继续阅读