大家好 新手自學
最近在閱讀 Linux 有關 execution contexts 的觀念
對於 process context 這個名詞的意思不太確定
舉的例子是 :
一個程式 a,目的要開啟檔案後讀取,
這個程式 a 執行之後,從 user space 經由 c library read()
發出一個讀取請求給 kernel,接著 context 轉移到 kernel space ,
kernel 經由 IDE driver 去驅使硬碟讀取相對應磁區的資料,
在等待硬碟回應的這段時間,kernel 會把程式 a 阻斷 blocked 放到 wait queue 中
接著執行 context switch 去執行別的程式;
等到硬碟讀取完成之後,kernel 向 CPU 發一個 interrupt ,
再執行一個 context switch 回到程式 a,這時候就可以讀到硬碟回應的資料
經由上方的例子,想問的是
所謂的 process context 是否是指
一個程式執行之後成為 process 並儲存在 main memory ,
然後這個 process 就是要執行開啟檔案讀取的目的,
而這個目的會經由
user space ( user space context),
kernel space ( kernel space context) ,
ISR (interrupt context) 等相關的部分來完成這個目的
所以這整個 application process 的執行過程上下文,就稱為 process context ???
是這個意思嗎??
再請各位解惑了,
謝謝