处理机调度
由于内存空间有限,有时无法将用户提交的作业全部放到内存中,因此需要确定某种规则来决定将作业调入内存的顺序。
高级调度(作业调度):按照一定的原则从外存上处于后备队列的作业中挑选一个(或多个)作业,给他们分配内存等必要资源,并建立相应的进程(建立PCB),以使他们获得竞争处理机的权利。
引入虚拟存储技术后,可将暂时不能运行的进程调至外存等待。等他们重新具备了运行条件且内存又稍有空闲时,再重新调入内存。这么做是为了提交内存的利用率和系统的吞吐量。
暂时调到外存等待的进程状态为挂起状态。值得注意的是,PCB并不会一起调到外存,而是会常驻内存。
中级调度(内存调度):就是决定将那个处于挂起状态的进程重新调入内存。
低级调度(进程调度):其主要任务是按照某种方法和策略从就绪队列中选取一个进程,将处理机分配给它。
七状态模型
对比
进程调度(低级调度)
进程调度的时机
进程调度的方式
1:非剥夺调度方式,又称非抢占式。即只允许进程主动放弃处理机。在运行过程中即便有更紧迫的任务到达,当前进程依然会继续使用处理机。知道该进程终止或主动要求进入阻塞态。
2:剥夺调度方式,又称抢占方式。当进程正在处理机上执行时,如果有一个更重要或更紧迫的进程需要使用处理机,则立即停止正在执行的进程,将处理机分配给更重要紧迫的那个进程。
调度算法的评价指标
1:CPU利用率 = CPU忙碌的时间/总时间
2:系统吞吐量 = 总完成了多少道作业/总共花了多少时间
3:周转时间 = 作业在外存后备队列上等待作业调度(高级调度)的时间 + 进程在就绪队列上等待进程调度的时间(低级调度)+ 进程在CPU上执行的时间 + 进程等待I/O操作完成的时间。 = 作业的完成时间 - 作业的提交时间
4:带权周转时间 = 作业周转时间/作业时机运行时间
5:等待时间 = 指进程/作业处于等待处理机状态时间之和
6:响应时间 = 用户从首次提出请求到系统响应的时间
调度算法
1:先来先服务(FCFS)
2:短作业优先(SJF)
3:高响应比优先(HRRN)
4:时间片轮转调度算法(RR)
5:优先级调度算法
6:多级反馈队列调度算法