目次
メモリ断片化には 2 つのタイプがあります: 内部断片化" >#内部断片化と外部断片化 メモリ断片化には 2 つのタイプがあります: 内部断片化
ホームページ 運用・保守 Linuxの運用と保守 システムには明らかに大量のメモリがありますが、大きなメモリを割り当てることができないのでしょうか?

システムには明らかに大量のメモリがありますが、大きなメモリを割り当てることができないのでしょうか?

Aug 01, 2023 pm 03:37 PM
linux

今日の質問: システムには明らかに大量のメモリがありますが、大きなメモリを割り当てることができませんか? ######どうしてこれなの?

この質問にはメモリ管理の側面、つまりメモリの断片化が関係しています。

メモリの断片化とは何ですか? メモリの断片化は、Linux の非常に初期の段階で発生しました。初期のメモリの断片化の歴史を理解すると、それを理解するのに役立ちます。

32MB のメモリがあると仮定すると、図 (a) に示すように、オペレーティング システムは最初に最小のメモリ (4MB) を使用し、残りのメモリは 4 つのプロセス用に予約されます。

システムには明らかに大量のメモリがありますが、大きなメモリを割り当てることができないのでしょうか?プロセス A はオペレーティング システム上で 10MB のメモリを使用し、プロセス B はプロセス A 上で 6MB のメモリを使用し、プロセス C はプロセス B 上で 8MB のメモリを使用します。図 (b) :

システムには明らかに大量のメモリがありますが、大きなメモリを割り当てることができないのでしょうか? プロセス D は 5MB のメモリを必要とするため、残りのメモリではプロセス D を読み込むのに十分ではなく、このメモリの最後のビットは # を形成します。 # #最初の穴 (記憶の断片)
。ある時点で、システムに十分なメモリがないため、オペレーティング システムがプロセス D を実行する必要があるとします。そのため、プロセス D 用に十分なスペースを確保するには、スワップアウトするプロセスを選択する必要があります。図 (c) に示すように、オペレーティング システムがスワップアウトするプロセス B を選択し、プロセス D が元のプロセス B のアドレス空間にロードされ、

2 番目のホール が作成されるとします。

# オペレーティング システムがある時点でプロセス B を実行する必要があり、スワップアウトするプロセスを選択する必要があるとします。プロセス A がスワップアウトされると仮定すると、次に 3 番目のプロセスがスワップアウトされます図 (d) に示すように、このプロセスはオペレーティング システム
ホール システムには明らかに大量のメモリがありますが、大きなメモリを割り当てることができないのでしょうか? で発生します。

時間の経過とともに、メモリはますます増加します。減少すると、これらのメモリ ホールは、よく
メモリの断片化 システムには明らかに大量のメモリがありますが、大きなメモリを割り当てることができないのでしょうか? と呼ばれるものになります。
システムには明らかに大量のメモリがありますが、大きなメモリを割り当てることができないのでしょうか?

これを見た後は、メモリの断片化とは何か、またメモリ管理メカニズムである動的分割方法についても理解していることになります。上記の例は、実際には 動的パーティショニング方式 です。オペレーティング システムの初期には、動的パーティショニング方式がメモリの管理に使用されていました。

メモリの断片化の問題を解決するにはどうすればよいですか?

アイデアは実際には非常に単純です。複数の小さなメモリ ブロックを 1 つの大きなメモリ ブロックに配置します

動的パーティショニングを使用していた初期のオペレーティング システムでは、断片化の問題を解決するために、プロセスが占有する領域が連続し、すべての空き領域も連続するようにプロセスを動的に移動しました。 , このようにして、複数の小さなメモリ ブロックがまとめられます。しかし、欠点も非常に明らかであり、 プロセスの移行には多くの時間がかかります。

#内部断片化と外部断片化 メモリ断片化には 2 つのタイプがあります: 内部断片化

および

外部断片化内部断片化

: プログラムに割り当てられたが使用されないメモリの部分

外部断片化

: システム 使用できない小さなメモリ ブロック (上記の動的パーティショニング方法によって生成されたフラグメントなど)

現在、オペレーティング システムはページングまたはセグメンテーション メカニズムを使用してメモリを管理していますが、一部のメモリ フラグメントは必然的に発生します。生成される。

内部断片化と外部断片化の問題を解決するために、Linux は

パートナー システム

slab という 2 つのものを導入しました。 パートナー システムは外部断片化の問題を解決するために使用され、スラブは内部断片化の問題を解決するために使用されます。

パートナーシステムとスラブもメモリ管理の中核となるコンテンツですので、興味のある方は勉強してみてはいかがでしょうか。

概要 したがって、システムに大量のメモリがあるにもかかわらず、大きなメモリ ブロックを割り当てることができない場合は、つまり、大量のメモリの断片化が発生するため、システム内には不連続な小さなメモリが多数存在し、表面上はシステムに空きメモリがたくさんあるように見えますが、実際にはメモリが分散しているだけです。

#

以上がシステムには明らかに大量のメモリがありますが、大きなメモリを割り当てることができないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Linuxは実際に何に適していますか? Linuxは実際に何に適していますか? Apr 12, 2025 am 12:20 AM

