关于“进程上下文”的理解 不知道对不对
Linux, 进程上下文, kernel
鄙人初探linux kernel,在阅读LKD时,对进程上下文这个概念不是十分明白:
我认为一个进程的上下文分三种情况:
1)只位于user space,如:
#include <string>
int main()
{
return 0;
}
没有调用任何system call,不会进入kernel space,因此只会运行于user space,所以这个应用程序对应的进程的进程上下文就不妨理解为整个user space。
2)只位于kernel space,如操作系统本身就是运行于kernel的,所以向进程调度进程的进程上下文就不妨理解为整个kernel space。
3)横跨user space和kernel space,如:
int main()
{
fork();
...
}
调用了system call fork,会从user space进入kernel space,因此这个应用程序对应的进程的进程上下文就理解为整个内存空间。
不知道这样理解对不对。 谢谢指点。