2016-12-20 23 views
0

我正在尋找一個響應時間非常重要的工作示例。爲什麼響應時間在CPU調度中很重要?

One definition of response time is

從發出命令在一個交互式節目採取到該命令的響應的動工的時間。

我讀過響應時間對交互性很重要,但我不明白爲什麼。如果工作沒有完全完成,那麼可能產生哪些輸出會對用戶有用?

用戶不會只關心工作完成多久,因爲這是第一次產生任何輸出?

例如,考慮兩個職的這兩種可能schedulings:

Case 1: |---B---|---A---| 
Case 2: |-A-|---B---|-A-| 

假設作業A和B在同一時間發行,A是一個命令,鍵入的用戶和B是一些背景處理。

對於工作A的響應時間,據我瞭解,情況2會更短。由於工作A在兩種情況下同時完成(併產生輸出),所以我不明白用戶如何獲益(或甚至通知)情況2中的更好的響應時間。

+0

「我對處理器快速啓動不感興趣」和「我只是希望儘快輸出」似乎有點根本不兼容......爲了儘快獲得輸出,您需要工作很快就開始了(並沒有中斷,......)... – twalberg

回答

0

我想我對自己的問題有一個答案。問題是,我只是想着簡單的流程,如ls,一旦發佈運行一段時間,然後,然後,當他們完成時,提供他們的第一個和唯一的輸出。

但是,假設問題示例中的作業A是一個包含多個打印語句的程序。在這種情況下,輸出將在過程完成之前產生(並且在第一個計劃的突發期間可能發生一些打印輸出)。因此,交互性要想盡快開始運行這樣的過程是有意義的。

0

在編寫操作系統時,必須考慮目標受衆是什麼。在某些情況下,儘快完成工作至關重要(超級計算機系統),在某些情況下最重要的是儘可能快地做出響應(常規桌面系統),並且在某些情況下最重要的是儘可能地預測實時系統)。

對於儘快完成工作,任務應該中斷最稀有可能(任務開關之間的間隔太大是最好的選擇)。這裏的響應時間並不重要。應該注意的是,由於必須將舊任務的狀態(包括寄存器和分頁結構)保存到內存中,並將狀態(包括寄存器和分頁結構)恢復到內存中,因此任務切換通常需要一些時間(通常爲數千個CPU週期)記憶中的新任務。這也會導致緩存和TLB未命中,因爲緩存的信息通常不屬於當前進程。

對於是最有可能的響應,任務應儘可能經常中斷,以便用戶不會遇到所謂的滯後。這是響應時間很重要的地方。但是請注意,在中斷驅動的體系結構(如x86)上,來自鍵盤或鼠標的中斷將自動暫停當前任務的執行並調用中斷處理程序,中斷處理程序處理輸入並將其發送到適當的程序。

對於是最有可能預測的,輸入應該既不能太快也不能太慢。這意味着響應時間受到兩方面的限制,因此比「最響應可能」設計重要得多。錯誤預測甚至可能是關鍵任務系統的致命故障。簡而言之,響應時間的重要性因設計而異,範圍從幾乎不重要到關鍵。