3.1 处理机调度的层次和调度算法的目标
1.系统运行并不一定存在高级调度
批处理系统有作业调度,分时系统和实时系统不需要作业调度。
2.引入中级调度的主要目的是,提高内存利用率和系统吞吐量,根据条件将一些进程调出或再调入内存。
3.调度程序也是程序。
4.调度原则:
- 面向用户的准则;
- 面向系统的准则。
4.1 面向用户的准则
- 平均周转时间短
- 响应时间快
- 均衡性
- 截止时间的保证
4.2 面向系统的准则
- 系统吞吐量高
- 处理机利用率高
5.CPU处理时间Ts
周转时间T=Ts+Tw
带权周转时间W=T/Ts
平均带权周转时间和平均周转时间为n个作业求平均。
3.2 作业与作业调度
1.调度队列模型
- 仅有进程调度的调度队列
- 具有高级和低级调度的调度队列模型
- 同时具有三级调度的调度队列模型
1.1 仅有进程调度的调度队列模型
- 分时系统
- 调度处于就绪状态的进程
- 栈、树、无序链表
- 分时系统中把就绪进程组织成FIFO队列形式:按时间片轮转方式运行
1.2 具有高级和低级调度的调度队列模型
批处理系统中,还需要作业调度。
1.3 引入中级调度后,数据在内外存间互换。
就绪状态:分为内存就绪和外存就绪
阻塞状态:分为内存阻塞和外存阻塞
2.先来先服务调度算法
- 新作业只有当进程执行完或被阻塞才会执行。
- 有利于CPU繁忙型(利用CPU时间长)的作业,而不利于I/O繁忙(利用CPU时间短)的。
- 带权周转时间越高,则越不占优势。
3.高响应比优先调度算法
- 优先权=(等待时间+要求服务时间)/要求服务时间
=响应时间/要求服务时间 - 等待时间越长,优先级越高。
- 同时到达的作业优先权相同,为1。
3.3 进程调度
1.调度程序的任务职能:调度和分派
- 记录系统中所有进程的有关情况(记录在PCB中)
- 确定分配处理机的原则(算法)
- 分配处理机给进程
- 从进程收回处理机
3和4为保存、更新CPU现场(PCB中进程队列处理)。
2.进程调度描述工具:Gantt(甘特)图
3.调度进程
- 上下文切换程序
- 分配程序(分派器)
- 队列管理程序(排队器)
4.非抢占方式的进程调度时机:程序完成、发生某事件阻塞
5.抢占方式抢占时间点:作业完成时、作业阻塞时、新作业来时、时间片结束时(根据算法细节而定)
6.轮转法进程阻塞时,未用完时间片也要让出CPU。
7.抢占方式、优先权原则
问题描述:现有三个进程P1、P2、P3,优先级由高到低分别为P1、P2、P3,三个进程所需占用资源如下,请按资源角度为进程排序
P1:I/O2 30ms,CPU 10ms,I/O1 30ms,CPU 10ms,I/O2 10ms
P2:I/O1 20ms,CPU 20ms,I/O2 40ms
P3: CPU 30ms,I/O1 20ms
CPU就绪队列中按优先级排序。
I/O设备无资源抢占,无优先级。
3.4 实时调度
1.实时系统指系统能够在限定响应时间内提供所需水平的服务。
2.硬实时任务能满足实时任务对截止时间的要求。
3.软实时任务:联系着一个截止时间,但不严格,可偶尔错过,不会对系统造成大的影响。
4.最低松弛度优先LLF算法
- 抢占时间点:进程执行完、进程I/O阻塞、新进程出现时可能抢占、某进程松弛度为0时发生抢占(根据题意有时候如此,不同事件不同)
- 松弛度=必须完成时间-其本身的运行时间-当前时间
=截止完成时间-还需执行时间-当前时间(时间实为时刻) - 抢占与否与算法基本实现有关。
3.5 死锁概述
1.当进程处于死锁状态时,若无外力作用,它们都无法再向前推进。
2.资源分类
- 可剥夺性资源和非可剥夺性资源
- 永久性资源和临时资源
3.产生死锁的必要条件:
- 竞争资源
- 进程间推进顺序非法