仮想メモリ
個人学習内容の整理目的.
注:楊熙載教授(OS)
仮想メモリは、物理メモリサイズの制限を克服することを目的としています.
すべてのプロセスイメージをメモリに格納するのではなく、現在の実行時にのみ必要な部分です.
メモリに入れて使用します.
例えば、エラー処理、配列、ワープロの並べ替え、表機能など、すぐに使わないものはメモリに入れません.
このようなメリットは何ですか?
つまり、実行可能なプログラムは実際のメモリのプログラムより多い.
この場合,一部のみアップロードするためには,プロセス分割が必要であり,主にページ単位を用いる.
このように要求されたページだけをアップロードすることをDemandingPagingと呼ぶ.
では、一つ疑問があります.
分割されたページはメモリ全体に広がり、その過程でページテーブルは連続メモリが割り当てられたようにCPUをだます.
では、分割されたページはページテーブルにマッピングされるべきで、どのようにしてアップロードされたのか、どのようにアップロードされていないのかを判別しますか?
いわゆるvalidbitはテーブルに置いて判断します.
このbitの値は1でメモリに、0ではありません.
では、0であれば、ないページをどのようにインポートしますか?
これをページコンポーネントと呼び、以下の手順を説明します.有効ビットでメモリにあるかどうかを確認します. 0で割り込みが発生しました. backing storeを参照し、対応するプロセスページにアクセスします. の空きメモリ(フレーム)に割り当てられ、有効ビットを1に変換します. ジョブを再実行します.
1)Pure Demand Paging
→最初は何も要求しないと、何も持ってこない.
つまり、必要なときだけ持ってきます.
多くのメモリを節約できますが、必要に応じて多くのプロセスが行われるため、時間がかかります.
2)Prepaging
→今は不要で、必要と思われるページをメモリに入れます.
→Demanding Pagingと同様にbacking storeとメモリの間を交互に切り替える点は同じですが、swappingはプロセス単位です.
先にメモリ不足のみを考慮して説明したが、実行を続けるとページ単位で必要なコンテンツをロードしてもメモリがいっぱいになる瞬間がある.
このとき、メモリ内のページを下と上に操作することをページ置換と呼びます.
このときbacking storeに戻るページを被害者ページと呼ぶ.
cpuによって実行された変更を排除することが望ましい.
変更後の操作をbacking storeに反映する必要があるためです.
注意:valid bitのように、同じ原理で変更の有無を確認できるmodify bitを追加してチェックします.
変更されていないコンテンツには、さまざまな方法があります.
1.ランダム選択Random→その名の通り.しかし、性能は保証されません.
2.FIFOを選択→メモリに最初にアップロードします.
OPT→最長時間使用しないページを選択します.
最新使用の(LRU)→最近使用していないものは、以降も使用しません.
現在、ほとんどの環境でLRUが使用されています. それ以外にも、いろいろな方法があります.
注:楊熙載教授(OS)
仮想メモリは、物理メモリサイズの制限を克服することを目的としています.
どうしよう。
すべてのプロセスイメージをメモリに格納するのではなく、現在の実行時にのみ必要な部分です.
メモリに入れて使用します.
例えば、エラー処理、配列、ワープロの並べ替え、表機能など、すぐに使わないものはメモリに入れません.
このようなメリットは何ですか?
つまり、実行可能なプログラムは実際のメモリのプログラムより多い.
方式は。
需要ページング
この場合,一部のみアップロードするためには,プロセス分割が必要であり,主にページ単位を用いる.
このように要求されたページだけをアップロードすることをDemandingPagingと呼ぶ.
では、一つ疑問があります.
分割されたページはメモリ全体に広がり、その過程でページテーブルは連続メモリが割り当てられたようにCPUをだます.
では、分割されたページはページテーブルにマッピングされるべきで、どのようにしてアップロードされたのか、どのようにアップロードされていないのかを判別しますか?
いわゆるvalidbitはテーブルに置いて判断します.
このbitの値は1でメモリに、0ではありません.
Page Fault(ページなし)
では、0であれば、ないページをどのようにインポートしますか?
これをページコンポーネントと呼び、以下の手順を説明します.
初めてページを取る方法は?
1)Pure Demand Paging
→最初は何も要求しないと、何も持ってこない.
つまり、必要なときだけ持ってきます.
多くのメモリを節約できますが、必要に応じて多くのプロセスが行われるため、時間がかかります.
2)Prepaging
→今は不要で、必要と思われるページをメモリに入れます.
**Pure Demand Paging** 에 비해 페이지 부재가 발생할 확률은 낮으며 속도가 빨라질 수 있으나, 메모리 절약은 상대적으로 덜 된다.
3)Swapping→Demanding Pagingと同様にbacking storeとメモリの間を交互に切り替える点は同じですが、swappingはプロセス単位です.
ページの置換
先にメモリ不足のみを考慮して説明したが、実行を続けるとページ単位で必要なコンテンツをロードしてもメモリがいっぱいになる瞬間がある.
このとき、メモリ内のページを下と上に操作することをページ置換と呼びます.
このときbacking storeに戻るページを被害者ページと呼ぶ.
では、どのページを追い出すべきですか。
cpuによって実行された変更を排除することが望ましい.
変更後の操作をbacking storeに反映する必要があるためです.
注意:valid bitのように、同じ原理で変更の有無を確認できるmodify bitを追加してチェックします.
変更されていないコンテンツには、さまざまな方法があります.
1.ランダム選択Random→その名の通り.しかし、性能は保証されません.
2.FIFOを選択→メモリに最初にアップロードします.
OPT→最長時間使用しないページを選択します.
단, 미래를 예측해야 하므로 비현실적이다.
最新使用の(LRU)→最近使用していないものは、以降も使用しません.
Reference
この問題について(仮想メモリ), 我々は、より多くの情報をここで見つけました https://velog.io/@dhfl0710/가상-메모리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol