2015-09-24 112 views
0

我讀的過程管理,我有幾個doubts-操作系統基礎

  • 什麼是一個I/O請求的意思,因爲EG-A進程正在執行和 因此它處於運行狀態,它處於等待狀態,如果它正在等待 完成I/O請求。我沒有明白I/O請求的意思,請您舉個例子來詳細說明。
  • 另一個疑問是 - 可以說一個進程正在執行並突然發生一箇中斷,然後進程停止執行,並且將 置於就緒狀態,是否有可能其他進程開始執行 中斷也在處理中?
+0

聽起來像你需要幫助你的功課! – Shaunak

+0

@ Shaunak-它不是功課, –

回答

1

I/O請求通常只是意味着請求採取任一輸入,輸出或兩者。具體含義取決於HTTP,網絡,控制檯操作等環境,或者可能是CPU中的某個進程。

進程正在等待IO:例如,您正在使用C編寫程序,以便在命令行上接受用戶名,然後想要打印'Hello User'。你的代碼將進入等待狀態,直到用戶輸入他們的名字並點擊Enter。這是一個更高層次的例子,但即使在您的計算機處理器執行一個非常低的水平上的過程基本相同的原則也適用於其他進程

燦處理器工作時的電流被中斷,等待什麼?是!你最好希望它能做到。這就是調度算法和堆棧的用途。但是取決於你是什麼架構真正的答案,它支持並行或串行處理等

2

關於第一個問題:

一個簡單的方法來思考它...
您的計算機有很多組件。 CPU,硬盤,網卡,聲卡,GPU等。所有這些工作並行和相互獨立。它們通常也比CPU慢。
這意味着只要某個進程發出的呼叫(OS端)停止與外部設備進行通信,操作系統就無法等待結果,因爲這需要花費時間操作完成可能是一個永恆(在CPU的觀點上)。
因此,操作系統啓動進程請求的任何通信(稱之爲IO請求),將進程標記爲等待IO,並將執行切換到另一個進程,以便CPU可以做一些有用的事情,而不是圍坐等待IO請求完成。
當外部設備完成所請求的任何操作後,它會生成一箇中斷,以便通知操作系統已完成工作,然後可以將被阻止的進程標記爲準備就緒。

這當然是一個非常簡單的視圖,但這是主要想法。它允許CPU執行有用的工作,而不是等待IO請求完成。

關於第二個問題:

這是棘手,即使是單CPU的機器,並且依賴於操作系統如何處理中斷。
爲了簡化代碼,一個簡單的操作系統可能會例如每當中斷髮生時一次處理中斷,然後恢復無論何時中斷處理完成時都認爲合適的進程。所以在這種情況下,直到中斷處理完成後纔會運行其他進程。

實際上,由於性能和等待時間的原因,情況會變得更加複雜。
如果您認爲中斷生命週期只是CPU的另一項任務(從中斷開始到操作系統認爲處理完成的時間點),您可以有效地編寫中斷處理代碼,以便與其他事情並行運行。
只要將中斷看作是OS啓動另一個任務(中斷處理)的通知即可。它在中斷開始的時候捕獲它需要的任何上下文,然後繼續處理與其他進程並行的任務。