Suche senden
Hochladen
Aio
•
Als PPT, PDF herunterladen
•
4 gefällt mir
•
4,678 views
Masaaki HIROSE
Folgen
Technologie
Bildung
Melden
Teilen
Melden
Teilen
1 von 37
Jetzt herunterladen
Empfohlen
llvm入門
llvm入門
MITSUNARI Shigeo
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
マーク&スイープ勉強会
マーク&スイープ勉強会
7shi
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
Java仮想マシンの実装技術
Java仮想マシンの実装技術
Kiyokuni Kawachiya
.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo
Yuta Matsumura
Empfohlen
llvm入門
llvm入門
MITSUNARI Shigeo
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
マーク&スイープ勉強会
マーク&スイープ勉強会
7shi
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
Java仮想マシンの実装技術
Java仮想マシンの実装技術
Kiyokuni Kawachiya
.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo
Yuta Matsumura
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
例外設計における大罪
例外設計における大罪
Takuto Wada
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
SDL2の紹介
SDL2の紹介
nyaocat
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
こわくない Git
こわくない Git
Kota Saito
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
なおき きしだ
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
uchan_nos
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
C# 8.0 null許容参照型
C# 8.0 null許容参照型
信之 岩永
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
コルーチンでC++でも楽々ゲーム作成!
コルーチンでC++でも楽々ゲーム作成!
amusementcreators
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
async/awaitダークサイド is 何
async/awaitダークサイド is 何
Kouji Matsui
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
InfiniBand on Debian
InfiniBand on Debian
Taisuke Yamada
スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe
Weitere ähnliche Inhalte
Was ist angesagt?
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
例外設計における大罪
例外設計における大罪
Takuto Wada
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
Takaaki Suzuki
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
SDL2の紹介
SDL2の紹介
nyaocat
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
こわくない Git
こわくない Git
Kota Saito
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
Yuki Miyatake
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
なおき きしだ
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
uchan_nos
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
Fixstars Corporation
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
C# 8.0 null許容参照型
C# 8.0 null許容参照型
信之 岩永
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
コルーチンでC++でも楽々ゲーム作成!
コルーチンでC++でも楽々ゲーム作成!
amusementcreators
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
async/awaitダークサイド is 何
async/awaitダークサイド is 何
Kouji Matsui
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
Was ist angesagt?
(20)
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
例外設計における大罪
例外設計における大罪
今日からできる!簡単 .NET 高速化 Tips
今日からできる!簡単 .NET 高速化 Tips
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
DockerコンテナでGitを使う
DockerコンテナでGitを使う
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
SDL2の紹介
SDL2の紹介
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
こわくない Git
こわくない Git
BoostAsioで可読性を求めるのは間違っているだろうか
BoostAsioで可読性を求めるのは間違っているだろうか
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
C# 8.0 null許容参照型
C# 8.0 null許容参照型
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
コルーチンでC++でも楽々ゲーム作成!
コルーチンでC++でも楽々ゲーム作成!
明日使えないすごいビット演算
明日使えないすごいビット演算
async/awaitダークサイド is 何
async/awaitダークサイド is 何
暗号技術の実装と数学
暗号技術の実装と数学
Ähnlich wie Aio
InfiniBand on Debian
InfiniBand on Debian
Taisuke Yamada
スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
Masataka Kondo
Elastic stack 世界にさらしたサーバを可視化してみた
Elastic stack 世界にさらしたサーバを可視化してみた
Masamitsu Maehara
Ansible quickstart
Ansible quickstart
Hideki Saito
Osoljp studygroup201303
Osoljp studygroup201303
Noriyasu Sakaue
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
ksk sue
dofilewrite and vn_write
dofilewrite and vn_write
kusabanachi
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
Taisuke Yamada
Programming camp Codereading
Programming camp Codereading
Hiro Yoshioka
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
irix_jp
オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介
OSSラボ株式会社
CybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみた
Yuma Ohgami
Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会
Naoki Matsumoto
【続編】その ionice、ほんとに効いてますか?
【続編】その ionice、ほんとに効いてますか?
Narimichi Takamura
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
dcubeio
Ansible2.0と実用例
Ansible2.0と実用例
OSSラボ株式会社
Oracle solaris 10 u9 iSCSI Boot
Oracle solaris 10 u9 iSCSI Boot
Kazuyuki Sato
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
VIRLとPyATSで実現するネットワークCI
VIRLとPyATSで実現するネットワークCI
tetsusat
Ähnlich wie Aio
(20)
InfiniBand on Debian
InfiniBand on Debian
スタート低レイヤー #0
スタート低レイヤー #0
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
Elastic stack 世界にさらしたサーバを可視化してみた
Elastic stack 世界にさらしたサーバを可視化してみた
Ansible quickstart
Ansible quickstart
Osoljp studygroup201303
Osoljp studygroup201303
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
dofilewrite and vn_write
dofilewrite and vn_write
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
Programming camp Codereading
Programming camp Codereading
OSC2011Tokyo/Fall OpenStack Swift入門
OSC2011Tokyo/Fall OpenStack Swift入門
オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介
CybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみた
Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会
【続編】その ionice、ほんとに効いてますか?
【続編】その ionice、ほんとに効いてますか?
Ansibleで始めるインフラ構築自動化
Ansibleで始めるインフラ構築自動化
Ansible2.0と実用例
Ansible2.0と実用例
Oracle solaris 10 u9 iSCSI Boot
Oracle solaris 10 u9 iSCSI Boot
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
VIRLとPyATSで実現するネットワークCI
VIRLとPyATSで実現するネットワークCI
Mehr von Masaaki HIROSE
JVM! JVM! JVM!
JVM! JVM! JVM!
Masaaki HIROSE
Redunduncy of NAT instance on AWS/VPC
Redunduncy of NAT instance on AWS/VPC
Masaaki HIROSE
How to inspect a RUNNING perl process
How to inspect a RUNNING perl process
Masaaki HIROSE
Introduction of aws-cli
Introduction of aws-cli
Masaaki HIROSE
『Ficia』インフラとPerlにまつわるエトセトラ
『Ficia』インフラとPerlにまつわるエトセトラ
Masaaki HIROSE
Shibuya.pm #9 My First XS
Shibuya.pm #9 My First XS
Masaaki HIROSE
Mehr von Masaaki HIROSE
(6)
JVM! JVM! JVM!
JVM! JVM! JVM!
Redunduncy of NAT instance on AWS/VPC
Redunduncy of NAT instance on AWS/VPC
How to inspect a RUNNING perl process
How to inspect a RUNNING perl process
Introduction of aws-cli
Introduction of aws-cli
『Ficia』インフラとPerlにまつわるエトセトラ
『Ficia』インフラとPerlにまつわるエトセトラ
Shibuya.pm #9 My First XS
Shibuya.pm #9 My First XS
Kürzlich hochgeladen
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
Kürzlich hochgeladen
(9)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
Aio
1.
非同期 I/O
概説 Introduction to Asynchronous I/O AIO, I/O Multiplexing…
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
I/O モデルの整理 Synchronous
Asynchronous Blocking Non-blocking read/write read/write (O_NONBLOCK) I/O multiplexing I/O 多重化 (select, poll) AIO 非同期 I/O (POSIX AIO, libaio) ~ Boost application performance using asynchronous I/O http://www-128.ibm.com/developerworks/linux/library/l-async/
12.
13.
14.
15.
16.
17.
18.
19.
20.
POSIX AIO –
スレッド通知 iocb->aio_fildes = … iocb->aio_buf = … iocb->aio_nbytes = … iocb->aio_offset = … iocb->aio_sigevent.sigev_notify = SIGEV_THREAD ; iocb->aio_sigevent.sigev_notify_function = rd_done ; iocb->aio_sigevent.sigev_value.sival_ptr = iocb ; aio_read (iocb); /* void rd_done (sigval_t sigval) */ iocb = (struct aiocb *)sigval.sival_ptr; while ((rc = aio_error (iocb)) == EINPROGRESS); rc = aio_return (iocb); char *buf = (void *)iocb->aio_buf; struct aiocb の初期化 aiocb を取り出す データが詰まってる buf 返り値を得る エラー状態を確認 スレッドを起床して通知 コールバック関数 自分自身を格納 非同期処理をリクエスト
21.
22.
POSIX AIO –
シグナル通知 iocb->aio_fildes = … iocb->aio_buf = … iocb->aio_nbytes = … iocb->aio_offset = … iocb->aio_sigevent.sigev_notify = SIGEV_SIGNAL ; iocb->aio_sigevent.sigev_signo = SIGIO_READ ; iocb->aio_sigevent.sigev_value.sival_ptr = iocb ; aio_read (iocb); /* void rd_done (int signo, siginfo_t *info, void *context) */ iocb = (struct aiocb *)info->si_value.sival_ptr; while ((rc = aio_error (iocb)) == EINPROGRESS); rc = aio_return (iocb); char *buf = (void *)iocb->aio_buf; struct aiocb の初期化 aiocb を取り出す ☚ データが詰まってる buf 返り値を得る エラー状態を確認 シグナルで通知 ☚ 発生シグナルを指定 ☚ 自分自身を格納 非同期処理をリクエスト sigemptyset(&sigact_r.sa_mask); sigact_r.sa_flags = SA_SIGINFO; sigact_r.sa_sigaction = rd_done ; sigaction( SIGIO_READ , &sigact_r, NULL); シグナルハンドラ
23.
24.
libaio io_queue_init (AIO_MAXIO,
&myctx); struct iocb *ioq[n]; for (i=0; i<=n; i++) { io_prep_pread (iocb, srcfd, iosize, offset); io_set_callback (iocb, rd_done); ioq[i] = iocb; } io_submit (myctx, n, ioq); io_queue_run (myctx); io_queue_wait(myctx, NULL); /* void rd_done(io_context_t ctx, struct iocb *iocb , long res,…) */ int iosize = iocb->u.c.nbytes; char *buf = iocb->u.c.buf; off_t offset = iocb->u.c.offset; 非同期イベント処理-> CB データが詰まってる buf コンテキストの初期化 iocb のセットアップ (read) コールバック関数のセット 非同期処理をリクエスト 非同期処理の完了を待つ
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
おしまい
Jetzt herunterladen