Context Switch问题:管理Context Switch涉及哪些操作系统?

时间:2013-06-21 05:44:19

标签: operating-system hardware context-switch process-control

我被要求提出关于操作系统上下文切换的这些问题,问题非常棘手,我在教科书中找不到任何答案:

  1. 特定时间系统中存在多少个PCB?
  2. 可能导致上下文切换发生的两种情况是什么? (我认为它们是中断和终止进程,但我不确定)
  3. 硬件支持可以改变切换所需的时间。两种不同的方法是什么?
  4. 操作系统的哪一部分涉及管理Context Switch?

3 个答案:

答案 0 :(得分:1)

  1. 在给定的时刻,系统中可以有任意数量的PCB。每个PCB都链接到一个过程。
  2. 计时器在抢占式内核中中断,或者在协作内核中放弃对处理器的控制。当然,在I / O操作中进程终止和阻塞。
  3. 我不知道答案,但请参阅Marko's answer
  4. 内核中的一个调度程序。
  5. enter image description here

答案 1 :(得分:1)

3:大量可能的硬件优化

  • 小寄存器集(因此在上下文切换时保存和恢复的次数较少)
  • 浮点/向量处理器寄存器集的'脏'标志 - 允许内核在接入后没有发生任何事情时避免保存上下文.FP / VP上下文通常非常大而且很多线程从不使用它们。一些RTOS提供了一个API来告诉内核线程从不使用FP / VP,从而消除了更多的上下文恢复和一些保存 - 特别是当处理ISR的线程抢占了另一个,然后快速完成时,内核立即重新安排原始主题。
  • 影子寄存器库:针对具有板载单周期SRAM的小型嵌入式CPU。 CPU寄存器是内存支持的。结果,开关组仅仅是切换寄存器的基址的情况。这通常通过一些说明来实现,并且非常便宜。通常,这些系统中的上下文数量受到严重限制。
  • 影子中断寄存器:用于ISR的影子寄存器库。一个例子是所有ARM CPU,其快速中断处理程序具有大约6或7个寄存器的影子库,而对于常规中断处理程序具有少量阴影。 虽然不严格地说是上下文切换的性能提升,但这可以帮助在ISR背面进行上下文切换的成本。
  • 物理上而不是虚拟映射的缓存。如果更改了MMU,则必须在上下文切换时刷新虚拟映射的高速缓存 - 它将存在于具有内存保护的任何多进程环境中。但是,物理映射的高速缓存意味着虚拟物理地址转换是加载和存储操作的关键路径活动,并且许多门都用于缓存以提高性能。因此,虚拟映射的高速缓存是针对嵌入式系统设计的某些CPU的设计选择。

答案 2 :(得分:0)

调度程序是管理上下文切换的操作系统的一部分,它在以下条件之一中执行上下文切换:
1.Multitasking

2.中断处理

3.User和内核模式切换

每个流程都有自己的PCB