2013-06-21 104 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上的設計選擇。