一、前台进程和后台进程
1、前台进程
在shell提示处理打入命令后,创建一个子进程,运行命令,shell等待命令退出,然后返回到对用户给出提示符。这条命令与shell异步同行,即在前台运行,用户在它完成之前不能执行别的命令。
2、后台进程
在shell提示处打入命令,若后随一个 & ,shell创建子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与shell同步运行,即在后台运行。“后台进程必须是非交互式的”
3、进程状态
在多任务处理操作系统中,每个CPU(或核心)在一个时间点上只能处理一个进程。在进程运行时,它对CPU时间和资源分配的要求会不断变化,从而为进程分配日一个状态,它随着环境要求而改变。
二、进程优先级
1、linux进程调度及多任务
每个CPU(或CPU核心)在一个时间点上只能处理一个进程,通过时间片技术,linux实际能够运行的进程(和线程数)可以超出实际可用的CPU及核心数量。linux内核进程调度程序将多个进程在CPU核心上快速切换,从而给用户多个进程在同时运行的印象
2、相对优先级nice
由于不是每个进程都与其他进程同样重要,可告知进程调度程序为不同的进程使用不同的调度策略。常规系统上运行的大多数进程所使用的调度策略为SCHED_OTHER(也称为SCHED_NORMAL),但还有其他一些调度策略用于不同的目的。SCHED_OTHER调度策略运行的进程的相对优先级称为进程的nice值,可以有40中不同级别的nice值
3、nice值解释
- nice值越高:表示优先级越低,例如+19,该进程容易将CPU使用量让给其他进程
- nice值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU
4、查看进程的nice级别
- 使用top查看nice级别
NI:实际nice级别
PR:将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39
- 使用ps查看nice级别
# ps axo pid,command,nice --sort=-nice
# ps axo pid,command,nice,cls --sort=-nice
注:TS表示该进程使用的调度策略为SCHED_OTHER
5、启动具有不同nice级别的进程
启动进程时,通常会继承父进程的nice级别,默认是0.
语法
# nice -n <优先级> command
6、更改现有进程的nice级别
- 使用top更改nice级别
r 调整进程的优先级(Nice Level)(-20最高)—— 0 ——(19最低)
- 使用shell更改nice级别
语法
# renice [-n] <优先级> [-p|--pid] <pid>...
# renice [-n] <优先级> -g|--pgrp <pgid>...
# renice [-n] <优先级> -u|--user <用户>...