Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
x86_64 の構造体 thread_struct には ip がないので、関数 context_switch はどのようにして新しいプロセスの正しい ip に切り替えることができますか?
コアレジスタ(特殊レジスタと汎用レジスタ)は、中断されたプロセスのカーネルスタックに保存されていると思います。割り込み/例外が発生するたびに、CPU がスーパーバイザー モード (特権モード) にトラップされ、カーネルは割り込みを受けたプロセスのカーネル スタックにコンテキスト (1 つのスタック フレーム) を保存します。
特定のプロセスのカーネル スタックの先頭を指す sp(スタック ポインター) レジスタを thread_struct に保存する必要があると思います。