这是我的作业问题。现在我明白了用户模式和内核模式之间的区别(我认为是系统模式)。
但我的问题是:这个过程在Linux中是如何运作的?系统是否为其运行的每个进程都具有用户模式和系统模式堆栈?
答案 0 :(得分:2)
我相信这个问题已在这里得到解答:
也就是说,一个用户空间进程只有一个堆栈,指针指向task_struct
中include/linux/sched.h
的第二个元素(约为3.12中的第1045行)。
如上面的帖子所述,有可能与每线程内核堆栈有些混淆。从某种意义上说,进程可以有一个或多个堆栈,用户空间和内核空间,具体取决于它在任何时间点的线程数。每个线程内核堆栈,线程和进程task_struct
之间的连接由Junfeng Yang在此lecture中描述。