システムコール呼び出しの実行を取得でき、カーネルで処理しています。しかし、私にはまだはっきりしていないことがいくつかあります。swi ルーチンに入ると、カーネルはユーザー モード レジスタをスタックに保存します。質問は-
誰のスタックですか?(swi 処理と対応するシステム コール ルーチンが動作するスタック フレームを必要とするため)
カーネル独自のスタックの場合、スタックはどこから割り当てられますか..? 現在のスタックの使用を開始しますか? はいの場合、 current は、カーネルでその時点で実行されている可能性のあるプロセスです。これは現在のスタックを使い果たしませんか?
現在実行中のユーザー プロセスのスタックを swi ハンドラーで使用する場合、これはカーネルがアクセスするユーザー アドレス空間になります。これは可能ですか?カーネルのアドレス可能なメモリが 1GB 以内であるため (4GB RAM メモリ システムで 1:3 のカーネル対ユーザー アドレス空間比率が使用されている場合)。