📜  操作系统中“调度延迟”和“上下文切换”的区别

📅  最后修改于: 2022-05-13 01:56:11.318000             🧑  作者: Mango

操作系统中“调度延迟”和“上下文切换”的区别

多任务系统中的进程从辅助存储器带到主存储器,有时又切换回辅助存储器。因此,一个过程在其整个生命周期中有多种状态。上下文切换是整个生命周期的重要组成部分。

Dispatcher是一个模块,它将 CPU 控制权交给短期调度程序选择的进程,这包括:

  • 切换上下文
  • 切换到用户模式
  • 跳转到用户程序中的适当位置以继续执行该程序。

上下文切换:
它是存储旧进程状态并通过上下文切换为新进程加载保存状态的过程。进程的上下文在 PCB(进程控制块)中表示。
在上下文切换期间,进程的属性,如寄存器、指针、程序计数器等都存储在 PCB 中,这些属性都保存在内核内存中的每个进程堆栈中,如果新进程是旧进程,则通过更新其 PCB 来取代它的位置如果是新工艺,则创建新 PCB。
上下文切换提供了高度的多任务处理,有助于更好地利用操作系统。

调度延迟:
是调度程序将进程从运行状态进行上下文切换并将另一个进程置于运行状态所花费的时间。
调度延迟是一种开销,系统在上下文切换时没有任何有用的工作。
一些硬件为每个 CPU 提供多组寄存器,允许一次加载多个上下文。

应用程序响应时间中调度延迟的位置

调度延迟是整个应用程序响应时间的一小部分。



应用程序响应时间内调度延迟的扩展视图

调度延迟包括旧任务释放其资源(唤醒),然后重新调度新任务(调度),所有这些也都在上下文切换下。
让我们看一个例子来理解上下文切换和调度延迟。

例子 -

优先事项 -
P1 > P2 > P3 > P4 > P5 > P6

就绪队列 –

P2P3P4P5P6

跑步 -

P1

优先级大于 P1 的任务 P7 进入就绪队列。

现在就绪队列将是 –

P2P3P4P5P6P7

短期调度器选择 P7 与处于运行状态的 P1 交换。



上下文切换——
1. P1 的上下文 (PCB) 被保存并存储在内核内存中的每个进程堆栈中。

2. P7 的上下文(PCB)被更新。

步骤 1 和 2 中经过的时间是调度延迟

跑步 -

P7

“Context Switching”和“Dispatch Latency”都与调度器有关,调度器在短期调度器决定将哪个进程从就绪队列带入运行状态后发挥作用。

Dispatch LatencyContext Switching
The amount of time taken by the dispatcher to pause one process 
and start another is called dispatch latency.
The process of saving the state of a previously running process or thread 
and loading the initial or previously saved state of a new process by the dispatcher. 
Dispatch latency is a time value.Context switching is a process.
It is a consequence of context switching.It is performed by the dispatcher, when initiated by an interrupt.
Latency is dependent on hardware support.The more complex the OS and PCB, the longer the context switch.

在我们的 youtube 频道上通过免费直播课程学习所有 GATE CS 概念。