2013-06-21 102 views
0

我被要求ANWER关于OS上下文切换这些问题,问题是很棘手的,我无法找到我的课本任何回答:上下文切换问题:管理上下文切换涉及哪部分OS?

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

回答

0
  1. 在给定的时刻,系统中可以有任意数量的PCB。每个PCB都链接到一个过程。
  2. 定时器中断先占内核或进程放弃协作内核中处理器的控制权。当然,在I/O操作中进程终止和阻塞。
  3. 我不知道这里的答案,但看到Marko's answer
  4. 内核中的一个调度器。

enter image description here

0

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

2.Interrupt处理

3.用户和内核模式切换

并且每个进程都有自己的PCB

1

3:整数的可能的硬件的优化

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