#21ic问答#
各位前辈们,我在学习进程调度过程中遇到一个问题。
假如有四个进程A,B,C,D,A会运行50ms,B会运行100ms,C会运行200ms,D会运行200ms。
进程调度策略为时间片轮询,时间片为100ms。
调度的过程:
1. 时间0-50ms:
- 任务A运行并完成
- 调度器立即调度任务B运行
2.时间50-100ms:
- 任务B正在运行
- 定时器中断触发,任务B时间片未使用完,继续调用任务B
3.时间100-150ms:
- 任务B在150ms完成
- 调度器调度任务C运行
4.时间150-200ms:
- 任务C正在运行
- 200ms触发定时器中断,继续执行任务C。
5.时间200-250ms:
- 任务C时间片用完,此时会调用任务D。
我的问题是:在第5步的时候,没有定时器中断触发,操作系统是怎么知道任务的时间片用完了呢? |