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
90
プロセスへのメモリ割り当て(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
AWKへの愛を語る
sat
PRO
3
460
syncコマンドのデータ同期 完了待ちやエラー検出
sat
PRO
0
24
動作中のLinux環境の全メモリを見る
sat
PRO
1
50
Linuxの時間を10秒止める
sat
PRO
2
180
プロセスへのメモリ割り当て4 - 実際に使うときにメモリを獲得するデマンドページング(実践編)
sat
PRO
1
68
プロセスへのメモリ割り当て(3) 実際に使うときにメモリを獲得するデマンドページング
sat
PRO
1
46
プロセスへのメモリ割り当て2-Pythonのようなナウい言語ではどうやってメモリ獲得するのか
sat
PRO
1
81
サイボウズのOSPO
sat
PRO
3
270
無いはずのパーティションがある Phantom Atari Partition
sat
PRO
1
67
Other Decks in Technology
See All in Technology
HolidayJp.jl を作りました
mrkn
0
110
日経電子版から始まった内製開発の現在地と向き合っている課題/inhouse
nishiuma
0
230
エンジニア視点で見る、 組織で運用されるデザインシステムにするには
shunya078
1
160
Azure Cosmos DB での時系列ログの運用と改善
sansantech
PRO
0
190
X-Correlation Injections (or How to break server-side contexts)
fransrosen
0
360
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
0
13k
セキュリティ監視の内製化 効率とリスク
mixi_engineers
PRO
4
640
Dify - LINE Bot連携 考え方と実用テクニック
uezo
5
1.1k
リクルートのデータマネジメント組織に 求められてきたコト
recruitengineers
PRO
4
340
contenteditableと向き合う
kikuchikakeru
2
140
Eventual Detection Engineering
ken5scal
0
390
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
41k
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
22
580
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
248
20k
Building an army of robots
kneath
302
42k
StorybookのUI Testing Handbookを読んだ
zakiyama
25
5k
Large-scale JavaScript Application Architecture
addyosmani
508
110k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
88
15k
Facilitating Awesome Meetings
lara
49
5.9k
Into the Great Unknown - MozCon
thekraken
28
1.4k
Stop Working from a Prison Cell
hatefulcrawdad
266
20k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
The Cost Of JavaScript in 2023
addyosmani
39
5.1k
Building Adaptive Systems
keathley
36
2.1k
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