4、 进程调度
a) 进程的定义:进程是程序在处理机上的一次执行过程,包括程序、数据以及进程控制块等信息。
b) 进程调度的定义:如上已给出
c) 进程调度程序的主要工作
i. 记录系统中所有进程的有关情况及状态特征
ii. 选择获得处理机的进程
iii. 处理机分配
d) 进程调度的原因
i. 当前运行进程运行结束
ii. 当前运行进程因某种原因,从运行状态进入阻塞状态
iii. 当前运行进程执行某种原语操作,进入阻塞状态
iv. 执行完系统调用等系统程序后返回用户进程
v. 在采用剥夺调度方式的系统中,高优先级的进程需要使用处理机
vi. 在分时系统中,分配给进程的时间片已用完
e) 进程调度的方式
i. 定义:是指当某一个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要进行处理,此时该如何分配处理机
ii. 抢占方式:又称剥夺方式、可剥夺方式、可抢占方式,可以被其他进程抢走处理机。
iii. 非抢占方式:又称非剥夺方式、不可剥夺方式、不可抢占方式,直到该进程自动放弃处理机,否则不能抢走处理机。
5、 调度的算法
a) 先来先服务调度算法(First Come First Served,FCFS):按作业或进程达到的先后顺序进行调度。
i. 优点:算法简单,有利于长作业,有利于CPU繁忙型;
ii. 缺点:效率较低,不利于短作业,不利于I/O繁忙型。
b) 短作业优先调度算法(Shortest Job First,SJF):按作业或进程运行时间的长短进行调度,优先调度运行时间最短的作业或进程
i. 优点:较好的性能
ii. 缺点:对长作业不利
c) 优先级调度算法:按作业或进程的优先级进行调度,优先调度优先级高的作业或进程
i. 静态优先级:在创建进程时确定优先级,确定之后整个进程运行期间不再改变,确定静态优先级的依据
1. 进程类型
2. 进程对资源的要求
3. 用户要求
ii. 动态优先级:在创建进程时确定优先级,在进程运行过程中再根据情况变化调整优先级,确定动态优先级的依据:
1. 进程占有CPU的时间长短
2. 就绪进程等待CPU的时间长短
d) 时间片轮转调度算法(Round-Robin,RR):用于进程调度,将处理机时间分为很短的时间片,按照时间片轮流将处理机分配给就绪队列中的各个进程使用。时间片的确定依据:
i. 系统的响应时间
ii. 就绪队列中的进程数目
iii. 系统的处理能力
e) 高响应比优先调度算法(Highest Response Ration First,HRRF):是对先来先服务调度算法和短作业优先调度算法的综合,主要用于作业调度,选择响应比最高的作业投入运行
f) 多级队列调度算法:将就绪队列划分成若干个子队列,每个进程固定属于一个子就绪队列,每个子就绪队列采用一种调度算法,不同的队列采用不同的调度算法
g) 多级反馈队列调度算法:是对时间片轮转调度算法和优先级调度算法的综合,实现思想如下:
i. 在系统中设置多个就绪队列,第1个队列的优先级最高,第2个队列次之,其余队列的优先级逐次降低;
ii. 每个队列中进程的时间片与优先级成反比;
iii. 当新进程进入系统时将它放入第1个队列末尾,按先来先服务的原则排队等待调度;当轮到该进程执行时,如果它在一个时间片内结束时未完成,调度程序便将该进程转入第2个队列的末尾,依次类推,
iv. 仅当第1个队列为空时,调度程序才从第2个队列中选择进程运行,最后一个队列中使用时间片轮转调度算法,处理机调度采用抢占式优先级调度算法,当处理机正在执行第i个队列中的某个进程时,若其处理机被抢占则该进程仍然回到第i个队列末尾。
零测试