看板 LinuxDev 關於我們 聯絡資訊
大家好 新手自學 最近在閱讀 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 ??? 是這個意思嗎?? 再請各位解惑了, 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.16.21 ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1525184372.A.8FD.html
admon: process context 不含interrupt context 05/01 23:26
所以 admon 大大的意思是否是,我文章後面寫的 process context 解釋是對的, 但是 interrupt context 的部分除外 是這個意思嗎?? 如果不對的話,可以再進一步解說 process context 的部分嗎? 謝謝 ※ 編輯: shiningboy (42.72.16.21), 05/02/2018 00:05:51
hizuki: 就是這個process被暫停執行後,恢復執行需要的內容 05/02 03:00
hizuki: context其實就是程式本身,開的資源也算在內 05/02 03:01
admon: process/thread/kernel thread的執行都是process context, 05/03 20:57
admon: 這個詞強調的是可以被schedule的context 05/03 20:57