执行 top 命令,观察 nice 和 pr
nice 值的范围是-20 到 +19。各位是不是觉得 nice 值越大,优先级就越高?恰恰相反,nice 值越低,优先级越高。
nice 的范围从-20 到 +19,正值表示低优先级,负值表示高优先级。0 表示不调整该进程的优先级。-20 表示一项任务非常紧急;相反的,如果 nice 值为 +19,则表示它是一个无关紧要的任务,允许所有其他任务比自己享有更多的 CPU 时间,这也是 nice 的名称来源。
pr 值叫实时优先级,范围是从 0 到 99。与 nice 值相反,pri 的值越高,进程优先级就越高。任何实时进程的优先级都高于普通进程
执行 ps -l [pid],观察 pri 值
PID:进程号
PPID:该进程的父进程号
PRI:优先级
NI:nice 值
TIME:占用 CPU 时间
nice 值不是优先级,但会影响优先级。PRI(new)=PRI(old)+(Newnice-Oldnice)
nice 的值影响了内核分配给进程的 cpu 时间片的多少。nice 越低,进程时间片越多,值(PRI)越低,进程的优先级就越高
** 进程类型
系统进程类型主要有两种。cpu 密集型和 io 密集型。I/O 密集型如字面意思一样,会把大部分时间消耗在 I/O 请求和等待 I/O 上,cpu 的真正使用率很低;而 cpu 密集型会把大部分时间用在 CPU 计算;如果知道 cpu 的时间片原理,就会明白给这两种进程分配的时间片长度相等是对资源的一种浪费。
进程运行模式
linux 进程采取抢占式的运行方法。意思就是某个优先级更高的进程获得了资源进入了就绪 (Runnable) 状态,那么它就会把当前 cpu 正在运行的进程一脚踢开,强行霸占 cpu