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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Satoru Takeuchi
PRO
January 15, 2023
Technology
300
2
Share
仮想記憶 ~概念編~
以下動画のテキストです。
https://youtu.be/8E85MD6INYs
Satoru Takeuchi
PRO
January 15, 2023
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
システム強制終了時にファイルシステムの整合性を保つ~ コピーオンライト編 ~
sat
PRO
0
40
システム強制終了時に ファイルシステムの整合性を保つ ~ ジャーナリング編 ~
sat
PRO
1
45
ファイルシステムの整合性を回復するfsck
sat
PRO
1
45
小学校5,6年生向けキャリア教育 大人になるまでの道
sat
PRO
8
3.9k
ファイルシステムの不整合
sat
PRO
2
140
書籍執筆での生成AIの活用
sat
PRO
2
480
ChatGPTに従って体調管理2026
sat
PRO
0
180
eBPF
sat
PRO
1
150
waruiBPF
sat
PRO
0
130
Other Decks in Technology
See All in Technology
多角的な視点から見たAGI
terisuke
0
120
フロントエンドの相手が変わった - AIが加わったWebの新しいインターフェース設計
azukiazusa1
31
10k
プラットフォームエンジニアリングの実践 - AWS コンテナサービスで構築する社内プラットフォーム / AWS Containers Platform Meetup #1
literalice
1
240
エージェントスキルを作って自分のインプットに役立てよう
tsubakimoto_s
0
540
ハーネスエンジニアリング入門
knishioka
0
110
Scovilleモバイルエンジニア募集中.pdf
julienrudin
0
150
小説執筆のハーネスエンジニアリング
yoshitetsu
0
910
拝啓、あの夏の僕へ〜あなたも知っているApp Runnerの世界〜
news_it_enj
0
210
Percolatorを廃止し、マルチ検索サービスへ刷新した話 / Search Engineering Tech Talk 2026 Spring
visional_engineering_and_design
0
310
Agents CLI と Gemini Enterprise Agent Platform で マルチエージェント開発が楽しくなる!
kaz1437
0
240
ブラウザの投機的読み込みと投機ルールAPIを理解し、Webサービスのパフォーマンスを最適化する
shuta13
3
270
Agent の「自由」と「安全」〜未来に向けて今できること〜
katayan
0
330
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
515
110k
30 Presentation Tips
portentint
PRO
1
290
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
280
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
330
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
550
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
300
Scaling GitHub
holman
464
140k
It's Worth the Effort
3n
188
29k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Transcript
仮想記憶 ~ 概念編 ~ Jan. 15th, 2022 Satoru Takeuchi twitter:
satoru_takeuchi
はじめに • 仮想記憶という機能の説明 ◦ システム上で複数のプロセスを動作させる際の課題を解決 ◦ プロセスごとに独自のメモリ空間を見せる ◦ 本動画では概念だけ説明。機能を実現するしくみは別動画で説明 •
事前に見ておく必要がある動画 ◦ その34 実行ファイル • 話を簡単にするために実行ファイルはPIEではないとする ◦ その35 Address Space Location Randomization
プロセスが生まれてから消えるまで 1. ユーザが実行ファイルを指定してカーネルにプロセスを実行するよう依頼 2. 実行ファイル内の情報をもとにコードとデータをメモリ上に配置 3. 実行ファイル内に書かれているエントリポイントから実行開始 test(実行ファイル) メモリ コード
データ コード データ マップ
二つの課題 • コード/データマップ位置の重複 • データ保護
コード/データマップ位置の重複 • 例) 同じプロセスを二つ実行 test(実行ファイル) メモリ コード データ
コード/データマップ位置の重複 • 例) 同じプロセスを二つ実行 1. testファイルからプロセスを生成 test(実行ファイル) メモリ コード データ
コード データ マップ
コード/データマップ位置の重複 • 例) 同じプロセスを二つ実行 1. testファイルからプロセスを生成 2. testファイルから二つめのプロセスを生成しようとするが … test(実行ファイル)
メモリ コード データ コード データ 既にマップ済み
データ保護 • システムに2つのプロセスA,Bが存在すると仮定 プロセスA プロセスB メモリ *) カーネルの存在は省略
データ保護 • お互いのメモリにアクセスできるとまずい プロセスA 盗み見、破壊可能? プロセスB メモリ
仮想記憶 • Linuxや他の多くのOSは仮想記憶という機能によって2つの問題を解決 ◦ 📝 他にも方法は色々あるが省略 • プロセスごとに独自のメモリ空間を見せる 物理メモリ(システムに搭載されているメモリ )
プロセスAの 仮想アドレス空間 物理アドレス空間 プロセスAのメモリ
個々のプロセスの挙動 • プロセスが指定するアドレスはすべて仮想アドレス ◦ 物理メモリに直接アクセス不能 物理メモリ(システムに搭載されているメモリ ) プロセスAのメモリ 1. 仮想アドレスXにアクセス
2. アドレス変換& 物理アドレスYにアクセス
複数プロセスがある場合 物理メモリ プロセスAの 仮想アドレス空間 プロセスBの 仮想アドレス空間 プロセスAのメモリ プロセスBのメモリ
「コード/データマップ位置の重複」の解決 • 例) 同じプロセスを二つ実行 ◦ testファイルからプロセス Aを生成 test(実行ファイル) 物理メモリ コード
データ
「コード/データマップ位置の重複」の解決 • 例) 同じプロセスを二つ実行 1. testファイルからプロセス Aを生成 test(実行ファイル) 物理メモリ コード
データ Aのコード Aのデータ プロセスAの 仮想アドレス空間
「コード/データマップ位置の重複」の解決 • 例) 同じプロセスを二つ実行 1. testファイルからプロセス Aを生成 2. testファイルからプロセス Bを生成
test(実行ファイル) 物理メモリ コード データ Aのコード Aのデータ プロセスAの 仮想アドレス空間 プロセスBの 仮想アドレス空間 Bのコード Bのデータ *) 実際はコード領域は共有するが説明は省略
データ保護 物理メモリ プロセスAの 仮想アドレス空間 プロセスBの 仮想アドレス空間 プロセスAのメモリ プロセスBのメモリ 見えない 見えない
まとめ • 仮想記憶はシステム上で複数のプログラムを実行する際の課題を解決できる ◦ コード/データのマップ先の重複 ◦ データ保護 • プロセスごとに仮想アドレス空間をもつ ◦
プロセスが指定するアドレスは全部仮想アドレス • 詳細は別動画で