Linuxは、サーバー、開発環境、埋め込みシステムに適しています。 1.サーバーオペレーティングシステムとして、Linuxは安定して効率的であり、多くの場合、高電流アプリケーションの展開に使用されます。 2。開発環境として、Linuxは効率的なコマンドラインツールとパッケージ管理システムを提供して、開発効率を向上させます。 3.埋め込まれたシステムでは、Linuxは軽量でカスタマイズ可能で、リソースが限られている環境に適しています。

Oracleのインスタンス名を表示する方法 Oracleのインスタンス名を表示する方法 Apr 11, 2025 pm 08:18 PM

Oracleでインスタンス名を表示するには3つの方法があります。「sqlplus」と「v $ instanceからselect instance_name;」を使用します。」コマンドラインのコマンド。 「show instance_name;」を使用しますSQL*Plusのコマンド。オペレーティングシステムのタスクマネージャー、Oracle Enterprise Manager、またはオペレーティングシステムを介して、環境変数(LinuxのOracle_Sid)を確認してください。

LinuxでDockerを使用:包括的なガイド LinuxでDockerを使用:包括的なガイド Apr 12, 2025 am 12:07 AM

LinuxでDockerを使用すると、開発と展開の効率が向上する可能性があります。 1。Dockerのインストール:スクリプトを使用して、ubuntuにDockerをインストールします。 2.インストールの確認:sudodockerrunhello-worldを実行します。 3。基本的な使用法:NginxコンテナDockerrun-Namemy-Nginx-P8080を作成します:80-Dnginx。 4。高度な使用法:カスタム画像を作成し、DockerFileを使用してビルドして実行します。 5。最適化とベストプラクティス:マルチステージビルドとドッケルコンポスを使用して、DockerFilesを作成するためのベストプラクティスに従ってください。

Apache80ポートが占有されている場合はどうすればよいですか Apache80ポートが占有されている場合はどうすればよいですか Apr 13, 2025 pm 01:24 PM

Apache 80ポートが占有されている場合、ソリューションは次のとおりです。ポートを占有するプロセスを見つけて閉じます。ファイアウォールの設定を確認して、Apacheがブロックされていないことを確認してください。上記の方法が機能しない場合は、Apacheを再構成して別のポートを使用してください。 Apacheサービスを再起動します。

Apacheを始める方法 Apacheを始める方法 Apr 13, 2025 pm 01:06 PM

Apacheを開始する手順は次のとおりです。Apache(コマンド:sudo apt-get install apache2または公式Webサイトからダウンロード)をインストールします(linux:linux:sudo systemctl start apache2; windows:apache2.4 "serviceを右クリックして「開始」を右クリック) (オプション、Linux:Sudo SystemCtl

Oracleの監視を開始する方法 Oracleの監視を開始する方法 Apr 12, 2025 am 06:00 AM

Oracleリスナーを開始する手順は次のとおりです。Windowsのリスナーステータス(LSNRCTLステータスコマンドを使用)を確認し、LinuxとUNIXのOracle Services Managerで「TNSリスナー」サービスを開始し、LSNRCTL Startコマンドを使用してリスナーを起動してLSNRCTLステータスコマンドを実行してリスナーを確認します。

DebianのNginx SSLパフォーマンスを監視する方法 DebianのNginx SSLパフォーマンスを監視する方法 Apr 12, 2025 pm 10:18 PM

この記事では、Debianシステム上のNginxサーバーのSSLパフォーマンスを効果的に監視する方法について説明します。 Nginxexporterを使用して、NginxステータスデータをPrometheusにエクスポートし、Grafanaを介して視覚的に表示します。ステップ1:NGINXの構成最初に、NGINX構成ファイルのSTUB_STATUSモジュールを有効にして、NGINXのステータス情報を取得する必要があります。 NGINX構成ファイルに次のスニペットを追加します(通常は/etc/nginx/nginx.confにあるか、そのインクルードファイルにあります):location/nginx_status {stub_status

Debianシステムでリサイクルビンをセットアップする方法 Debianシステムでリサイクルビンをセットアップする方法 Apr 12, 2025 pm 10:51 PM

この記事では、デビアンシステムでリサイクルビンを構成する2つの方法を紹介します:グラフィカルインターフェイスとコマンドライン。方法1:Nautilusグラフィカルインターフェイスを使用して、ファイルマネージャーを開きます。デスクトップまたはアプリケーションメニューでNautilusファイルマネージャー(通常は「ファイル」と呼ばれる)を見つけて起動します。リサイクルビンを見つけてください:左ナビゲーションバーのリサイクルビンフォルダーを探してください。見つからない場合は、「他の場所」または「コンピューター」をクリックして検索してみてください。リサイクルビンプロパティの構成:「リサイクルビン」を右クリックし、「プロパティ」を選択します。プロパティウィンドウで、次の設定を調整できます。最大サイズ:リサイクルビンで使用可能なディスクスペースを制限します。保持時間:リサイクルビンでファイルが自動的に削除される前に保存を設定します

See all articles