Submit Search
Upload
Basic of virtual memory of Linux
•
10 likes
•
11,758 views
Tetsuyuki Kobayashi
Follow
written in Japanese
Read less
Read more
Technology
Report
Share
Report
Share
1 of 39
Download now
Download to read offline
Recommended
[オンライン開催:東京エリア・関西合同Debian勉強会 (2020/4/18(土))](https://debianjp.connpass.com/event/172494/)での発表資料です。 wireguard を半年ぐらい使ってみり、いくつかのネットワーク形態を試してみた知見を共有します。
Wireguard 実践入門
Wireguard 実践入門
Kazuhiro Nishiyama
現在のマルチスレッドプログラミングの抱える問題点と、代替案をわかりやすく解説いたします。最近登場したConcurrent Revisionsも解説します。
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
イベント名:設立3周年記念チャリティーセミナー 講師:日本仮想化技術 宮原 日時:2010/2/6 アジェンダ: • KVMの概要 • KVM仮想マシン作成のコツ • KVMベンチマークテスト 概要: リリース直後に異例の速さでカーネルに取り込まれたKVMですが、VMwareやXenに比べて、まだまだ活用術や情報が少ないのが現状です。本セッションでは、KVMの仕組み、活用方法、性能評価の結果について解説いたします。
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
2014/2/22 に開催された Yocto Japan の勉強会のプレゼンテーション資料です。
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
Description and usage of DPDK Poll Mode Driver (in Japanese)
Dpdk pmd
Dpdk pmd
Masaru Oki
Android起動周りのノウハウ
Android起動周りのノウハウ
chancelab
コンテナセキュリティにおける権限制御 ~Seccompとかよくわからんけどとりあえずこれくらいはやっておこう~ (OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料) 2022年3月9日(水) NTTデータ システム技術本部生産技術部 クラウド技術センタ 望月 敬太
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
Recommended
[オンライン開催:東京エリア・関西合同Debian勉強会 (2020/4/18(土))](https://debianjp.connpass.com/event/172494/)での発表資料です。 wireguard を半年ぐらい使ってみり、いくつかのネットワーク形態を試してみた知見を共有します。
Wireguard 実践入門
Wireguard 実践入門
Kazuhiro Nishiyama
現在のマルチスレッドプログラミングの抱える問題点と、代替案をわかりやすく解説いたします。最近登場したConcurrent Revisionsも解説します。
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
イベント名:設立3周年記念チャリティーセミナー 講師:日本仮想化技術 宮原 日時:2010/2/6 アジェンダ: • KVMの概要 • KVM仮想マシン作成のコツ • KVMベンチマークテスト 概要: リリース直後に異例の速さでカーネルに取り込まれたKVMですが、VMwareやXenに比べて、まだまだ活用術や情報が少ないのが現状です。本セッションでは、KVMの仕組み、活用方法、性能評価の結果について解説いたします。
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
2014/2/22 に開催された Yocto Japan の勉強会のプレゼンテーション資料です。
レシピの作り方入門
レシピの作り方入門
Nobuhiro Iwamatsu
Description and usage of DPDK Poll Mode Driver (in Japanese)
Dpdk pmd
Dpdk pmd
Masaru Oki
Android起動周りのノウハウ
Android起動周りのノウハウ
chancelab
コンテナセキュリティにおける権限制御 ~Seccompとかよくわからんけどとりあえずこれくらいはやっておこう~ (OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料) 2022年3月9日(水) NTTデータ システム技術本部生産技術部 クラウド技術センタ 望月 敬太
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
NTT DATA Technology & Innovation
2014-06-25(水) JJUGナイトセミナー「WildFly 8ローンチ記念」の発表資料です。
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
Yoshimasa Tanabe
Golang勉強会 in Kagawa http://gdgshikoku.connpass.com/event/26262/
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
Container SIG Meet-up 2017 Fallで発表した内容です.Lagopusについて,コンテナの接続については他のスライドの方がわかりやすいかもしれません.
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
オープンソースカンファレンス2022 Spring https://event.ospn.jp/osc2022-online-spring/ 発表資料です。
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu
Kernel/Vm探検隊 online part2. 発表動画: https://youtu.be/brrm328XItM?t=8221
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
2018年9月20日開催されたdb tech showcase Tokyo 2018で発表した資料です。
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Yahoo!デベロッパーネットワーク
10GbE、40GbEなどの極めて高速な通信をサポートするNICが、PCサーバの領域でも使われるようになってきている。 このような速度の通信をソフトウェア(OS)で処理し高い性能を得るには様々な障害があり、ハードウェア・ソフトウェア両面の実装を見直す必要がある。 本セッションでは、ハードウェア・ソフトウェア両面にどのような改良が行われてきており、性能を引き出すにはどのようにこれらを使用したらよいのかについて紹介する。
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
wata2ki
FlutterKaigi 2021で発表した内容です。 https://flutterkaigi.jp/#/ FlutterでのGraphQLの使用に関して下記内容にてまとめています。 ・GraphQLの概要 ・FlutterのGraphQL クライアントライブラリ ・graphqlライブラリについて ・gql_buildでのコード自動生成 ・プロジェクト構成例
FlutterでGraphQLを扱う
FlutterでGraphQLを扱う
IgaHironobu
オープンソースカンファレンス 2019 Tokyo/Spring 発表資料 #osc19tk https://www.ospn.jp/osc2019-spring/ 2019年2月22日(金)
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Goに関する資料をまとめたものです。
Go入門
Go入門
Takuya Ueda
東大電子情報工学科の田浦先生におよるオペーレーティングシステム授業で行なった「仮想マシンにおけるメモリ管理及びExtended Page Table」についての発表のスライドです。 発表で取り扱ったのはMerrifiel(2017)の"Performance Implications of Extended Page Tables on Virtualized x86 Processors"です。
仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理
Akari Asai
「新しいLinuxの教科書」を読む会 オンライン #12 https://linuxbook.connpass.com/event/208181/ の発表資料です
fdコマンドを使おう
fdコマンドを使おう
Hideaki Miyake
MikanOS(x86-64パソコン用OS)のUSBホストコントローラドライバを開発するにあたり,遭遇した罠を集めました。
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道
uchan_nos
低レイヤー入門
低レイヤー入門
demuyan
2017年10月27日、モノビットエンジン勉強会inサイバーコネクトツーにて、中嶋謙互が講演しました「ネットワークゲームにおける TCPとUDPの使い分け」のスライドになります。ネットワークゲームを製作する際にご参考頂けますと幸いです。 登壇者: 株式会社モノビット 取締役 CTO 中嶋謙互
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
Container Runtime Meetup #1の発表資料です。 コンテナを使うひとならほぼ全員が使っている(であろう)コンテナランタイムの筆頭「runc」を俯瞰します。 - 前半では、コンテナの標準化団体OCIの定めるコンテナランタイムの標準仕様OCI Runtime Specificationとruncの概要、及びその関係について述べています。 - 後半では、runcがコンテナをシステム上に作り出す流れをコードレベルで俯瞰しています。runcの持つサブコマンドの中でも、特にコンテナ作成処理が網羅されているrunサブコマンドに注目し、その実装に迫ります。
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰する
Kohei Tokunaga
2016年4月8日(金) FUKUOKA DevOps勉強会 #2 Dockerを使ったCI/CD 発表資料 http://peatix.com/event/157567
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Masahito Zembutsu
Tech Festa 2017で登壇した「Prometheus入門から運用まで徹底解説」のスライドです
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
貴仁 大和屋
2021/04/15に行われたAmazon Game Tech Conference 2021のセッション資料です。ゲームのお客様向けにAuroraとDynamoDBを題材としたアーキテクチャパターンをご紹介しています。
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
Making your own malloc library for troubleshooting. Presented at ELC2013.
Tips of Malloc & Free
Tips of Malloc & Free
Tetsuyuki Kobayashi
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introduction
Gene Chang
More Related Content
What's hot
2014-06-25(水) JJUGナイトセミナー「WildFly 8ローンチ記念」の発表資料です。
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
Yoshimasa Tanabe
Golang勉強会 in Kagawa http://gdgshikoku.connpass.com/event/26262/
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
Container SIG Meet-up 2017 Fallで発表した内容です.Lagopusについて,コンテナの接続については他のスライドの方がわかりやすいかもしれません.
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
Tomoya Hibi
オープンソースカンファレンス2022 Spring https://event.ospn.jp/osc2022-online-spring/ 発表資料です。
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu
Kernel/Vm探検隊 online part2. 発表動画: https://youtu.be/brrm328XItM?t=8221
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
2018年9月20日開催されたdb tech showcase Tokyo 2018で発表した資料です。
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Yahoo!デベロッパーネットワーク
10GbE、40GbEなどの極めて高速な通信をサポートするNICが、PCサーバの領域でも使われるようになってきている。 このような速度の通信をソフトウェア(OS)で処理し高い性能を得るには様々な障害があり、ハードウェア・ソフトウェア両面の実装を見直す必要がある。 本セッションでは、ハードウェア・ソフトウェア両面にどのような改良が行われてきており、性能を引き出すにはどのようにこれらを使用したらよいのかについて紹介する。
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
wata2ki
FlutterKaigi 2021で発表した内容です。 https://flutterkaigi.jp/#/ FlutterでのGraphQLの使用に関して下記内容にてまとめています。 ・GraphQLの概要 ・FlutterのGraphQL クライアントライブラリ ・graphqlライブラリについて ・gql_buildでのコード自動生成 ・プロジェクト構成例
FlutterでGraphQLを扱う
FlutterでGraphQLを扱う
IgaHironobu
オープンソースカンファレンス 2019 Tokyo/Spring 発表資料 #osc19tk https://www.ospn.jp/osc2019-spring/ 2019年2月22日(金)
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
Goに関する資料をまとめたものです。
Go入門
Go入門
Takuya Ueda
東大電子情報工学科の田浦先生におよるオペーレーティングシステム授業で行なった「仮想マシンにおけるメモリ管理及びExtended Page Table」についての発表のスライドです。 発表で取り扱ったのはMerrifiel(2017)の"Performance Implications of Extended Page Tables on Virtualized x86 Processors"です。
仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理
Akari Asai
「新しいLinuxの教科書」を読む会 オンライン #12 https://linuxbook.connpass.com/event/208181/ の発表資料です
fdコマンドを使おう
fdコマンドを使おう
Hideaki Miyake
MikanOS(x86-64パソコン用OS)のUSBホストコントローラドライバを開発するにあたり,遭遇した罠を集めました。
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道
uchan_nos
低レイヤー入門
低レイヤー入門
demuyan
2017年10月27日、モノビットエンジン勉強会inサイバーコネクトツーにて、中嶋謙互が講演しました「ネットワークゲームにおける TCPとUDPの使い分け」のスライドになります。ネットワークゲームを製作する際にご参考頂けますと幸いです。 登壇者: 株式会社モノビット 取締役 CTO 中嶋謙互
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
Container Runtime Meetup #1の発表資料です。 コンテナを使うひとならほぼ全員が使っている(であろう)コンテナランタイムの筆頭「runc」を俯瞰します。 - 前半では、コンテナの標準化団体OCIの定めるコンテナランタイムの標準仕様OCI Runtime Specificationとruncの概要、及びその関係について述べています。 - 後半では、runcがコンテナをシステム上に作り出す流れをコードレベルで俯瞰しています。runcの持つサブコマンドの中でも、特にコンテナ作成処理が網羅されているrunサブコマンドに注目し、その実装に迫ります。
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰する
Kohei Tokunaga
2016年4月8日(金) FUKUOKA DevOps勉強会 #2 Dockerを使ったCI/CD 発表資料 http://peatix.com/event/157567
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Masahito Zembutsu
Tech Festa 2017で登壇した「Prometheus入門から運用まで徹底解説」のスライドです
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
貴仁 大和屋
2021/04/15に行われたAmazon Game Tech Conference 2021のセッション資料です。ゲームのお客様向けにAuroraとDynamoDBを題材としたアーキテクチャパターンをご紹介しています。
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
What's hot
(20)
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
DPDKによる高速コンテナネットワーキング
DPDKによる高速コンテナネットワーキング
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
Apache Hadoop HDFSの最新機能の紹介(2018)#dbts2018
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
FlutterでGraphQLを扱う
FlutterでGraphQLを扱う
Docker Compose 徹底解説
Docker Compose 徹底解説
Go入門
Go入門
仮想マシンにおけるメモリ管理
仮想マシンにおけるメモリ管理
fdコマンドを使おう
fdコマンドを使おう
USB3.0ドライバ開発の道
USB3.0ドライバ開発の道
低レイヤー入門
低レイヤー入門
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
OCIランタイムの筆頭「runc」を俯瞰する
OCIランタイムの筆頭「runc」を俯瞰する
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Dockerライフサイクルの基礎 地雷を踏み抜けろ!
Prometheus入門から運用まで徹底解説
Prometheus入門から運用まで徹底解説
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Viewers also liked
Making your own malloc library for troubleshooting. Presented at ELC2013.
Tips of Malloc & Free
Tips of Malloc & Free
Tetsuyuki Kobayashi
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introduction
Gene Chang
Simple and efficient way to get the last log using MMAP
Simple and efficient way to get the last log using MMAP
Tetsuyuki Kobayashi
Tricky implementation of Go ARM soft float. Written in Japanese
Tricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft float
Tetsuyuki Kobayashi
第九回カーネル/VM探検隊での発表スライド
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
Hiraku Toyooka
NLKB-005
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
Hiraku Toyooka
Developing embedded systems requires physical board. Boost your project using QEMU system emulator.
Using QEMU for cross development
Using QEMU for cross development
Tetsuyuki Kobayashi
Inter-process method invocation using Binder in Android.
Android ipm 20110409
Android ipm 20110409
Tetsuyuki Kobayashi
The first impression of A64 instruction set.
ARM 64bit has come!
ARM 64bit has come!
Tetsuyuki Kobayashi
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
Minoru Nakamura
本PPT,为本人学习CPU架构以及并发程序设计的一些心得与收获。主要内容包括:(1) 简单介绍CPU的架构,部分主要模块及其功能(Cache Structure, Cache Line , Set-Way);(2) Cache Coherence算法 (MESI, MOESI);(3) CPU Memory Ordering模型 (Atomic,Reorder,Memory Barrier (Compiler, CPU),Lock Instruction,Load Acquire/Store Release);(4) 并发程序设计 (实现一个Spinlock,纠正一个Lock-Free Algorithm,Data Race (False-Sharing, Per-Processor Data))
Cpu Cache and Memory Ordering——并发程序设计入门
Cpu Cache and Memory Ordering——并发程序设计入门
frogd
120825にGDGKOBEで発表した資料です。
Go言語のスライスを理解しよう
Go言語のスライスを理解しよう
Yasutaka Kawamoto
ADB(Android Debug Bridge): How it works?
ADB(Android Debug Bridge): How it works?
Tetsuyuki Kobayashi
Linuxカーネルのメモリ管理(ハードウェア寄り) kernel ver 4.2
2章 Linuxカーネル - メモリ管理1
2章 Linuxカーネル - メモリ管理1
mao999
Linuxカーネルを読む前に知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
mao999
第2回走る?それともITトークする会の資料です。
Linuxカーネル超入門
Linuxカーネル超入門
Takashi Masuda
Go Conference 2017 Spring で発表したスライドです。
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
Takuya Ueda
If you drive a vehicle on a regular basis, chances are that you're a victim of car myths that have been circulating for years. Check out these common myths about cars that you're probably guilty of following. ~ https://www.revol.com.sg
15 Common Myths you were taught to believe about Cars
15 Common Myths you were taught to believe about Cars
Eason Chan
Viewers also liked
(18)
Tips of Malloc & Free
Tips of Malloc & Free
Linux MMAP & Ioremap introduction
Linux MMAP & Ioremap introduction
Simple and efficient way to get the last log using MMAP
Simple and efficient way to get the last log using MMAP
Tricky implementation of Go ARM soft float
Tricky implementation of Go ARM soft float
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
Linuxのプロセススケジューラ(Reading the Linux process scheduler)
Using QEMU for cross development
Using QEMU for cross development
Android ipm 20110409
Android ipm 20110409
ARM 64bit has come!
ARM 64bit has come!
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
Cpu Cache and Memory Ordering——并发程序设计入门
Cpu Cache and Memory Ordering——并发程序设计入门
Go言語のスライスを理解しよう
Go言語のスライスを理解しよう
ADB(Android Debug Bridge): How it works?
ADB(Android Debug Bridge): How it works?
2章 Linuxカーネル - メモリ管理1
2章 Linuxカーネル - メモリ管理1
0章 Linuxカーネルを読む前に最低限知っておくべきこと
0章 Linuxカーネルを読む前に最低限知っておくべきこと
Linuxカーネル超入門
Linuxカーネル超入門
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
15 Common Myths you were taught to believe about Cars
15 Common Myths you were taught to believe about Cars
Similar to Basic of virtual memory of Linux
TechEd2010_T2-401_EffectiveHyper-V
TechEd2010_T2-401_EffectiveHyper-V
Kuninobu SaSaki
N110 ws12概要 osamut_公開版
N110 ws12概要 osamut_公開版
Osamu Takazoe
2012 年 6 月 30 日 (土) に開催された、第 1 回 Windows Server 2012 Community Day でのセッション資料です。
Windows Server 2012 のストレージ強化とエンタープライズへの活用
Windows Server 2012 のストレージ強化とエンタープライズへの活用
Daichi Ogawa
OSC2009 Sendai
Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124
Kazuhisa Hara
09/06/20 OSC2009-Hokkaidoにて発表したプレゼン資料です。
Osc2009 Do Xen Hara
Osc2009 Do Xen Hara
Kazuhisa Hara
20120609 cod ws2012概要
20120609 cod ws2012概要
Osamu Takazoe
札幌市SaaSビジネス研究会 2009/11/12 http://www.sapporo-it-pro.jp/AttachedFile.aspx?id=66&c=0
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
Kuniyasu Suzaki
MySQL クラウド向け InnoDB チューニング。仮想サーバーで使う場合のチューニングのポイントを解説しました。DB TECH SHOWCASE SAPPORO 2015 での発表資料です。
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
infinite_loop
OSC Tokyo 17 Spring での Rancher 紹介資料です
Introduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 Spring
Go Chiba
12月22日に行ったtechdojoの資料となります。
コンテナ今昔物語_2021_12_22
コンテナ今昔物語_2021_12_22
勇 黒沢
Java EE7 䛸㻌JCache
Java EE7 䛸㻌JCache
maruyama097
イベント名:オープンソースカンファレンス2009 Niigata 講師:日本仮想化技術 宮原 日時:2009/8/1 アジェンダ: • 仮想化でコスト削減するには – 現行システムインフラの課題と仮想化 – サーバー仮想化のコスト削減効果 • 仮想化環境の設計手法 – キャパシティプランニング – 性能を考慮したハードウェア選択 概要: サーバー仮想化を行うためのシステム環境の設計は、従来のシステム設計手法とは異なる考え方が必要になります。本セミナーでは、仮想化環境設計の基本的な流れと、設計上重要なポイントについて、プロのテクニックを伝授します。
仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜
VirtualTech Japan Inc.
2012年6月30日「Go Azure」のスライド
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Sunao Tomita
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンター
Masayuki Ozawa
A-1-3 AWS のクラウド デザイン パターンを Windows Azure に持ってきてみた Japan Windows Azure User Group 冨田 順
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
GoAzure
WalBのドライバとバックアップレプリケーションツールの紹介 おまけ: データレイアウトの話
WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法
Takashi Hoshino
12ステップで作る組込みOS自作入門 http://www.amazon.co.jp/dp/4877832394/ 坂井 弘亮(著) カットシステム
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
sandai
Hyper vを理解する
Hyper vを理解する
Naoki Abe
たのしいNode.js
たのしいNode.js
ishiki-takai
Cloud OS Tech Day Storage Session slide
Cloud os techday_0614
Cloud os techday_0614
Takano Masaru
Similar to Basic of virtual memory of Linux
(20)
TechEd2010_T2-401_EffectiveHyper-V
TechEd2010_T2-401_EffectiveHyper-V
N110 ws12概要 osamut_公開版
N110 ws12概要 osamut_公開版
Windows Server 2012 のストレージ強化とエンタープライズへの活用
Windows Server 2012 のストレージ強化とエンタープライズへの活用
Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124
Osc2009 Do Xen Hara
Osc2009 Do Xen Hara
20120609 cod ws2012概要
20120609 cod ws2012概要
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Introduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 Spring
コンテナ今昔物語_2021_12_22
コンテナ今昔物語_2021_12_22
Java EE7 䛸㻌JCache
Java EE7 䛸㻌JCache
仮想化環境の設計手法 〜プロのテクニック教えます〜
仮想化環境の設計手法 〜プロのテクニック教えます〜
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
Awsのクラウドデザインパターンをwindows azureに持ってきてみた
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンター
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
A 1-3 awsのクラウドデザインパターンをwindows-azureに持ってきてみた
WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
Hyper vを理解する
Hyper vを理解する
たのしいNode.js
たのしいNode.js
Cloud os techday_0614
Cloud os techday_0614
More from Tetsuyuki Kobayashi
some topic of ffmpeg in 5 minutes
some topic of ffmpeg
some topic of ffmpeg
Tetsuyuki Kobayashi
Ssss
New VIdeo CODEC AV1
New VIdeo CODEC AV1
Tetsuyuki Kobayashi
Try new transport protocol SRT
Try new transport protocol SRT (ver. 2)
Try new transport protocol SRT (ver. 2)
Tetsuyuki Kobayashi
Try new transport protocol SRT
Try new transport protocol SRT
Try new transport protocol SRT
Tetsuyuki Kobayashi
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Tetsuyuki Kobayashi
webOS Open Source Edition
WebOS Open Source Edition を試してみた
WebOS Open Source Edition を試してみた
Tetsuyuki Kobayashi
Writing whole linux userland in golang
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Tetsuyuki Kobayashi
Golang on embedded linux system (go conference edition)
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
Tetsuyuki Kobayashi
Using golang on the embedded linux system
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Tetsuyuki Kobayashi
This is an old presentation salvaged from archive. http://tree.celinuxforum.org/CelfPubWiki/JapanTechnicalJamboree13 This is English translated version. Japanese version is here. http://www.slideshare.net/tetsu.koba/basic-of-virtual-memory-of-linux
Virtual memory 20070222-en
Virtual memory 20070222-en
Tetsuyuki Kobayashi
How to post patch to ML. (written in Japanese)
Patch101
Patch101
Tetsuyuki Kobayashi
Tweaking Google TV emulator
Tweaking Google TV emulator
Tetsuyuki Kobayashi
Inter-process communication of Android.
Inter-process communication of Android
Inter-process communication of Android
Tetsuyuki Kobayashi
Android is NOT just 'Java on Linux'. Android uses Linux kernel. But only kernel. I show you how different Android is from normal Linux systems. Visit this page. http://kobablog.wordpress.com/2011/05/22/android-is-not-just-java-on-linux/
Android is NOT just 'Java on Linux'
Android is NOT just 'Java on Linux'
Tetsuyuki Kobayashi
Init of Android
Init of Android
Tetsuyuki Kobayashi
How to run whole android system framework on Ubuntu server.
Android On Ubuntu for developer
Android On Ubuntu for developer
Tetsuyuki Kobayashi
Reusing your existing software on Android 1. Runnig the existing software on Android 1.1 Rebuilding by Android tool chain 1.2 Running the binary as is 2. Running Android on your existing Linux environment I show you 'Android on Ubuntu server'
Reusing your existing software on Android
Reusing your existing software on Android
Tetsuyuki Kobayashi
Internal of logging system of Android. This is updated edition.
Logging system of Android
Logging system of Android
Tetsuyuki Kobayashi
explain internal of logging system of Android.
Logging system of Android
Logging system of Android
Tetsuyuki Kobayashi
Japanese translation of Google I/O Dalvik JIT session
Froyo DalvikVM JIT
Froyo DalvikVM JIT
Tetsuyuki Kobayashi
More from Tetsuyuki Kobayashi
(20)
some topic of ffmpeg
some topic of ffmpeg
New VIdeo CODEC AV1
New VIdeo CODEC AV1
Try new transport protocol SRT (ver. 2)
Try new transport protocol SRT (ver. 2)
Try new transport protocol SRT
Try new transport protocol SRT
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
WebOS Open Source Edition を試してみた
WebOS Open Source Edition を試してみた
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
Virtual memory 20070222-en
Virtual memory 20070222-en
Patch101
Patch101
Tweaking Google TV emulator
Tweaking Google TV emulator
Inter-process communication of Android
Inter-process communication of Android
Android is NOT just 'Java on Linux'
Android is NOT just 'Java on Linux'
Init of Android
Init of Android
Android On Ubuntu for developer
Android On Ubuntu for developer
Reusing your existing software on Android
Reusing your existing software on Android
Logging system of Android
Logging system of Android
Logging system of Android
Logging system of Android
Froyo DalvikVM JIT
Froyo DalvikVM JIT
Recently uploaded
Security-JAWS【第33回】 勉強会 https://s-jaws.doorkeeper.jp/events/173294
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
keikoitakurag
This presentation introduces a paper about offline reinforcement learning.
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
atsushi061452
2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
This presentation introduces a paper about offline reinforcement learning.
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
YouTube nnabla channelの次の動画で利用したスライドです。 【AI論文解説】Consistency ModelとRectified Flow https://youtu.be/3IKCrAPe55k Consistency ModelとRectified Flowに関連する以下の論文を紹介しています。 Consistency models(解説編Part1で紹介) - “Consistency Models,” ICML 2023. - “Improved Techniques for Training Consistency Models,” ICLR 2024. - “Consistency Trajectory Models: Learning Probability Flow ODE Trajectory of Diffusion,” ICLR 2024. Rectified flow(解説編Part2で紹介) - “Flow Straight and Fast: Learning to Generate and Transfer Data with Rectified Flow,” ICLR 2023. - “InstaFlow: One Step is Enough for High-Quality Diffusion-Based Text-to-Image Generation,” ICLR 2024.
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料) 2024年4月24日(水) 株式会社NTTデータグループ 技術開発本部 笠原 辰仁
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
2024/05/25 serverless Meetup osaka
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
https://iotlt.connpass.com/event/318403/
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
Ayachika Kitazaki
サイバーエージェントAI事業部の新卒研修で利用したスライドを公開します。
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
Recently uploaded
(10)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
Basic of virtual memory of Linux
1.
組込みエンジニアのためのLinux入門
仮想メモリ編 2007.2.22 original 2012.10.27 revival 小林哲之 1
2.
注釈 • このスライドは2007年に作成して、CELFテク
ニカルジャンボリーで発表したものです。 • http://tree.celinuxforum.org/CelfPubWiki/JapanTechnicalJamboree13 • 内容的には現在でもほぼ通用するので再演 します。 2
3.
このスライドの対象とする方 • 今までずっと組込み機器のプロジェクト
に携わってきて最近はOSにLinuxを使っ ている方々
4.
このスライドの目的 • Linuxの仮想メモリの仕組みを理解し現
在のプロジェクトに役立てる。 – 仕組みを知らなくてもプログラムは動くが、 性能を引き出すためには仕組みの理解が 重要。 4
5.
まず基本の概念から • 仮想~、論理~ virtual,
logical – 仮想アドレス、論理デバイス、論理セ クタ、仮想マシン – あたかも ... のように扱う • 実~、物理~ real, physical – 実アドレス、物理デバイス、物理セクタ – そのもの、そのまんま 5
6.
仮想化: あたかも・・・ 実は •
あたかも巨大のようだが、実は少ない。 • あたかも平らのようだが、実は凸凹。 • あたかもたくさんのようだが、実はひとつ。 • あたかも占有しているようだが、実は共有。 仮想化は複雑さや個々に依存することを 隠蔽するマジック。 マジックなので種も仕掛けもある。 = 実と仮想の対応付け(マッピング) あたかもそう見えるように変換している。 6
7.
仮想化の代償 • マイナス面よりもプラス面が勝っている
から仮想化を行うわけだが、常にプラス とは限らない。 7
8.
物理メモリと仮想メモリ • いままでの大抵の組込み機器プロジェクトで
は物理メモリしか扱うことがなかった。 • 最近は組み込みシステムの規模の増大化に 伴ってLinuxやWindow CEなどPC向けOSの 流れを持つOSを使用することが多くなってき た。これらのOSは仮想メモリシステムを備え ている。 • このスライドではLinuxについて説明する。 8
9.
物理メモリ • 単一のメモリ空間 • 機器ごとにROM,RAM,I/Oの
ROM 実装アドレスが異なるので それを意識してプログラムする RAM I/O I/O I/O 9
10.
仮想メモリ • 利点 –
ユーザープログラムは実際のメモリマップ(実装アドレス、 実装サイズ)に依存しなくなる。 – 不連続な物理メモリの断片を連続する仮想メモリとして利 用できる。 – メモリ保護:バグによって無関係の部分のメモリが破壊さ れることを防止できる。 • 新しい概念の導入 – アドレス変換 – 多重メモリ空間 – デマンドページング 10
11.
仮想メモリの概念図 出典: フリー百科事典『ウィキペディア(Wikipedia)』
11
12.
アドレス変換 仮想アドレス空間
物理アドレス空間 ROM アドレスy RAM MMU I/O アドレスx Linux kernel I/O がコントロー ル I/O 12
13.
仮想メモリはCPUの中だけ 仮想アドレス空間
物理アドレス空間 ROM アドレスy RAM MMU アドレスx I/O I/O CPU I/O CPUから外にでてくるアドレスバスにのるのは物理アドレスだけ。 ロジアナでは仮想アドレスは観測できない。 13
14.
ユーザープログラムは仮想アドレスだけ 仮想アドレス空間
物理アドレス空間 ROM アドレスy RAM MMU アドレスx I/O I/O CPU I/O 物理アドレスを扱うのはカーネルモードだけ。 つまりカーネル本体とデバイスドライバ。 14
15.
MMUでのアドレス変換
31 22 21 12 11 0 仮想アドレス Directory Index Page Table Index Page Offset Page Directory Base Register Page Directory Directory Page Table Entry No page! ... page fault Page Table Page Entry 物理アドレス 15
16.
TLB
仮想アドレスページ 物理アドレスページ ... • Translation Lookaside Buffers • 仮想アドレスをkeyとして物理アドレスを得る ハッシュテーブルのようなもの • 大抵のアドレス変換はTLBにヒットするので 実際にPage Directory, Page Tableをアクセ スせずに済む。 16
17.
多重メモリ空間 プロセスごとに独立した仮想メモリ空間
物理アドレス空間 ROM RAM I/O I/O 17
18.
デマンドページング •
ページ単位でマッピングされる – ページのサイズはたいていは4Kbytes • 2段階で行われる 1. 仮想メモリの割り当て(mmap) 管理台帳に登録するだけ 2. 実際にアクセスがあったときに初めて そのページに物理メモリが割り当てられる アクセスのないページには物理メモリが割り当てられないので 仮想メモリサイズ >= 実際に必要な物理メモリサイズ 18
19.
デマンドページングの動作例 (1)
仮想アドレス空間 物理アドレス空間 read access 対応する 物理ページが ない! ページフォールト発生 カーネルモードへ 19
20.
デマンドページングの動作例(続) (2)
仮想アドレス空間 物理アドレス空間 DMA転送 マッピング カーネルがデータをロードして物理アドレスをマッピングする。 20
21.
デマンドページングの動作例(続) (3)
仮想アドレス空間 物理アドレス空間 data ユーザーモードに復帰。 ユーザープログラムからは何事もなかったように データが読める。 ... でも実際に時間はかかっている。 21
22.
ページキャッシュ
物理アドレス空間 ディスクからの読んだ内容はメモリに余裕がある限り保持しておく。 シーケンシャルにアクセスされる場合が多いので数ページ分を まとめて先読みを行う。 そのため(2)では毎回ディスクアクセスが発生するとは限らない。 22
23.
ページアウト (2)で物理メモリの空きがなかった場合、使用頻度の低いと思われるページを 解放する。そのページの内容が変更されていなければそのまま破棄。 変更されていればスワップデバイスに掃きだす。
仮想アドレス空間 物理アドレス空間 swap device 掃きだす ただし組込みLinuxではswap deviceを装備していない ページ ことが多い。 23
24.
ページアウト(続) 解放した分のページを使って要求されたページの割り当てを行う。 このような「お手玉」をすることで実際に搭載されている物理メモリサイズ よりも大きなサイズの仮想メモリを扱うことができる。
仮想アドレス空間 物理アドレス空間 DMA転送 no page 24
25.
ページの共有 仮想アドレス空間 プロセスA
物理アドレス空間 同じファイルの同じページは複数の プロセスから共有される。 プロセスB Read onlyのページだけでなく 25 write可のページも。
26.
コピーオンライト
プロセスA Write可でプライベートのページに 書き込みが発生すると・・・ write access r/w private ページフォルト 発生 read only プロセスB 26
27.
コピーオンライト(続)
プロセスA write access read/write copy read only カーネルはコピーしてページの設定を プロセスB read/writeに変更する 27
28.
プロセスのメモリ空間
process A B C 0x00000000 user space ... 1プロセスあたり約3GBのユーザメモリ空間 TASK_SIZE kernel カーネルの空間は各プロセスで共通。 space カーネルの空間はユーザーモードでは 0xffffffff Read/Write/Execute不可。 TASK_SIZEはi386では0xc0000000 プロセス切り替えに伴ってユーザーメモリ ARMでは 0xbf000000 空間が切り替わる。 28
29.
ユーザプロセスのメモリ空間の実例 cat /proc/<PROCESS_ID>/maps 00101000-0011a000
r-xp 00000000 fd:00 15172739 /lib/ld-2.4.so 0011a000-0011b000 r-xp 00018000 fd:00 15172739 /lib/ld-2.4.so 0011b000-0011c000 rwxp 00019000 fd:00 15172739 /lib/ld-2.4.so 0011e000-0024a000 r-xp 00000000 fd:00 15172740 /lib/libc-2.4.so 0024a000-0024d000 r-xp 0012b000 fd:00 15172740 /lib/libc-2.4.so 0024d000-0024e000 rwxp 0012e000 fd:00 15172740 /lib/libc-2.4.so 0024e000-00251000 rwxp 0024e000 00:00 0 08048000-08049000 r-xp 00000000 fd:00 11666681 /home/koba/lab/loop/a.out 08049000-0804a000 rw-p 00000000 fd:00 11666681 /home/koba/lab/loop/a.out b7fef000-b7ff1000 rw-p b7fef000 00:00 0 b7fff000-b8000000 rw-p b7fff000 00:00 0 bffeb000-c0000000 rw-p bffeb000 00:00 0 [stack] アドレス範囲 file offset inode file name r: read device w: write major:minor x: execute s: shared 29 p: private (copy on write)
30.
ユーザプロセスのメモリ空間の実例
(詳細) cat /proc/<PROCESS_ID>/smaps .... 0011e000-0024a000 r-xp 00000000 fd:00 15172740 /lib/libc-2.4.so Size: 1200 kB Rss: 136 kB RSS = 物理メモリサイズ Shared_Clean: 136 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 0 kB 0024a000-0024d000 r-xp 0012b000 fd:00 15172740 /lib/libc-2.4.so Size: 12 kB Rss: 8 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 8 kB 0024d000-0024e000 rwxp 0012e000 fd:00 15172740 /lib/libc-2.4.so Size: 4 kB Rss: 4 kB Shared_Clean: 0 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 4 kB 30 ....
31.
システムコールmmap #include <sys/mman.h> void *mmap(void
*start, size_t length, int prot, int flags, int fd, off_t offset); int munmap(void *start, sizt_t length); • ファイルやデバイスをメモリにマップ/アンマップする • 引数 prot – PROT_NONE または PROT_EXEC, PROT_READ, PROT_WRITEのOR演算 • 引数 flags – MAP_FIXED, MAP_SHARED, MAP_PRIVATE, MAP_ANONYMOUS, ... 31
32.
mmapのtips • MAP_FIXEDを指定しなければカーネルが空
いているページをさがしてくれる。 • MAP_FIXEDを指定したときに既存のページ と重なっていたら、そのページは内部的に munmapされる。 – なのでこのオプションは通常は使用しない。 • ファイルのオフセットはページサイズの整数 倍でなければならない。 • mmapとmunmapのアドレス、サイズは一致 していなくてもよい。 32
33.
mmapの使い方(1) • 巨大サイズのmallocの代用 –
コンパクションなどデータのコピーが発生しない。 – malloc/freeと違ってmunmapするときのaddr, size はmmapで確保したときと異なっていてもよい。 • まとめて1回のmmapで確保して少しづつ分割し てmunmapで返却するのもあり。 – glibcのmallocの実装ではある一定以上のサイズ のmallocはmmapを呼び出す。 • DEFAULT_MMAP_THRESHOLD = (128*1024) 33
34.
mmapの使い方(2) • 高速なファイルアクセス –
read, writeのシステムコールでは内部で物 理ページにバッファリングしている。そこか らユーザの指定した配列にコピーしている 。 – mmapを使うことで直接ページにアクセス できるようになるのでデータのコピーを減ら すことができる。 – Java1.4の java.nio.MappedByteBuffer 34
35.
mmapの使い方(3) • プロセス間の共有メモリ –
複数のプロセスから同じファイルをR/W可 sharedでマッピングする。 – IPCの共有メモリのシステムコール (shmget, shmat,..)は内部で同様のことを 行っている。 35
36.
mmapの使い方(4) • 物理メモリ、I/Oポートのアクセス –
デバイスファイル /dev/mem をマッピング することでユーザーモードで物理メモリ空 間をread/writeすることが可能。 – /dev/memをアクセスするにはrootの権限 が必要。 36
37.
まとめ • 仮想メモリの使用量と物理メモリの使用
量は異なる。実際に問題になるのは物 理メモリの使用量。 • 仮想メモリのオーバーヘッドはいつ発生 するのかを意識する。 – TLBミス – ページフォルト • システムコールmmapの活用。 37
38.
参考文献 • Linux kernel
ソース http://www.kernel.org/ • GNU C ライブラリのソース http://www.gnu.org/software/libc/ • “詳解LINUXカーネル 第2版” オライリージャパン • “Linuxカーネル2.6解読室” SoftBank Creative • Linux manコマンド • その他たくさんのWEB検索結果 38
39.
2007年当時
おまけ:最近の話題 • CELFのBootTimeResourcesより – KernelXIP NORフラッシュが – ApplicationXIP 使われなくなったため あまり聞かなくなった。 – (DataReadInPlace) • CELFのMemoryManagementResoucesより – Huge/large/superpages – Page cache compression → zramの名前でメインライン 化。 3.8ではstaging卒業の見込 み。 39
Download now