ページングとコンテキスト切り替えの違いは何ですか? [閉鎖]

ページングとコンテキスト切り替えの違いは何ですか? [閉鎖]

どちらも入ってくるプロセスを含むようです。

ページングでは、既存のプロセスのページを交換し、それをディスク(私の意見では仮想メモリ)の別のページに置き換えますが、コンテキスト切り替えを使用すると、最初にそれをPCBに保存してから、別のプロセスを再開してプロセスを交換することによってこれを行います。することもできます。 PCBをメモリに入れます。

2つの違いは何ですか?現在の私の推測/理解は次のとおりです。

  1. コンテキスト切り替えはプロセス全体に適用されるため、すべてのページを一度に置き換えることができます。

  2. したがって、プロセス制御ブロックまたはPCBにはページが含まれます(そうでない場合、2つはどのように関連していますか?)。

ベストアンサー1

類似点よりも違いが多いようです。

コンテキスト切り替えは、基本的にプログラムコードの実行に必要なすべてのCPUコンテキストを表します。これには、CPUレジスタ値、フラグ、命令、スタックポインタ、優先順位、仮想メモリ設定(ページテーブル)などが含まれます。

実際の内容を含める必要はありません。メモリプロセスのメモリは通常そうではありません。プロセスのメモリを完全に交換するのは遅いからです。システムが複数のプログラムを同時にメモリに保存でき、プログラムがメモリのどの部分を使用するかを知る方法がある場合は、別のプロセスに切り替えるときにメモリ全体を交換する必要はありません。

(Wikipediaによると、交換するしかし、すべてのプロセスは1960年代に行われました。 )

ページングは​​、通常、実行中のプロセスに見えない方法でメインメモリと一部のセカンダリストレージ間でメモリブロック(「ページ」)を移動するプロセスです。

最新のシステムでは、プロセス間のコンテキスト切り替えにはページテーブルのリロードが含まれますが、通常はすべてがメモリに収まるため、ページングは​​まったく必要ありません。一方、スワッピングが必要な十分なメモリを使用すると、単一のプロセス内でもページングが発生する可能性があります。

したがって、実際には、コンテキスト切り替えとページングは​​かなり直交しており、マルチタスク仮想メモリオペレーティングシステムの2つの概念にすぎません。

おすすめ記事