memory-management

システムサービスのメモリ制限について:プロセスごとに、または組み合わせていますか?
memory-management

システムサービスのメモリ制限について:プロセスごとに、または組み合わせていますか?

Memory: 300.3M (limit: 500.0M私はLinuxシステムで実行されているvcoagent.serviceというsystemdサービスがあり、サービス()に指定されたメモリ制限が管理するプロセスにどのように適用されるかを理解したいと思います。 以下は、systemctl status vcoagent.serviceの関連出力です。 ● vcoagent.service - Observability Agent Loaded: loaded (/etc/systemd/system/vcoagent.service; ena...

Admin

Linuxで非権利モードでページテーブルを読み取ることはできますか?
memory-management

Linuxで非権利モードでページテーブルを読み取ることはできますか?

これはUnixとLinuxでの最初の質問です。現在、仮想メモリについて学んでいます。 この素晴らしい論文に感謝します。ドラマー(CCS'16)。 Android 6.0.1では、バディアロケータをだまして脆弱なページにページテーブルページを割り当てます(対応するLinuxカーネルは~3.18.10.) 権限のない作業を行います(最終的な目的は次のとおりです。)root権限のエスカレーション.). しかし、ユーザーモードでページテーブルページにアクセスする方法がわかりません。仮想メモリでは、仮想メモリアドレス全体がカーネル空間とユーザ空間(例えば、上位 1GB...

Admin

プロセスメモリレイアウト - ヒープ、データ、mmap領域の違い
memory-management

プロセスメモリレイアウト - ヒープ、データ、mmap領域の違い

私はオンラインでLinuxプロセスのメモリレイアウトについて矛盾するか不明な説明をたくさん見ました。通常よく使われる写真良い: 別の共通点がある説明する言うことができる: データセグメントには、事前定義された値があり、変更できるグローバルまたは静的変数のみが含まれます。ヒープには、通常、データセグメントの終わりから始まるヒープセクションと呼ばれるメモリ部分に格納されている動的に割り当てられたデータが含まれます。 そして返品: 通常、ヒープはCランタイムによって生成および管理される特定のメモリ領域ですmalloc(システムコールを使用して増減brk し...

Admin

常駐メモリサイズRESは、エージング後10日後に自動的に減少します。
memory-management

常駐メモリサイズRESは、エージング後10日後に自動的に減少します。

私のアプリケーションはいくつかのプロセスで構成されています。各プロセスには複数のスレッドがあります。 ヒープ・メモリー領域は、操​​作中に動的に割り当てられ、解放されます。 私のアプリケーションにメモリリークのバグがあり、それを修正しました。その後、旧正月連休中にエージングテストを実施しましたが、その結果、バグが完全に修正されたことを証明しました。 バーンインテスト中に、別の監視プロセスは定期的にアプリケーションプロセスの/ proc / PID / statmを読み取り、その値をファイルに書き込みます。 13日後、メモリログファイルを分析しました。 最初の...

Admin

Chromeで利用可能なRAM容量のハードキャップ/制限を設定する方法はありますか?
memory-management

Chromeで利用可能なRAM容量のハードキャップ/制限を設定する方法はありますか?

Steam DeckでLinux(SteamOS / Arch Linux)を使用しています。 Chromeがコマンドライン引数で使用できる最大合計RAMにハードキャップ/制限を設定する方法はありますか? (8GBデバイス最大16GB) Chromeは8GB RAMのWindowsノートブックで開いている多くのタブでうまく機能し、Chromeに組み込まれているタスクマネージャを使用していつでも個々のプロセスを終了できます。 ただし、Steam DeckのArch Linuxでは、タブがあまりにも多くの適切に最適化されていないサイトが原因で、Chromeに組み...

Admin

プロセスのカーネルモードでコンテキスト切り替えが発生したときにカーネルスタックポインタを格納するためにページテーブルが使用されますか?
memory-management

プロセスのカーネルモードでコンテキスト切り替えが発生したときにカーネルスタックポインタを格納するためにページテーブルが使用されますか?

2つの質問があります。 ユーザー空間アプリケーション/プロセスがカーネルモードで実行されているとします。今コンテキスト切り替えが発生すると、プロセスのカーネルスタックポインタがtask_struct。これを行うには?にマップされる(これは)PTEページテーブルに(ページテーブルエントリ)を作成します。Kernel Stack PointerVirtual addressPhysical Address の場合、kthreadコンテキスト切り替えをサポートするページテーブルはありますか? ...

Admin

mmioはioデバイスにどのようにルーティングされますか?
memory-management

mmioはioデバイスにどのようにルーティングされますか?

私は、Linuxを実行している最新のx86システムで、IOデバイスが「一般的な」メモリアドレス空間にどのようにマッピングされるかを理解したいと思います。 私が理解したいいくつかの詳細は次のとおりです。 cat /proc/iomemIOメモリマッピング領域のリストを印刷します(印刷物理住所)が不連続です。 これらの領域は、カーネルモジュールによって実行時に動的に要求され、<linux / ioport.h>で定義されているrequest_mem_region関数を介して割り当てることができます。 x86マシンは、movメモリアクセスとIO(...

Admin

一部のUNIX実装では、memalign()を介して割り当てられたメモリブロックに対してfree()を呼び出すことはできません。
memory-management

一部のUNIX実装では、memalign()を介して割り当てられたメモリブロックに対してfree()を呼び出すことはできません。

私はLinuxだけを使用していますが、これが何を意味するのか知りたいです。 ~からLinuxプログラミングインターフェース: 割り当てられたメモリブロックを使用するか、memalign()空きposix_memalign() 容量を使用する必要がありますfree()。 一部のUNIX実装では、実装は割り当てられたメモリブロックを使用し、適切な並べ替えでそのブロック内のアドレスへのポインタを返すため、割り当てられたメモリブロックを介してfree()呼び出すことはできません。 glibcの実装にはこれらの制限は適用されません。memalign()memali...

Admin

Linuxスワップパーティションが大きすぎますか?
memory-management

Linuxスワップパーティションが大きすぎますか?

Linuxスワップパーティションが大きすぎますか? 私は答えが「いいえ」だと確信していますが、それについての資料が見つからなかったので尋ねたいと思いました。 これと比較して、デフォルトのWindowsスワップファイルpagefile.sysが大きすぎる可能性があります。一般的に引用される上限は、インストールされたRAMの3倍です。そうしないと、システムが正常に動作しなくなる可能性があります。 違いは、Linux仮想メモリはコンパイルオプションは言うまでもなく、カーネルパラメータを介して高度に設定可能ですが、Windows仮想メモリはほとんど存在しないことです...

Admin

カスタムシステムコールを使用してカーネルからプロセスのページテーブルにアクセスするには?
memory-management

カスタムシステムコールを使用してカーネルからプロセスのページテーブルにアクセスするには?

私はUbuntu 16.04、カーネル:4.17.4を使用しています。 プロセスのページテーブルにアクセスしたい。アイデアは、acコードからカスタムシステムコールを呼び出し、そのシステムコールがプロセスのページテーブルにアクセスできることです。システムコールを設計する方法は?関連する例や読書があればありがとうございます。 私の使命は、システムコールを使用して実行するプロジェクトの一部のページテーブルエントリを変更する(一部の仮想アドレスを物理アドレスマッピングに変更する)ことです。 ...

Admin

LinuxのRAMからファイルベースの実行可能ページを削除する方法は?
memory-management

LinuxのRAMからファイルベースの実行可能ページを削除する方法は?

ページが正しくマッピング解除されていることをmadvise(MADV_DONTNEED)確認して試しました。/proc/pid/pagemapページ内の機能はアクセスされていませんが、一部のページはすばやく再マップされました。私が知っている限り、アクティブリストと非アクティブリストの2つのリストがあります。madvise(MADV_DONTNEED)ページは両方のリストから削除されます。これが正しい場合は、ページが再ロードされる可能性があるページのアドレスにアクセスするCPU以外に何がありますか?参照コードは非常に役に立ちます。私の目標は、ページを削除して再...

Admin

仮想メモリ管理でVMAを操作するときの修正とはどういう意味ですか?
memory-management

仮想メモリ管理でVMAを操作するときの修正とはどういう意味ですか?

私が読んでいる「Linux仮想メモリマネージャについて」ゴーマンの地音。 存在する第4章プロセスアドレス空間について、作成、ロック、ロック解除などのVMA操作を紹介するときは、テキストに「修復領域」と呼ばれます。 「修理」とは正確に何を意味しますか?同じ方法で他のVMA操作にも適用されますか? 詳細な見積もり: Linuxはsys_mlock()によって実装されたシステムコールmlock()を介して特定のアドレス範囲のページをメモリにロックすることができ、その呼び出しグラフは図4.10に示されています。高いレベルでは、機能は簡単です。ロックするアドレス範囲...

Admin

大きなページサイズページングのみを使用するシステムで内部断片化がどのように発生するかを理解する
memory-management

大きなページサイズページングのみを使用するシステムで内部断片化がどのように発生するかを理解する

以下は、オペレーティングシステムのテキストから抜粋したものです。Calvinet al。他。 ページング方式を使用すると、外部断片化は発生しません。すべての空きフレームを必要なプロセスに割り当てることができます。ただし、内部断片化がある可能性があります。フレームは単位で割り当てられます。プロセスのメモリ要件がページ境界と一致しない場合最後に割り当てられたフレームが完全に埋められない可能性があります。。たとえば、ページサイズが2,048バイトの場合、バイトプロセスにはページとバイトが72,766必要です。フレームが割り当てられ、バイトの内部断片化が発生します...

Admin