1
除了讓系統變慢一點,還有其他的原因嗎?爲什麼中斷需要非常快速的服務?
我問,因爲號的評論在這裏:
Why kernel code/thread executing in interrupt context cannot sleep?
此外,中斷通常需要非常快的服務,或者你可以很容易地陷入各種麻煩。
哪一種煩惱,可以做?
除了讓系統變慢一點,還有其他的原因嗎?爲什麼中斷需要非常快速的服務?
我問,因爲號的評論在這裏:
Why kernel code/thread executing in interrupt context cannot sleep?
此外,中斷通常需要非常快的服務,或者你可以很容易地陷入各種麻煩。
哪一種煩惱,可以做?
你有過你的電腦是忙於工作,例如在啓動過程中,你不停的按着鍵,以及不久後,你只是得到了蜂鳴聲和這些鍵沒有登記/緩衝了嗎?這是可能發生的一個例子。
如果不處理中斷速度不夠快,流入可能會大於你可以處理,並沒有足夠的空間來排隊更多的中斷。
現代硬件和現代OS'es不會因爲葉奧爾德DOS機儘快碰上這樣的限制,但這並不意味着他們的緩衝區是無限的。
有充分之外另一個緩衝區的原因?順便說一下,爲什麼和哪裏有中斷隊列?中斷不可中斷嗎? – Reflection
好吧,另一個例子是網卡。它會緩衝它接收到的數據,並在每次處理這麼多數據後觸發中斷。如果這些中斷沒有及時處理,網卡需要丟棄它收到的任何額外數據。它不應該爲每個接收到的數據包發送一箇中斷(會消耗太多的CPU),並且它需要緩衝數據以允許在前一個數據仍在處理的過程中接收數據,但顯然這樣的緩衝區的大小是有限的,所以一旦被觸發,中斷應該儘可能快地處理。 – GolezTrol