UID:用户唯一标识

PID:进程id

PPID:父进程id

PRI:进程优先级(默认80)

NI:优先级修正数据(nice)

真实优先级:PRI(默认)+NI

nice范围[-20,19]

linux优先级范围[60,99]

优先调整操作

启动进程时设置 nice 值(nice 命令)

nice -n <优先级> <命令>

修改已运行进程的 nice 值(renice 命令)

renice <新优先级> -p

查看 nice 值

ps -l -p # 查看 NI 列

top # 按 `r` 交互式调整

补充概念

并行:多个进程在多个cpu分别同时进行,称为并行

并发:多个进程在一个cpu进行进程切换的方式,在一段时间内让多个进程得以推进,称之为并发

如图:上面是并发,下面是并行

进程调度:

Linux真实的调度算法:

一个cpu,一个运行队列

在一个运行队列中:
queue[140]:struct task_struct*queue[140]:里面是140个优先级队列指针(100个实时优先级,不考虑),剩余40个对应优先级范围,本质就是一个hash表

bitmap[5]:位图(unsigned int) 比特位对应queue的哪一个slot (一个unsigned int 有32位,32*5=160)

nr_active:活跃进程

算法本质:通过位图一一对应,无需复杂的查找,新旧进程相互切换达到O(1),也保证了一定的公平性