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
仮想記憶 ~確認編~
Search
Satoru Takeuchi
PRO
January 23, 2023
Technology
1
250
仮想記憶 ~確認編~
以下動画のテキストです。
https://youtu.be/J3x2SI_9Tkk
Satoru Takeuchi
PRO
January 23, 2023
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
利きプロセススケジューラ
sat
PRO
5
2.9k
俺とVSCode Python Debugger Extension
sat
PRO
1
180
コード再利用のしくみ ライブラリ
sat
PRO
3
49
AWKへの愛を語る
sat
PRO
3
520
syncコマンドのデータ同期 完了待ちやエラー検出
sat
PRO
0
64
動作中のLinux環境の全メモリを見る
sat
PRO
1
96
Linuxの時間を10秒止める
sat
PRO
2
210
プロセスへのメモリ割り当て4 - 実際に使うときにメモリを獲得するデマンドページング(実践編)
sat
PRO
1
120
プロセスへのメモリ割り当て(3) 実際に使うときにメモリを獲得するデマンドページング
sat
PRO
1
73
Other Decks in Technology
See All in Technology
AI前提のサービス運用ってなんだろう?
ryuichi1208
8
1.4k
開発生産性を上げながらビジネスも30倍成長させてきたチームの姿
kamina_zzz
2
1.7k
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
190
強いチームと開発生産性
onk
PRO
36
12k
Zennのパフォーマンスモニタリングでやっていること
ryosukeigarashi
0
230
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
13k
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
310
LINEヤフーにおけるPrerender技術の導入とその効果
narirou
1
150
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
Terraform Stacks入門 #HashiTalks
msato
0
360
Featured
See All Featured
Unsuck your backbone
ammeep
668
57k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Building Applications with DynamoDB
mza
90
6.1k
Done Done
chrislema
181
16k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Speed Design
sergeychernyshev
25
620
Six Lessons from altMBA
skipperchong
27
3.5k
Automating Front-end Workflow
addyosmani
1366
200k
Code Review Best Practice
trishagee
64
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Transcript
仮想記憶 ~ 確認編 ~ Jan. 23rd, 2023 Satoru Takeuchi twitter:
satoru_takeuchi
はじめに • 「その54 仮想記憶 ~概念編~」で説明したことを実機で確認 • 話を簡単にするために実行ファイルはPIEではないとする ◦ その35 Address
Space Location Randomization
おさらい: 仮想記憶 • プロセスごとに固有の仮想アドレス空間を持つ ◦ プロセスは仮想アドレスしか指定できない ◦ 仮想アドレスにアクセスするとカーネルとハードウェアが連携して物理アドレスに変換し、物理メモリ にアクセス 物理メモリ(システムに搭載されているメモリ
) プロセスAの 仮想アドレス空間 物理アドレス空間 プロセスAのメモリ プロセスBのメモリ プロセスBの 仮想アドレス空間
実験してみよう • 実験プログラム 1. グローバル変数fooの値とアドレスを表示して ENTERキーが押されるのを待つ 2. もう一度(1)と同じことをする 3. fooの値を書き換えた後に
fooの値とアドレスを表示して ENTERキーが押されるのを待つ • やること 1. 上記プログラムを2つ動かす。それぞれを A,Bとする 2. 2つのプログラムが同じアドレスにマップされていることを確認 3. A、Bともにfooの値とアドレスが同じであることを確認 4. Aだけfooの値を書き換える(Aをstep2まで実行) 5. Bのfooの値は変わってないことを確認 (Bをstep2まで実行) 6. Bのfooの値を書き換える(Bをstep2まで実行)
初期状態 物理メモリ(システムに搭載されているメモリ ) プロセスAの 仮想アドレス空間 物理アドレス空間 プロセスAのメモリ プロセスBのメモリ プロセスBの 仮想アドレス空間
foo(=0) foo(=0) &foo (=0x571260) &foo (0x571260)
プロセスAのfooの値を書き換え 物理メモリ(システムに搭載されているメモリ ) プロセスAの 仮想アドレス空間 物理アドレス空間 プロセスAのメモリ プロセスBのメモリ プロセスBの 仮想アドレス空間
foo(=100) foo(=0) &foo (=0x571260) &foo (0x571260)
プロセスBのfooの値を書き換え 物理メモリ(システムに搭載されているメモリ ) プロセスAの 仮想アドレス空間 物理アドレス空間 プロセスAのメモリ プロセスBのメモリ プロセスBの 仮想アドレス空間
foo(=100) foo(=100) &foo (=0x571260) &foo (0x571260)
まとめ • 「その54 仮想記憶 ~概念編~」で述べたことが実証できた • 📝「どうやって仮想アドレスを物理アドレスに変換しているか」について説明する動 画を作成見込み