Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
プロセスへのメモリ割り当て(1) mmap
Search
Satoru Takeuchi
PRO
July 10, 2024
Technology
2
120
プロセスへのメモリ割り当て(1) mmap
以下動画のテキストです。
https://youtu.be/n7mq-LYx5SY
Satoru Takeuchi
PRO
July 10, 2024
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
俺とVSCode Python Debugger Extension
sat
PRO
1
160
コード再利用のしくみ ライブラリ
sat
PRO
3
42
AWKへの愛を語る
sat
PRO
3
510
syncコマンドのデータ同期 完了待ちやエラー検出
sat
PRO
0
49
動作中のLinux環境の全メモリを見る
sat
PRO
1
67
Linuxの時間を10秒止める
sat
PRO
2
190
プロセスへのメモリ割り当て4 - 実際に使うときにメモリを獲得するデマンドページング(実践編)
sat
PRO
1
99
プロセスへのメモリ割り当て(3) 実際に使うときにメモリを獲得するデマンドページング
sat
PRO
1
64
プロセスへのメモリ割り当て2-Pythonのようなナウい言語ではどうやってメモリ獲得するのか
sat
PRO
1
110
Other Decks in Technology
See All in Technology
失敗しないOpenJDKの非互換調査
tabatad
0
200
プロンプトエンジニアリング入門 Rev.3
seosoft
0
160
AWS SAW(AWS Support Automation Workflows)をもっと広めたい
kazzpapa3
2
170
内製化によるシステムモダナイゼーションの実践
kazokmr
3
500
サーバーサイドのデータプレーンプログラミング 〜 NVIDIA Blue Field / DOCA 〜
ebiken
PRO
1
220
AIを使って小説を書こう!【2024/10/25講演資料】
kamomeashizawa
0
160
KaigiOnRails2024
igaiga
6
2.9k
Why and Why not of enabling swap in Kubernetes
hwchiu
0
440
端末が簡単にリモートから操作されるデモを通じて ソフトウェアサプライチェーン攻撃対策の重要性を理解しよう
kitaji0306
0
130
Hotwire光の道とStimulus
nay3
5
2k
CAMERA-Suite: 広告文生成のための評価スイート / ai-camera-suite
cyberagentdevelopers
PRO
1
130
Trusted Types API と Vue.js
lycorptech_jp
PRO
1
260
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.5k
Making the Leap to Tech Lead
cromwellryan
131
8.9k
The Art of Programming - Codeland 2020
erikaheidi
51
13k
Testing 201, or: Great Expectations
jmmastey
38
7k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Side Projects
sachag
452
42k
Being A Developer After 40
akosma
86
590k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Designing for humans not robots
tammielis
249
25k
Designing for Performance
lara
604
68k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Designing on Purpose - Digital PM Summit 2013
jponch
114
6.9k
Transcript
プロセスへのメモリ割り当て(1) mmap Jul. 8th, 2024 Satoru Takeuchi X: satoru_takeuchi 1
はじめに • 前提 ◦ メモリはプロセスが起動するときに割り当てられる ◦ 足りなければ動的にメモリを獲得する • はなすこと ◦
プロセスはどうやって動的にメモリを獲得するのか • 備考 ◦ 📝 デマンドページング(今は意味がわからなくて OK)は無いものとして話します ▪ たぶん次回説明します 2
プロセスはどうやって動的にメモリを獲得するのか • mmapというシステムコールを使います ◦ 📝 brkというのもありますが割愛 • インタフェース: man 2
mmapより抜粋 ◦ void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); ▪ length: マップする領域の長さ ▪ 戻り値: マップされた領域のアドレス • バイト単位ではなくページ単位で割り当てる 3
mmapのイメージ 4 物理メモリ 仮想アドレス空間 プロセスAのメモリ mmap発行前 mmap発行後 物理メモリ 仮想アドレス空間 プロセスAのメモリ
拡張された領域 未割当 未割当 mmapで割当
実機確認 • mmapによって新規メモリ領域がマップされたことを確認 • mmap.goプログラム ◦ プロセスのメモリマップ (/proc/<pid>/maps)を表示 ◦ mmapでメモリ領域を獲得
◦ プロセスのメモリマップを再度表示 5
まとめ • プロセスへのメモリ割り当てにはmmapというシステムコールを使う • 割り当てはページ単位で行う 6