[问题] 关于 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