64ビットと32ビットのマルチスレッドLinuxプロセスのアドレス空間レイアウトの詳細を知りたい。それを記述する記事へのリンクは高く評価されます。そして、私はそれを直接扱うので、全体の詳細を知る必要があることに注意してください。だから私は、たとえば、スタックスタックの場所、ヒープ、スレッドのプライベートデータなどを知る必要があります。マルチスレッドLinuxプロセスのアドレス空間レイアウト
6
A
答えて
6
スレッドの開始時にスレッドのスタックが割り当てられます。 pthread_attr
s)。 TLSデータは、スレッドのスタックの先頭に格納されます。スレッドのスタックのサイズは固定で、通常は2〜8 MBです。スレッドがライブ中に各スレッドのスタックサイズを変更することはできません。 (メインスレッドを実行する最初のスレッドはアドレス空間の最後にメインスタックを使用していますが、このスタックは大きくなり、縮小する可能性があります)。ヒープとコードはすべてのスレッド間で共有されます。 Mutexesはdata
セクションのどこにでも置くことができます。それは単なる構造体です。
スレッドのスタックのMMAPは、任意のアドレスに固定されていない:
Glibc sources PS現代GCCは、スレッドが
関連する問題
- 1. プロセスのアドレス空間と仮想メモリ
- 2. Linuxプロセスの「ユーザー」領域のレイアウト
- 3. Linuxのプロセスのアイドル時間
- 4. i386 linuxカーネルにqemuを使用したアドレス空間識別子
- 5. Linuxのプロセス間通信
- 6. システムDLLのアドレス空間
- 7. 質問のアドレス空間
- 8. Linuxユーザー空間アプリケーションコンパイルエラー
- 9. XML暗号化アドレス空間
- 10. 別のプロセスのアドレス空間で、dllの関数を呼び出す方法
- 11. アドレス空間レイアウトのランダム化を無効にして再度有効にする
- 12. Linuxでのexec()プロセスの測定時間
- 13. 複数のスレッドの仮想アドレス空間?
- 14. linuxカーネル空間のユーザー空間スタックトレースを表示するには
- 15. 仮想アドレスと仮想アドレス空間の理解
- 16. アドレス空間レイアウトランダム化(ALSR)とmmap
- 17. linuxのプログラムメモリのレイアウト
- 18. プロセス間メモリの編集 - 変更されたアドレスの検索
- 19. 1つのプロセスでアドレス空間を使用できるメモリの最大量を確認する方法
- 20. プロセスに利用可能な仮想アドレス空間のサイズを決めるのは何ですか?
- 21. プロセスLinuxでのトレースツール
- 22. Linuxでバイナリのアドレス空間のランダム化を無効にするにはどうすればよいですか?
- 23. 親プロセスの子プロセスの数C/C++、LINUX
- 24. 64ビットLinuxでは、どのアドレス空間がカーネルによって占有されていますか?
- 25. Linuxで特定のタスクのユーザー空間プロセスからページを取得する方法は?
- 26. ジオロケーション/地理空間テストの有効なアドレスの一覧/データベース
- 27. P2Pネットワークのための超並列IPアドレス空間?
- 28. Linuxゼロコピー:vmspliceで2つのプロセス間でメモリページを転送する
- 29. JVMとJava Linuxプロセス
- 30. 可変パーティション方式の仮想アドレス空間
は、特に私はについての詳細を知りたいSplitStacks機能に無制限であることを積み重ねることができます
その部分は書き込み可能である。例えば、私はコードを含むアドレス空間の部分に対処する必要はありません。なぜなら、書き込み可能ではないからです。 – MetallicPriest
スレッドなしのLinuxプロセスの詳細を知っていますか?非スレッドとマルチスレッドの違いは、スタックの数と場所です。 – osgx