7

プロセスが実行中の場合、PCBの内容(カーネル メモリ空間にありますか?) が CPU レジスタ、ステータス レジスタカーネル スタック ポインタユーザー スタック ポインタなどにロードされます。

別のプロセスへのコンテキスト切り替えがあると、現在の「コンテキスト」が PCB に保存され、新しい PCB への切り替えが行われます。

カーネルがこの PCB を「コンテキスト」に戻したい場合、現在メモリ内にあるこの PCB をどのように見つけるのでしょうか? カーネルがメモリ内の PCB を見つけるのに役立つ情報は何ですか?

4

4 に答える 4

8

プロセッサの可用性を探すのはスケジューラーの仕事であり、コンテキストの切り替えのみが行われます。コアが利用可能になるとすぐに、カーネルに格納された PCB のプログラム カウンター値が取得され、CPU レジスターに渡されます。PCB がカーネルによってスタック形式で格納されていることを伝えたいと思います。

于 2012-03-28T14:27:38.123 に答える
0

オペレーティング システムは、プロセス テーブルを使用して、メモリ内にある PCB を見つけます。

プロセス テーブルは、PID と、メモリ内の対応する PCB への参照で構成されます。

そのため、OS がコンテキスト スイッチを実行するたびに、Process テーブルを調べて、対応する PID を使用して PCB への参照を見つけます。

このイメージをチェックして、このコンセプトを視覚化してください

于 2021-08-02T09:36:40.720 に答える