ビデオサーバ制御のための並行処理記述言語とその実装方式

書誌事項

タイトル別名
  • ビデオサーバ セイギョ ノ タメ ノ ヘイコウ ショリ キジュツ ゲンゴ ト ソノ ジッソウ ホウシキ
  • Design and Implementation of Concurrent Programming Language for Large-Scale Video Server Control Software

この論文をさがす

抄録

ビデオサーバの制御プログラムは 多数の映像ストリームの送出や登録等の処理を並行に実行する.個々の映像ストリームの処理においても ディスクとネットワークの入出力のように並行動作が必要になる.このような制御プログラムには 並行に動作する処理をスレッドとして実装する方式と それぞれの処理を実現するステートマシンをイベントに合わせて遷移させて行くようにプログラムを実装する方式がある.一般に プログラムの書き易さ 保守性 拡張性等はスレッド型が優れているが 実行効率はステートマシン型の方が良い そこで我々は スレッド型で記述したプログラムをステートマシン型に変換して実行することで 両者の利点を合わせ持った実装方式を実現した.C言語を拡張し 複数の並行する処理の流れの記述と ユーザからの再生/停止/早送り等の指示や入出力完了等のイベント持ちの記述を可能にする言語を設計した.この言語で記述した制御プログラムを 各スレッドのローカル変数からなる状態変数構造体と イベントに対して状態変数構造体上の状態を遷移させるC言語の関数に変換し イベント駆動で実行を進める.本方式により OSの提供するスレッド機構を用いる場合に比べて10倍以上の処理性能の工場を実現できた.また ビデオサーバの制御プログラムを 送出・登録等の機能と言語処理系に分割することで 共同開発の効率向上にもつながった.

Video server control software is complex because it processes various kinds of requests from clients simultaneously. There two approaches to implement server control software: thread style and event-driven style is a natural way to express flow of control, but has an execution overhead due to context switching and mutual exclusion. Event-driven style shows good performance, but decomposition of algorithm into a state-machine requires complicated programming. In this paper, we propose third approach: programming in a thread style and executing in an event-driven style. A new programming language that has special constructs for describing concurrent execution and event handling is introduced. A program written in this language can be translated into an event-driven-style C language program easily. We show that a program implemented in our method runs ten times faster than a program that utilizes thread mechanism of conventional operating system. This method is applied to a real video server development project, and is proved to be effective to shorten development process and to improve quality of software.

収録刊行物

参考文献 (13)*注記

もっと見る

キーワード

詳細情報 詳細情報について

問題の指摘

ページトップへ