例:
例:SPF SRTN 做题时为特别说明,所提到的"短作业/进程优先级算法"默认是非抢占式的在所有进程同时可运行或所有进程都几乎同时到达时,采用SJF调度算法的平均等待时间、平均周转时间最短(主要看前提条件,如果选择题中出现,其他三项没有更合适的时候可去掉前提条件)不过不加前提条件,SRNT算法的平均等待时间、平均周转时间最短严格的来说,SJF的平均等待时间、平均周转时间不一定最少,但相比于FCFS,SJF会更短一些
例:SPF SRTN
例 这三种算法不关心"响应时间",不区分任务的紧急,适用于早起的批处理系统,不适用于交互式系统
例
例 常用与分时操作系统,更注重"响应时间",因而此处不计算周转时间如果时间片太大,使得每个进程都可以在一个时间片内就完成,则时间片轮转调度算法退化为先来先服务调度算法,并且增大响应时间。因此时间片不能太大进程调度、切换是有时间代价的,因此如果时间片太小,会导致进程切换过于频繁,系统会花大量的时间来处理进程的切换,从而导致进程执行的时间比例减少。可见时间片不能太小(一般来说,设计时间片时要让切换进程的开销不超1%)
例:非抢占式 抢占式 就绪队列未必只有一个,可以按照不同的优先级来组织。另外,也可以把优先级高的进程安排在更靠近队头的位置根据优先级是否可以动态改变,可分为静态优先级和动态优先级静态优先级:创建进程时确定,之后不会改变动态优先级:创建进程时有一个初始值,之后会根据情况动态地调整优先级通常(如何设置各类进程的优先级): *系统进程优先级>用户进程 *前台进程优先级>后台进程 *操作系统偏好于I/O进程(或称I/O繁忙性进程。I/O设备与CPU可以并行工作,如果优先级先让I/O开始工作,则资源利用率、系统吞吐量都会得到提升)什么时候调整 *可以从追求公平、提高资源利用率等角度考虑 *如果某进程在就绪队列中等待时间过长,则可以考虑适当提高其优先级 *如果某进程占用处理机时间过长,适当降低其优先级 *如果发现一个进程频繁的执行I/O操作,适当提高其优先级
例:非抢占式 抢占式
例 这三种算法更适合用于交互式系统