什么是调度?
调度就是采用特定算法,安排多个作业或进程运行。
4.1 中断
中断对于操作系统的五个作用:(可能考简答题)
- 实现多道程序设计与并发的基础
- 解决主机与外设的并行工作问题
- 具备控制和管理计算机,提高可靠性
- 实现多机联系
- 实现分时、实时控制等
4.1.1 中断和指令周期
中断响应的三个步骤:
- 终止当前程序执行
- 保存断点信息
- 转到相应的中断处理程序
中断和指令周期流程图:
4.1.2 中断处理
中断分为强迫性中断和自愿性中断,它们最主要的区别在于是否是程序自己安排的。
我们熟知的时间片到就是强迫性中断。
4.1.3 多个中断
处理方法:
- 在处理一个中断时,禁止再发生中断;
- 定义中断优先级。
4.1.6 三级调度
高级调度:将作业从外存移到内存,新建进程后进入就绪状态。
中级调度:属于交换功能的一部分,将就绪进程或阻塞进程挂起,或将处于外存的静止就绪和静止阻塞状态的进程激活。
低级调度:决定下次哪个就绪进程占用CPU。
中断与进程状态转换
时间片到 :这个中断表明状态转移,就是由于系统定时时间间隔时钟中断所引起的当前进程的一个时间片用完而从运行状态转移到就绪状态。
I / O 完成:I/O外设数据传输完成产生一个I/O完成中断信号而进入I/O中断处理。由于I/O外设完成中断信号所引起的从阻塞到就绪状态的转移。
申请I/O服务:运行中进程需要在某处执行有关I/O指令以进行数据输入输出。要么是访管指令,要么是某种系统调用,都属于自愿性中断而进入中断处理, 进入由于等待某类I/O的阻塞队列。
调度:当我们清楚了以上状态转移原因,这条边所表明的状态转移也很容易理解。这涉及到调度的时机;产生调度的因素有很多,但基本都与中断有关。
总而言之,进程状态变迁是由于中断,但中断不一定产生进程切换!
4.2 处理机调度
4.2.1 进程调度方式
4.2.2 调度算法
评价算法的指标:
- CPU利用率:使CPU尽量处于忙碌状态。
- 吞吐率:单位时间内所处理的计算任务的数目。
- 周转时间:
- 响应时间:从任务就绪到处理开始,也称为等待时间。
- 系统开销:时间和空间开销。
1. 先来先服务 FCFS
先就绪的先运行,按照先后顺序依次运行,前一个作业的结束时间就是后一个作业的开始时间,周转时间 = 结束时间 - 到达时间,带权周转时间 = 周转时间 / 服务时间。
2. 短作业优先 SJF
第一个就绪的作业先运行,如果该作业结束后有多个作业已经就绪,那就选择服务时间最短的那个接着运行。
3. 高响应比 HRP
每次运行完作业后,都要看接下来已经就绪的作业中,哪一个响应比最高,选最高的那个接着运行。
4. 最短剩余时间 SRT
其实就是每次运行到一个作业的就绪时间点时,看一看现在已经就绪的作业里哪一个需要花的时间最短,选择需要花时间最短的那个接着运行。注意画图!