システムには明らかに大量のメモリがありますが、大きなメモリを割り当てることができないのでしょうか?
今日の質問: システムには明らかに大量のメモリがありますが、大きなメモリを割り当てることができませんか? ######どうしてこれなの?
この質問にはメモリ管理の側面、つまりメモリの断片化が関係しています。
メモリの断片化は、Linux の非常に初期の段階で発生しました。初期のメモリの断片化の歴史を理解すると、それを理解するのに役立ちます。
32MB のメモリがあると仮定すると、図 (a) に示すように、オペレーティング システムは最初に最小のメモリ (4MB) を使用し、残りのメモリは 4 つのプロセス用に予約されます。


2 番目のホール が作成されるとします。
# オペレーティング システムがある時点でプロセス B を実行する必要があり、スワップアウトするプロセスを選択する必要があるとします。プロセス A がスワップアウトされると仮定すると、次に 3 番目のプロセスがスワップアウトされます図 (d) に示すように、このプロセスはオペレーティング システム
時間の経過とともに、メモリはますます増加します。減少すると、これらのメモリ ホールは、よく


これを見た後は、メモリの断片化とは何か、またメモリ管理メカニズムである動的分割方法についても理解していることになります。上記の例は、実際には 動的パーティショニング方式 です。オペレーティング システムの初期には、動的パーティショニング方式がメモリの管理に使用されていました。
メモリの断片化の問題を解決するにはどうすればよいですか?
アイデアは実際には非常に単純です。複数の小さなメモリ ブロックを 1 つの大きなメモリ ブロックに配置します。
動的パーティショニングを使用していた初期のオペレーティング システムでは、断片化の問題を解決するために、プロセスが占有する領域が連続し、すべての空き領域も連続するようにプロセスを動的に移動しました。 , このようにして、複数の小さなメモリ ブロックがまとめられます。しかし、欠点も非常に明らかであり、 プロセスの移行には多くの時間がかかります。
#内部断片化と外部断片化 メモリ断片化には 2 つのタイプがあります: 内部断片化
および外部断片化内部断片化
: プログラムに割り当てられたが使用されないメモリの部分外部断片化
: システム 使用できない小さなメモリ ブロック (上記の動的パーティショニング方法によって生成されたフラグメントなど)現在、オペレーティング システムはページングまたはセグメンテーション メカニズムを使用してメモリを管理していますが、一部のメモリ フラグメントは必然的に発生します。生成される。
内部断片化と外部断片化の問題を解決するために、Linux はパートナー システム
とslab という 2 つのものを導入しました。 パートナー システムは外部断片化の問題を解決するために使用され、スラブは内部断片化の問題を解決するために使用されます。
パートナーシステムとスラブもメモリ管理の中核となるコンテンツですので、興味のある方は勉強してみてはいかがでしょうか。
概要 したがって、システムに大量のメモリがあるにもかかわらず、大きなメモリ ブロックを割り当てることができない場合は、つまり、大量のメモリの断片化が発生するため、システム内には不連続な小さなメモリが多数存在し、表面上はシステムに空きメモリがたくさんあるように見えますが、実際にはメモリが分散しているだけです。
以上がシステムには明らかに大量のメモリがありますが、大きなメモリを割り当てることができないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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