进程优先级
排队的本质就是在确定优先级,在队伍的头部先享受到资源
1.优先级是什么
得到某种资源的先后顺序
2.为什么设立优先级
资源不足
3.优先级原理
PCB中的一个整形字段,数值越小,优先级越大
优先级VS权限
优先级:能得到某种资源,只不过需要等一等
权限:是否能得到某种资源
Linux优先级整形范围在60-99,Linux进程默认情况下都是80 指令ps -l可显示
Linux支持动态优先级调整的,但是我们不能直接去修改PRI,pcb中还存在一个跟优先级相关的变量NI(NICE)值,我们可以通过修改NI值来改变进程优先级 nice命令
计算方法:PRI(new)=PRI(old)(80)+NI
tips:PRI(old)每次都是80,而且nice调整最小是-20,最大是19,使得PRI在60-99区间
为什么把优先级限制在一定范围内?
OS调度的时候,较为均衡的使得每一个进程都得到调度,容易导致优先级较低的进程,长时间得不到CPU资源,成了饥饿进程。
进程性质
1.独立性
2.竞争性
3.并行
多个进程在多个CPU下分别,同时进行运行
4.并发
多个进程在一个CPU下采用进程切换的方式,使得多个进程都得到推进,叫做并发
每一个进程不是占有CPU就一直运行,每隔一段时间(时间片),会自动从CPU上剥离下来,
我们进程在运行的时候,是会使用CPU的寄存器的(例如函数返回值,程序记数器),进程所产生的数据会临时保存在寄存器中,各个进程在寄存器中形成的临时数据叫做这个进程的硬件上下文
进程切换
进程切出时,会将CPU寄存器内容(临时数据)内容保存到进程PCB中
进程切入时,会先恢复临时数据,再在被切换的代码的位置继续编译