タグ

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

  • 関連タグはありません

タグの絞り込みを解除

LinuxとProgrammingと japanに関するbeth321のブックマーク (12)

  • epollインタフェースとsignalfd(1) - O'Reilly Japan Community Blog

    「インターネットサーバでのPthreadとepoll」の記事(以下、前記事と呼びます)を書いた時点では、手元の環境がプアなためマルチプロセス/マルチスレッドを採用したサンプルプログラムの真価を発揮させられず、適切に比較できませんでしたが、その後デュアルコアマシンを借りることができたので、改めて比較してみました。 また、比較の際にサンプルプログラムに追加したダミー処理ではシグナルも使用したので、やはりLinuxに追加された signalfd(2) もepollによるイベントループで処理してみました。 記事のサンプルコードは、以下のリンクよりダウンロードすることができます。記事と合わせてご参照ください。 [ サンプルコード ] 前記事のサンプルプログラム 前記事 ではHTTPサーバを例に並列性/多重性のサンプル実装を5種類提示しました。簡単に振り返ります。サンプルプログラムがデュアルコアシス

  • バッファキャッシュとAIO(4) - O'Reilly Japan Community Blog

    前回はPOSIX AIOとLinuxカーネルのAIOサポートについて解説しました。今回は、このAIOの使い勝手を良くするため、POSIX AIOインタフェース準拠のライブラリを作成しています。 LinuxネイティブAIOライブラリliblaioの試作 Linux AIOを使用する場合、現在では前述のlibaioの利用が第一候補になりますが、やや使い勝手が悪いため、記事でPOSIX AIOインタフェース準拠のライブラリを試作してみます。Linux AIOではO_DIRECTが前提となるため、この点もやや使い勝手が悪いのですが、SSDなどメモリベースのファイルシステムもありますし、動作は非同期になりませんがio_submit(2)はO_DIRECTがなくとも使用可能ですから、まぁ試しにやってみましょう。 ライブラリ設計要点を挙げます。 Linux AIOにPOSIX AIOインタフェースをか

  • O'Reilly Japan Community Blog: Programmer's Highアーカイブ

    多人数により日々改善が加えられるLinuxカーネルですが、その中にはまったく新しい機能もあれば、既存機能を拡張したものもあります。記事ではopen(2)に加えられた新フラグについて取り上げます。 O_TMPFILEフラグ ---- linux-3.11 2014年9月にリリースされたlinux-3.11では、ファイルオープン時に指定可能なO_TMPFILEフラグが追加されました。目的は従来のmkstemp(3)、tmpfile(3)と同様ですが、カーネルレベルで対応するため、効率とアトミック性が強化されます。glibcでは2014年2月にリリースされたv2.19でO_TMPFILEに対応しました。 従来のmkstemp(3)ファミリ、tmpfile(3)を用いる場合では、 一意な(と期待できる)ファイル名の生成 そのファイル名でファイルを作成/オープン という手順を踏みますが、一意性を保

  • バッファキャッシュとAIO(2) - O'Reilly Japan Community Blog

    プロセスがブロックする要因の一つにファイルI/Oがあります。これを同期I/Oと言いますが、POSIXではAIO(非同期 I/O、Asynchronous I/O)も定義しており、I/O中でもプロセスがブロックせず他の処理を進められるようになります。 今回は、バッファキャッシュを意識したさまざまなファイルI/Oについて解説します。 メモリマップ I/O ファイルI/Oの一種にメモリマップI/O、mmap(2)があります。mmap(2)(およびmmap2(2))はオープンされたファイルをプロセスアドレス空間へマッピングするもので、例えばアプリケーション内に領域を用意し、ファイルを読み取る動作は次のようにも実装できます。 3mmap.c 要約 { char a[N]; fd = open(path, O_RDONLY); read(fd, a, N) printf("%.*s\n", N, a)

  • OpenSources

    このwebspaceを提供してくれた株式会社オライリー・ジャパンに感謝します。 Thanks to O'Reilly Japan Inc. for providing me with this webspace. Web Version by Akira Kurahone 『オープンソースソフトウェア 彼らはいかにしてビジネススタンダードになったのか』 このWeb版は、この告知を全ての写しに載せており、英語の著作権表示でGPLと明記されている論文を 除いて何ら変更を加えない場合にのみ、自由に再配布できます(ただし、文字化け、誤字脱字等の修正はご自由に)。 Web版の目次へ (Click here to go to "Web Version Contents") ---------------------------------------------------------------

  • バッファキャッシュとAIO(3) - O'Reilly Japan Community Blog

    前回までファイル I/O 全般について簡単に振り返りました。いよいよ題のAIOに取り掛かります。今回は、POSIXのAIOインタフェースと、LinuxカーネルのAIOサポートについて紹介します。 POSIX AIO インタフェース バッファキャッシュにより緩和されるとはいえ、ファイル I/Oの最終到達地点はディスクですから、同期的なI/Oはやはりその時間が問題視されることがあります。まだバッファキャッシュに存在しないデータを読み取る場合には遅いディスク必ず待たなければなりません。この動作を非同期に行い、待っている間に他の処理を進められるようにするのが非同期 I/O、AIO(Asynchoronous I/O)です。POSIXではaio_read(3)、aio_write(3)、aio_suspend(3)、aio_fsync(3)、aio_return(3)、aio_cancel(3)、

  • バッファキャッシュとAIO(1)

    プロセスがブロックする要因の一つにファイルI/Oがあります。これを同期I/Oと言いますが、POSIXではAIO(非同期 I/O、Asynchronous I/O)も定義しており、I/O中でもプロセスがブロックせず他の処理を進められるようになります。 記事ではバッファキャッシュからファイル I/Oを解説し、Linuxのio_submit(2)を用いたPOSIX準拠のAIOライブラリを試作してみます。 ファイルI/Oとバッファキャッシュ io_submit(2)ではDirect I/Oを用いますが、ライブラリの試作へ進む前にまずファイルI/Oのバッファ(バッファキャッシュ)について整理します。実は単にバッファと言ってしまうと誤解される場面が多くあり、例えばプログラミング入門一般としてファイルI/Oを取り上げる際には、 CPUの動作は速い。ディスクの動作は遅い。 両者の間に速度差を緩和する緩衝

    バッファキャッシュとAIO(1)
  • インターネットサーバでのPthreadとepoll(1)

    連載ではシステムコールプログラミングの例も掲載していく予定ですが、記事ではLinuxに追加されたepollを採りあげ、インターネットサーバでのPthread利用と比較してみます。 はじめに マルチスレッドプログラミングが普及し、POSIX threadも制定され、Pthreadの利用は目新しいものではなくなりましたが、スレッドにまつわる迷信や誤った認識を、だいぶ減ったとはいえ、今でもたびたび耳にします。例として、 スレッドはプロセスよりも軽いので、多数作成しても軽快に動作する スレッドはプログラミングを簡単にしてくれ、1つの処理だけに集中できる などがあります。しかし、これらは常に真であるとは限りません。記事ではマルチスレッドの概念や入門を繰り返すのではなく、その利用方法をHTTPサーバのサンプル実装を基に考察します。更にLinuxに追加された独自機能のepollインタフェースを用い

    インターネットサーバでのPthreadとepoll(1)
  • Linuxプログラミングインタフェース

    Linuxのmanページプロジェクト主催者によるLinuxプログラマ必携のリファレンス。Linux開発者(主にシステムプログラマとアプリケーションプログラマ)にとって、プログラミングする上で必要な情報を一冊で網羅。書で扱う内容は広範囲にわたり一冊でLinuxプログラミングのほぼすべての情報を知ることができます。Linux/UNIX開発者のバイブルとなる一冊です。 正誤表 書籍発行後に気づいた誤植や更新された情報を掲載しています。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷数をご確認の上、ご利用ください。 第3刷正誤表 1270ページ、「59.6 inet_pton() とinet_ntop()」1行目 【誤】 inet_pton()はバイナリ形式のIPv4、IPv6アドレスを可読形式へ、 【正】 inet_pton()は可読形式

    Linuxプログラミングインタフェース
  • malloc ライブラリのメモリ管理構造 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社

    プログラミング言語 malloc(3)のメモリ管理構造 2007/11/30 技術部 クラウド基盤エキスパート  角馬 文彦 この記事の目次 malloc()といえばC言語ではお馴染みのライブラリで、最も良く使用されるライブラリの一つです。しかしその分だけ何らかの不具合を経験した人も多いのではないでしょうか。書ではmalloc()、free()で確保、解放されるメモリリソースが内部的にどのように管理されているかを説明していきます。mallocライブラリの仕様を理解する事で、ライブラリ使用時に何らかの不具合が発生した際の手助けになればと思います。 ここではLinuxディストリビューションで標準的に使用されているglibcのmallocライブラリを扱います。今回の調査では次の環境を使用しています。 ディストリビューション :Debian sarge パッケージバージョン :glibc-2.

    malloc ライブラリのメモリ管理構造 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社
  • 「Raspberry Pi(ラズベリー・パイ)」について知っておくべきこと | ReadWrite Japan

    「Raspberry Pi(ラズベリー・パイ)」について知っておくべきこと Raspberry Piは誰でも気軽に楽しむことができるシンプルなコンピューターだ。皆さんにも使い方を紹介しよう。 注文しておいた「Raspberry Pi(ラズベリー・パイ)」は、夕方にメール便で到着した。そしてその日の深夜までには、夫と私はそれをプリント・サーバーとして動かすことに成功していた。実は私達はどちらも、コンピューター・サイエンスの経験などは全く持ち合わせていない。 Raspberry Piは非常にシンプルなカード・サイズのコンピューターで、誰でも簡単にプログラムすることができる。元々は英国の学生が科学、テクノロジーエンジニアリング、数学などを学ぶ入門用として設計されたものだが、35ドルという手頃な価格も手伝って、ホビー用途としても世界中の人々にとても人気がある。 小型のデバイスであるにも関わら

    「Raspberry Pi(ラズベリー・パイ)」について知っておくべきこと | ReadWrite Japan
  • Linux技術者認定機関 LPI-Japan [エルピーアイジャパン]|公式サイト

    私たちは「オープンテクノロジー」の発展と創造が素晴らしい未来を作ってくれると信じています。 技術を自分の内に閉じ込めず、広く世の中に開放すること、より優れた技術、新しい技術をみんなでつくる。 90年代後半に生まれ、イノベーションを加速させた「オープンソース」という考え方をもっと広く根付かせるために。 技術者たちのスキルを証明する認定試験を開発・運用し、技術習得に役立つ技術教材をつくり、技術の価値を世の中に伝える。 LPI-Japanは、技術を学び、発展させる人々のパートナーです。 詳しく知る LPI-JapanはIT エンジニアの キャリア形成を 支援しています。 国内外の様々な団体とともに、学習支援、雇用支援を通じてこれからの社会で活躍できるITエンジニアの育成に力を注いでいます。 action1認定の価値を知る 私たちはオープンテクノロジー技術者認定機関として様々な認定試験を提供してい

    Linux技術者認定機関 LPI-Japan [エルピーアイジャパン]|公式サイト
  • 1