
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
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),也保证了一定的公平性
评论
还没有任何评论,你来说两句吧!