タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

linuxとAIOに関するf99aqのブックマーク (4)

  • システムコールによる非同期I/O API - takkan_mのNo planな日常

    このAPIは、カーネル2.6以降にカーネルに追加された機能をつかうためのシステムコールになります。 カーネルは、非同期I/Oをサポートするために、VFS層のファイルオブジェクト(簡単に説明すると、実際のファイルシステムがファイルに対する操作を保持するオブジェクトだと思います。この中に、f_opというファイル操作のための関数テーブルをもっています。オブジェクト指向におけるスーパークラスのようなものです。)のf_opに、ファイル操作のaio_read()とaio_write()というエントリポイントがもうけられるようになりました。(個人的に、POSIXのAPIと名前がかぶるので、ここで一度混乱しました。Linuxのカーネル周りは、日語に直しているせいかもしれませんが、同じ名前で呼べるけど実は別物というものがいくつかあります。まぁ、でもそれはおいおい) このAPIをもちいると、I/O処理をカー

    システムコールによる非同期I/O API - takkan_mのNo planな日常
  • POSIX準拠の非同期I/O - takkan_mのNo planな日常

    これは、ライブラリ関数として実装されており、以下の関数群を持ちます。 aio_read(),aio_write(),aio_fsync(),aio_error() aio_return(),aio_cancel(),aio_suspend()詳しい使い方は説明しませんが、aio_read(),aio_write()を使い、I/O要求を発行します。I/O要求は、それぞれの関数中で要求を発行した段階で復帰してくれます。 では次のような、aio_readを行うプログラムを書いて、このライブラリ関数がどのように実装されているかを見てみます。aio_readの動作が見たいだけなので、たぶん、この非同期I/Oライブラリの使い方としては、だめだめです。 #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <s

    POSIX準拠の非同期I/O - takkan_mのNo planな日常
  • Linuxでaio - (ひ)メモ

    実装が2つある。以下、あくまで今の時点でのLinuxの場合の状況/実装のおはなし。 POSIX aio aio_read(3) とか aio_write(3), aio_error(3), aio_return(3) とか。 インターフェースはPOSIXで定義されているのと同じ。 システムコールじゃなくてライブラリ関数(librt) 裏でpthreadつくってがんばってるげ。 libaio http://lse.sourceforge.net/io/aio.html http://ftp.jaist.ac.jp/pub/Linux/Fedora/development/source/SRPMS/libaio-0.3.106-3.2.src.rpm とか io_prep_pread(2), io_prep_pwrite(2), io_submit(2), io_queue_init(2),

    Linuxでaio - (ひ)メモ
  • libaio(Linuxの非同期I/Oライブラリ)の使い方 - moratorium

    libaio(Linuxの非同期I/Oライブラリ)の使い方 2007-06-05 (Tue) 4:53 Unix Linuxで非同期I/Oを行うためのライブラリ「libaio」の使い方を書いてみる事にする。少し昔の話になるが、lighttpdが使用し、スループットを80%も上げたらしい。 TOEFLに向けて転置ファイルについての論文(Inverted files for text search engine [moffat 06])でReading対策をしていたところ、意外とスニペット(検索にヒットした箇所の前後の文章)を作るところが時間がかかるという事を教えてもらったので、適当にそれを例題にしてみる。具体的には以下のようなコードを非同期I/Oを使用して速くなるかどうか見てみる。 for (unsigned int i = 0; i < files.size(); i++) { FILE*

  • 1