抄録/ポイント:
抄録/ポイント
文献の概要を数百字程度の日本語でまとめたものです。
部分表示の続きは、JDreamⅢ(有料)でご覧頂けます。
J-GLOBALでは書誌(タイトル、著者名等)登載から半年以上経過後に表示されますが、医療系文献の場合はMyJ-GLOBALでのログインが必要です。
Node.jsでは,コールバックを用いてI/Oを非同期的に扱ってノンプリエンプティブなマルチタスクにする機構Nodeプログラミングモデルが備わっている。これにより,ウェブサーバーのメモリ使用量を格段に減らすことができ,同時セッション最大数やレイテンシが改善される。我々はC
++とElixirで同様の機構を実装した。C
++への実装をZackernelと称し,Elixirへの実装を軽量コールバックスレッドと称している。ZackernelはRFIDのような極端に小規模で消費電力の少ないIoTシステムを組む場合のカーネルとしての用途,軽量コールバックスレッドはクラウドサーバーでの用途をそれぞれ想定している。ZackernelはC
++11で採用された匿名関数を利用して,dispatchメソッドにて次に呼び出すべき関数をキューから読み込んで呼び出すという原理で実現する。軽量コールバックスレッドは,関数のリストをキューとして保持し,キューの先頭の関数の実行が終わったら次の関数を呼び出すという原理で実現する。これらと従来のプロセス/スレッドとの1プロセス/スレッドあたりのメモリ消費量を比較する評価実験を行なった。その結果,Zackernelは1スレッドあたり204バイトと最も少なく,軽量コールバックスレッドが1スレッドあたり1332バイト,Elixirプロセスが1プロセスあたり2835バイト,C
++11スレッドが1スレッドあたり約546KBであった。今後,プロセス間通信の機能を実装し,ベンチマークプログラムに適用して性能を評価したい。(著者抄録)