0

Solaris 10 でプロセスのトラスを取得しているときに、次のステートメントを見つけました。

<pid>/2:    70.7602 context(1, 0xFC47ABF8)

このシステム コールcontextの意味を説明してください。また、このコールの後、スレッド 2 が別のスレッド 4 のように動作するのを見ました。

4

1 に答える 1

0
<ucontext.h>
int getcontext(ucontext_t *ucp);
int setcontext(const ucontext_t *ucp);`

これら 2 つの呼び出しは、Solaris でコンテキストを保存および復元します。McDougal And Mauro の「Solaris Internals」には context() についての明示的な言及がないため、はっきりとはわかりません。これらのapicontext()エントリ ポイントに対応する実際のカーネル コールだと思います。context(1, <addr> )に相当するのかもしれgetcontext()ませんが、わかりません。

コンテキスト切り替えは、OS が特定のプロセスが特定のクォンタム (タイム スライス) のシステム リソースを使用できるようにする方法です。スケジューリングの一部。

于 2012-10-19T20:48:15.887 に答える