Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
180
プロセスへのメモリ割り当て(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
利きプロセススケジューラ
sat
PRO
5
3.1k
俺とVSCode Python Debugger Extension
sat
PRO
1
190
コード再利用のしくみ ライブラリ
sat
PRO
3
55
AWKへの愛を語る
sat
PRO
3
530
syncコマンドのデータ同期 完了待ちやエラー検出
sat
PRO
0
85
動作中のLinux環境の全メモリを見る
sat
PRO
1
110
Linuxの時間を10秒止める
sat
PRO
2
210
プロセスへのメモリ割り当て4 - 実際に使うときにメモリを獲得するデマンドページング(実践編)
sat
PRO
1
140
プロセスへのメモリ割り当て(3) 実際に使うときにメモリを獲得するデマンドページング
sat
PRO
1
79
Other Decks in Technology
See All in Technology
【ASW21-01】STAMPSTPAで導き出した課題に対する対策立案手法の提案
hianraku9498
0
540
GeminiとUnityで実現するインタラクティブアート
hokkey621
0
590
検証と資産化を形にするプロダクト組織へ/tapple_pmconf2024
corin8823
1
8.4k
12/2(月)のBedrockアプデ速報(re:Invent 2024 Daily re:Cap #1 with AWS Heroes)
minorun365
PRO
2
300
LINEヤフーにおける超大規模プラットフォーム実現への挑戦と学び / Challenges and Lessons in Building an Ultra-Large-Scale Platform at LY Corporation
hhiroshell
3
1.1k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
52k
AWS認定試験の長文問題を早く解くコツ
keke1234ke
0
160
開志専門職大学特別講義 2024 オープニング
1ftseabass
PRO
0
220
多様なロール経験が導いたエンジニアキャリアのナビゲーション
coconala_engineer
1
130
241130紅白ぺぱ合戦LT「編集の技術」
toya524287
5
620
ONNX推論クレートの比較と実装奮闘記
emergent
0
290
ポストモーテムレビューをブレームレスに運営し有効な改善アクションを引き出すために必要だったこと / What is needed to operate postmortem blamelessly and elicit improvement actions
yamaguchitk333
0
190
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
A Tale of Four Properties
chriscoyier
157
23k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Bash Introduction
62gerente
608
210k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
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