#学习总结自:04 进程优先级及nice_哔哩哔哩_bilibili
概念:上下文切换(英语:context switch),又称环境切换,电脑术语,是一个存储和重建CPU的状态 (内文),因此令多个进程(process)可以分享单一CPU资源的计算过程。要切换CPU上的进程时,必需先行存储目前进程的状态,再将欲运行的进程之状态读回CPU中。
人话:p1和p2两个进程,把p1中的一些信息、程序计数器、变量、程序运行到哪了,一些寄存器里存储的值保存下来 ,再去加载p2,运行p2。称为上下文切换,切换执行环境。
调度算法
FIFO:first in first out,
先来的先处理,后来的后处理,被CPU调度
p1:20ms
p2:40ms;
p3:5ms
算法简单,放在队列中排序就好,劣势效率低
STF(short come first)
谁进程时间短,谁先被调度。
p1:1000ms
p2:40ms
p3:5ms
同时到达
p3>p2>p1
优势:整体等待时间下降,劣势:长时间进程先到还是先执行
STCF:short complete first
谁先完成谁先被调度,抢占式。
p1:1000ms
p2:40ms
p3:5ms
p1 -----10ms-----p2>p1>p3(此时p3来了可以抢占)>p1
后来的时间短的可以抢占前面的
RR轮询方式
把1s分为很多时间片,把这些时间片分给每一个进程
1s内多个进程是并行进行。
进程队列
局部队列:多个cpu,每个cpu都有自己的进程,每个CPU从自己的队列中取进程然后执行。
进程优先级:
每个进程都有前后优先级,查看优先级ps -l (linux)
进程的nice值, 对其他进程的好的程度,nice值越高,优先级越低,越不会抢占cpu,得到cpu调度的时间越少
对于短作业优先调度算法(SJF),属于非抢占算法
题目来源:操作系统期末复习题(短作业优先调度算法SJF)_哔哩哔哩_bilibili
周转时间:完成时间-提交时间
带权周转时间:周转时间/运行时间
进程 到达时间 开始时间 运行时间 完成时间 周转时间
A 8:00 8:00 120min 10:00 120min
B 8:50 10:30 50min 11:20 150min
C 9:00 10:00 10min 10:10 70min
D 9:50 10:10 20min 10:30 40min
相反,抢占式优先级调度算法就是时间到了谁的优先级高谁先运行,有限数越大优先级越高
优先级分为静态优先级和动态~,静态:创建进程时确定,之后不变,动态:创建进程有初始值,之后动态调整优先级。