Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
仮想記憶 ~確認編~
Satoru Takeuchi
PRO
January 23, 2023
Technology
0
25
仮想記憶 ~確認編~
以下動画のテキストです。
https://youtu.be/J3x2SI_9Tkk
Satoru Takeuchi
PRO
January 23, 2023
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
C言語を知らない人がびっくりしそうなC言語の特徴 ~変数定義編~
sat
PRO
1
51
仮想記憶 ~概念編~
sat
PRO
2
39
ゆく年くる年2022
sat
PRO
0
170
Capacity-aware Dynamic Volume Provisioning For LVM-based Local Storage
sat
PRO
2
190
Rook/Cephストレージシステムを開発しながらupstream OSSに成果を還元してきた取り組み
sat
PRO
2
490
俺とサブウーファー
sat
PRO
0
150
Revealing BlueStore Corruption Bugs in Containerized Ceph Clusters
sat
PRO
1
120
『Linuxのしくみ』増補改訂版発売記念イベント ~ Linuxのしくみのしくみ ~
sat
PRO
2
680
GitHub-hosted runnerでそこまでやるの!?Rookの場合
sat
PRO
0
500
Other Decks in Technology
See All in Technology
Cloudflare Workersで動くOG画像生成器
aiji42
1
490
PHPのimmutable arrayとは
hnw
1
150
re:Invent2022 前後の Amazon EventBridge のアップデートを踏まえつつ、情シスの仕事をより楽しくしたい話。 / EventBridge for Information Systems Department
_kensh
2
700
AWS Cloud Forensics & Incident Response
e11i0t_4lders0n
0
220
20230121_BuriKaigi
oyakata2438
0
180
Oktaの管理者権限を適切に移譲してみた
shimosyan
2
260
OPENLOGI Company Profile
hr01
0
12k
IoTを始めたきっかけの話と個人でできるIoTの今後 / 新年LT会「私の愛するIoT 2023」
you
0
230
目指せCoverage100%! AutoScale環境におけるSavings Plans購入戦略 / JAWS-UG_SRE_Coverage
taishin
0
480
Multi-Cloud Gatewayでデータを統治せよ!/ Data Federation with MCG
tutsunom
1
220
S3とCloudWatch Logsの見直しから始めるコスト削減 / Cost saving S3 and CloudWatch Logs
shonansurvivors
0
230
OCI DevOps 概要 / OCI DevOps overview
oracle4engineer
PRO
0
490
Featured
See All Featured
Infographics Made Easy
chrislema
235
17k
How To Stay Up To Date on Web Technology
chriscoyier
779
250k
The Brand Is Dead. Long Live the Brand.
mthomps
48
2.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
22
1.7k
Streamline your AJAX requests with AmplifyJS and jQuery
dougneiner
128
8.8k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
175
9.1k
The Invisible Customer
myddelton
113
12k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
318
19k
Building Your Own Lightsaber
phodgson
96
4.9k
Why Our Code Smells
bkeepers
PRO
326
55k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
24
4.5k
The Invisible Side of Design
smashingmag
292
48k
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 仮想記憶 ~概念編~」で述べたことが実証できた • 📝「どうやって仮想アドレスを物理アドレスに変換しているか」について説明する動 画を作成見込み