CPU内核不只是将PC的全部资源分配给单个进程或服务。 CPU持续运行许多对其运行至关重要的进程,因此我们的内核需要在不延迟的情况下管理这些进程。
当程序需要运行时,必须为其创建进程。该过程需要具有重要的资源,例如RAM和CPU。内核为CPU调度执行过程中的命令和指令的时间段。即便如此,也只有一个CPU和多个进程。
CPU如何在不延迟的情况下执行不同的进程?它是通过按时间片分别逐个执行进程来实现的。时间片是分配给CPU执行过程的短时间范围。
时间片 :
这是为其分配进程以在抢先式多任务CPU中运行的时间表。调度程序在每个时间片上运行每个进程。每个时间片的时间段可能非常重要,并且对于平衡CPU性能和响应能力至关重要。
如果时间片很短,则调度程序将花费更多的处理时间。相反,如果时间片太长,调度程序将再次花费更多的处理时间。
当将进程分配给CPU时,将根据时间片设置时钟计时器。
- 如果进程在时间片之前完成其突发,CPU会像常规FCFS计算一样简单地将其交换出去。
- 如果时间片首先消失,则CPU将其移到正在进行的队列的后面。
正在进行的队列就像循环队列一样进行管理,因此,在所有进程执行一次之后,调度程序将再次执行第一个进程,然后再执行第二个进程,依此类推。
例子 –
Process Queue | Required burst time by process(ms) |
---|---|
P1 | 1 |
P2 | 4 |
P3 | 5 |
我们有三个进程(P1,P2,P3)及其相应的突发时间(1ms,4ms,5ms)。一条经验法则是80%的CPU突发次数应小于时间量。考虑到2ms的时间片。
这是CPU通过时间分段对其进行管理的方式。
好处 :
- 公平分配CPU资源。
- 它以同等优先级处理所有过程。
- 在系统上易于实现。
- 用于保存抢占进程状态的上下文切换方法
- 在平均处理时间方面提供最佳性能。
缺点:
- 如果切片时间短,则处理器输出将延迟。
- 它花费时间进行上下文切换。
- 性能在很大程度上取决于时间量。
- 无法确定流程的优先级。
- 没有优先处理更重要的任务。
- 找到合适的时间范围是非常困难的。