在 Solaris 10 中获取进程的 truss 时,我发现了以下语句
<pid>/2: 70.7602 context(1, 0xFC47ABF8)
请解释这个系统调用的context
含义在这个调用之后我看到线程 2 的行为就像另一个线程 4。
在 Solaris 10 中获取进程的 truss 时,我发现了以下语句
<pid>/2: 70.7602 context(1, 0xFC47ABF8)
请解释这个系统调用的context
含义在这个调用之后我看到线程 2 的行为就像另一个线程 4。
<ucontext.h>
int getcontext(ucontext_t *ucp);
int setcontext(const ucontext_t *ucp);`
这两个调用在 Solaris 中保存和恢复上下文。我不确定,因为在 McDougal 和 Mauro 的“Solaris Internals”中没有明确提到 context()。我假设context()
是对应于这些 api 入口点的实际内核调用。也许context(1, <addr> )
对应getcontext()
,我不知道。
上下文切换是操作系统允许给定进程为给定时间片(时间片)使用系统资源的方式。调度的一部分。