[問題] 關於 process context

作者: shiningboy   2018-05-01 22:19:30
大家好 新手自學
最近在閱讀 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 ???
是這個意思嗎??
再請各位解惑了,
謝謝
作者: admon (睡夢中)   2018-05-01 23:26:00
process context 不含interrupt context
作者: hizuki (ayaka)   2018-05-02 03:00:00
就是這個process被暫停執行後,恢復執行需要的內容context其實就是程式本身,開的資源也算在內
作者: admon (睡夢中)   2018-05-03 20:57:00
process/thread/kernel thread的執行都是process context,這個詞強調的是可以被schedule的context

Links booklink

Contact Us: admin [ a t ] ucptt.com