【问题标题】:Why is context-switching an expensive procedure and expensive in terms of what?为什么上下文切换是一个昂贵的过程并且在什么方面很昂贵?
【发布时间】:2017-10-12 19:53:49
【问题描述】:

在我的操作系统课程中,考试要知道的问题之一是“为什么上下文切换很昂贵?”他们说的贵是什么意思,贵在什么方面?就执行任务所需的时间而言?

【问题讨论】:

  • 获取处理器的参考手册——说一些来自 80x 系列的东西。研究它以找到属于处理器“状态”的所有寄存器,包括任何用于控制地址转换等的寄存器。找出保存/恢复这些寄存器所需的指令序列,记住使用的任何方案必须是“原子的”——它不能允许其他操作同时进行来改变它的结果。

标签: operating-system context-switch


【解决方案1】:

“为什么上下文切换很昂贵?”他们说的贵是什么意思,贵在什么方面?就执行任务所需的时间而言?

上下文切换的开销有几个原因。

首先,保存上下文本身的步骤需要付出很多努力。必须保存所有进程寄存器。这包括通用寄存器、进程状态寄存器以及某些系统上的专用寄存器(例如浮点)。

其次,为新进程恢复上下文同样耗时。

第三,必须为新进程刷新和重新加载内存缓存。

第四,在确定接下来要执行什么进程时存在开销。

(可能还有一些我没有列出的)。

所有这些都需要时间。

【讨论】:

  • 内存缓存不需要刷新,至少在 x86 上是这样。但话又说回来,新运行的进程将有效地从冷缓存开始,除非它使用与先前运行的进程共享的内存。
【解决方案2】:

时间方面很昂贵。

上下文切换是存储和恢复状态的过程 过程的(上下文)。

因此,操作系统确实会为进程拍摄“照片”,将其存储并在以后恢复,但这很昂贵。

该过程也会占用一些空间,但最昂贵的方面是时间。

【讨论】:

    猜你喜欢
    • 2011-08-03
    • 2011-06-18
    • 2010-12-12
    • 2012-09-20
    • 2014-05-18
    • 2013-06-16
    • 1970-01-01
    • 2019-04-08
    • 2014-05-19
    相关资源
    最近更新 更多