JP5792138B2 - メディアサーバ、処理割当・割込振分方法、処理割当方法及び割込振分方法 - Google Patents

メディアサーバ、処理割当・割込振分方法、処理割当方法及び割込振分方法 Download PDF

Info

Publication number
JP5792138B2
JP5792138B2 JP2012208137A JP2012208137A JP5792138B2 JP 5792138 B2 JP5792138 B2 JP 5792138B2 JP 2012208137 A JP2012208137 A JP 2012208137A JP 2012208137 A JP2012208137 A JP 2012208137A JP 5792138 B2 JP5792138 B2 JP 5792138B2
Authority
JP
Japan
Prior art keywords
cpu
transmission
media server
rtp packet
transmitting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012208137A
Other languages
English (en)
Other versions
JP2014064173A (ja
Inventor
明 伊集院
明 伊集院
和久 石谷
和久 石谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012208137A priority Critical patent/JP5792138B2/ja
Publication of JP2014064173A publication Critical patent/JP2014064173A/ja
Application granted granted Critical
Publication of JP5792138B2 publication Critical patent/JP5792138B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

本発明は、メディアサーバで実行される各処理をCPUに割り当てる技術に関する。
音楽や映像等のメディアデータを扱うコンピュータとしてメディアサーバがある。メディアサーバは、内部に記憶されたメディアデータをメディアストリームとしてユーザが使用するユーザ端末に送信することにより、そのユーザに対してメディアサービスを提供する。
このメディアサーバは、一般にユーザ端末との間において、呼(メディアサービスに係る呼)を制御する呼制御信号を送受信する際にはSIP(Session Initiation Protocol)を使用し、メディアデータそのものを含むメディア処理信号を送受信する際にはRTP(Real-time Transport Protocol)を使用する。
特にRTPは、メディア通信の品質が劣化するのを防止するため、決められた時間間隔でそのパケットを送信することが要求されている。例えば、音声コーデックとして利用される「G.711 μ−Law」の音声データの場合、通常、20msの時間間隔でRTPパケットを順次送信している。
また、今日では、メディアサービスに係るチャネルの単価を低減するため、同時に多くの呼接続を受付可能であるメディアサーバを汎用性の高いプラットフォームで実現することが要求されている。
そのような各要求に対しては、例えば、汎用OS(Operating System)であるLinux(登録商標)等を採用した汎用プラットフォームによって実現可能である。Linuxカーネルでは、プロセススケジューリングの中で最も優先度の高いリアルタイムプロセスを用意しており(非特許文献1参照)、RTPパケットの送信処理をそのプロセスに割り当てることができる。これにより、RTPパケット送信処理のリアルタイム性を確保しつつ、メディアサーバのチャネル単価を下げることも可能となる。
ここで、メディアサーバのRTPパケット送信処理をリアルタイムプロセスに割り当てた場合のプロセス遷移例を図6に示す。図6は、呼(1)〜呼(4)の呼接続をメディアサーバで同時に受け付けた場合について例示している。
メディアサーバは、呼(1)〜呼(4)の呼接続について、「RTPパケット送信(n回目)」、「RTPパケット送信(n+1回目)」で示すように、連続してRTPパケットを送信するため、RTPパケット送信処理をリアルタイムプロセスに割り当てて実行する。
高橋浩和、外2名、「Linuxカーネル2.6解読室」、ソフトバンククリエイティブ株式会社、第3版、2007年、p.43
しかし、RTPパケット送信処理をリアルタイムプロセスに割り当てた場合であっても、その送信時において、それよりも優先度の低いタイムシェアリングプロセスへの切り替え処理や、ハードウェア割り込み処理(ハードウェアによる強制的な他処理)が発生する可能性がある。
そして、RTPパケットの送信処理中にそれによるプロセスの中断が発生すると、RTPパケットの送信処理に要した実際の送信時間と理想的な送信時間とに時間差(送信ジッタ時間)が生じ、その送信ジッタ時間が想定される許容値よりも大きくなる可能性があった。
従って、汎用プラットフォームを採用したメディアサーバで同時に受け付け可能な呼接続数を大きくするには、RTPパケット送信処理を実行しているプロセスの中断の発生を防止し、送信ジッタ時間を小さくすることが必要であった。
本発明は、上記事情を鑑みてなされたものであり、RTPパケット送信処理を行うプロセスの中断の発生を防止し、RTPパケット送信時に生じる送信ジッタ時間を小さくすることを課題とする。
請求項1記載のメディアサーバは、複数のCPUを備えたメディアサーバにおいて、音声、画像、又は映像を記録したメディアデータを記憶しておくデータ記憶手段と、前記データ記憶手段から前記メディアデータを読み出して、RTPのプロトコル形式に変換したRTPパケットを送信するパケット送信手段と、前記複数のCPUを送信用CPUと受信用CPUとに分け、前記RTPパケットを送信する送信処理を前記送信用CPUに割り当て、前記メディアサーバで実行される当該送信処理以外の全ての処理を前記受信用CPUに割り当てる処理割当手段と、前記メディアサーバで発生したハードウェア割り込み処理を前記受信用CPUに通知する割込振分手段と、を有することを特徴とする。
本発明によれば、RTPパケットを送信する送信処理を送信用CPUに割り当て、メディアサーバで実行される当該送信処理以外の全ての処理を受信用CPUに割り当て、更に、メディアサーバで発生したハードウェア割り込み処理を受信用CPUに通知するため、RTPパケットの送信処理のみを特定のCPUで実行できることから、RTPパケット送信処理を行うプロセスの中断の発生を防止し、RTPパケット送信時に生じる送信ジッタ時間を小さくすることができる。
請求項2記載のメディアサーバは、複数のCPUを備えたメディアサーバにおいて、音声、画像、又は映像を記録したメディアデータを記憶しておくデータ記憶手段と、前記データ記憶手段から前記メディアデータを読み出して、RTPのプロトコル形式に変換したRTPパケットを送信するパケット送信手段と、前記複数のCPUを送信用CPUと受信用CPUとに分け、前記RTPパケットを送信する送信処理を前記送信用CPUに割り当て、前記メディアサーバで実行される当該送信処理以外の全ての処理を前記受信用CPUに割り当てる処理割当手段と、を有することを特徴とする。
本発明によれば、RTPパケットを送信する送信処理を送信用CPUに割り当て、メディアサーバで実行される当該送信処理以外の全ての処理を受信用CPUに割り当てるため、RTPパケットの送信処理のみを特定のCPUで実行できることから、RTPパケット送信処理を行うプロセスの中断の発生を防止し、RTPパケット送信時に生じる送信ジッタ時間を小さくすることができる。
請求項3記載のメディアサーバは、複数のCPUを備えたメディアサーバにおいて、音声、画像、又は映像を記録したメディアデータを記憶しておくデータ記憶手段と、前記データ記憶手段から前記メディアデータを読み出して、RTPのプロトコル形式に変換したRTPパケットを送信するパケット送信手段と、前記複数のCPUを送信用CPUと受信用CPUとに分け、前記RTPパケットを送信する送信処理を前記送信用CPUに割り当てる処理割当手段と、前記メディアサーバで発生したハードウェア割り込み処理を前記受信用CPUに通知する割込振分手段と、を有することを特徴とする。
本発明によれば、RTPパケットを送信する送信処理を送信用CPUに割り当て、メディアサーバで発生したハードウェア割り込み処理を受信用CPUに通知するため、RTPパケットの送信処理のみを特定のCPUで実行できることから、RTPパケット送信処理を行うプロセスの中断の発生を防止し、RTPパケット送信時に生じる送信ジッタ時間を小さくすることができる。
請求項4記載の処理割当・割込振分方法は、複数のCPUを備えたメディアサーバで行う処理割当・割込振分方法において、音声、画像、又は映像を記録したメディアデータをデータ記憶手段に記憶しておくステップと、前記複数のCPUを送信用CPUと受信用CPUとに分け、前記メディアデータを送信する送信処理を送信用CPUに割り当て、前記メディアサーバで実行される当該送信処理以外の全ての処理を前記受信用CPUに割り当てるステップと、前記データ記憶手段から前記メディアデータを読み出して、RTPのプロトコル形式に変換したRTPパケットを前記送信用CPUにより送信するステップと、前記メディアサーバで発生したハードウェア割り込み処理を前記受信用CPUに通知するステップと、を有することを特徴とする。
本発明によれば、RTPパケットを送信する送信処理を送信用CPUに割り当て、メディアサーバで実行される当該送信処理以外の全ての処理を受信用CPUに割り当て、更に、メディアサーバで発生したハードウェア割り込み処理を受信用CPUに通知するため、RTPパケットの送信処理のみを特定のCPUで実行できることから、RTPパケット送信処理を行うプロセスの中断の発生を防止し、RTPパケット送信時に生じる送信ジッタ時間を小さくすることができる。
請求項5記載の処理割当方法は、複数のCPUを備えたメディアサーバで行う処理割当方法において、音声、画像、又は映像を記録したメディアデータをデータ記憶手段に記憶しておくステップと、前記複数のCPUを送信用CPUと受信用CPUとに分け、前記メディアデータを送信する送信処理を前記送信用CPUに割り当て、前記メディアサーバで実行される当該送信処理以外の全ての処理を前記受信用CPUに割り当てるステップと、前記データ記憶手段から前記メディアデータを読み出して、RTPのプロトコル形式に変換したRTPパケットを前記送信用CPUにより送信するステップと、を有することを特徴とする。
本発明によれば、RTPパケットを送信する送信処理を送信用CPUに割り当て、メディアサーバで実行される当該送信処理以外の全ての処理を受信用CPUに割り当てるため、RTPパケットの送信処理のみを特定のCPUで実行できることから、RTPパケット送信処理を行うプロセスの中断の発生を防止し、RTPパケット送信時に生じる送信ジッタ時間を小さくすることができる。
請求項6記載の割込振分方法は、複数のCPUを備えたメディアサーバで行う割込振分方法において、音声、画像、又は映像を記録したメディアデータをデータ記憶手段に記憶しておくステップと、前記複数のCPUを送信用CPUと受信用CPUとに分け、前記メディアデータを送信する送信処理を送信用CPUに割り当てるステップと、前記データ記憶手段から前記メディアデータを読み出して、RTPのプロトコル形式に変換したRTPパケットを前記送信用CPUにより送信するステップと、前記メディアサーバで発生したハードウェア割り込み処理を前記受信用CPUに通知するステップと、を有することを特徴とする。
本発明によれば、RTPパケットを送信する送信処理を送信用CPUに割り当て、メディアサーバで発生したハードウェア割り込み処理を受信用CPUに通知するため、RTPパケットの送信処理のみを特定のCPUで実行できることから、RTPパケット送信処理を行うプロセスの中断の発生を防止し、RTPパケット送信時に生じる送信ジッタ時間を小さくすることができる。

本発明によれば、RTPパケット送信処理を行うプロセスの中断の発生を防止し、RTPパケット送信時に生じる送信ジッタ時間を小さくすることができる。
メディアサービス提供システムの全体構成図である。 メディアサーバの機能説明図である。 プロセス・スレッド処理割当動作のフローチャートである。 ハードウェア割込振分動作のフローチャートである。 メディアサーバにおける処理動作のシーケンスである。 メディアサーバにおけるプロセス遷移例の説明図である。
以下、本発明を実施する一実施の形態について図面を用いて説明する。但し、本発明は多くの異なる様態で実施することが可能であり、本実施の形態の記載内容に限定して解釈すべきではない。
図1は、メディアサービス提供システムの全体構成を示す図である。メディアサービス提供システムは、メディアサービスを提供するメディアサーバ1と、そのメディアサービスを受ける複数のユーザ端末3と、メディアサーバ1を保守する保守端末5とで主に構成される。但し、保守端末5は、本メディアサービス提供システムにおいて必須の構成要素ではなく、不在の場合もあり、保守を行う際に追加される追加的な構成要素である。
メディアサーバ1は、ユーザ端末3から送信された呼(メディアサービスに係る呼)を接続する呼接続要求に基づいてメディアストリームを送受信するサーバであり、複数のスレッドを並列に処理可能なマルチコアCPUを搭載したコンピュータとLinux等の汎用OSとによって構築される。
また、自機内に複数のインタフェース装置を備え、第1のインタフェース装置16aを通じて第1の通信ネットワーク7aを介しユーザ端末3に通信可能に接続され、第2のインタフェース装置16bを通じて第2の通信ネットワーク7bを介し保守端末5に通信可能に接続されている。
尚、第1,第2のインタフェース装置16a,16bとしては、例えば、LANポート等を備えたNIC(Network Interface Card)であり、第1,第2の通信ネットワーク7a,7bとしては、例えば、インターネット、携帯電話網、公衆回線網である。
また、メディアサーバ1を構築しているコンピュータの仕様に応じてそのインタフェース装置を増加又は減少可能であり、第2のインタフェース装置16bを具備せず、第2の通信ネットワーク7bが不在の場合、メディアサーバ1は、第1のインタフェース装置16a及び第1の通信ネットワーク7aを介して保守端末1と通信することも可能である。
次に、メディアサーバ1の機能について説明する。メディアサーバ1は、メディアサービスを提供する際に必要な基本機能を備え、具体的には、呼制御機能部11aと、RTPパケット送信機能部11bと、RTPパケット受信機能部11cとにより実現される。
呼制御機能部11aは、上記呼を制御するための呼制御スレッド(スレッド生成機能部13により生成。後述する全てのスレッドについても同様。)に基づいて、ユーザ端末3との間で確立される呼接続を制御する機能を有している。更に、その呼接続が確立した場合には、RTPパケット送信機能部11bに対して、ユーザ端末3へRTPパケットを送信するRTPパケット送信開始指示を送信する機能を有している。
RTPパケット送信機能部11bは、RTPパケットを送信するためのRTPパケット送信スレッドに基づいて、呼制御機能部11aから送信されたRTPパケット送信開始指示に従い、メモリ等のデータ記憶部17に蓄積されている音声や映像等(音声、画像、映像のうちいずれも可)の再生用メディアファイルを読み出して、RTPのプロトコル形式に変換したRTPパケットをユーザ端末3に送信する機能を有している。
RTPパケット受信機能部11cは、RTPパケットを受信するためのRTPパケット受信スレッドに基づいて、ユーザ端末3から送信されたRTPパケットを受信する機能を有している。更に、ユーザ端末3からメディア情報が送信され、それに基づいて呼制御を行う場合には、呼制御機能部11に対して呼制御に必要な情報(例えば、DTMF(Dual Tone Multiple Frequency)によるコールフロー制御情報等)を通知する機能を有している。
メディアサーバ1は、このような基本機能以外に、自機の処理動作等を保守・監視する監視機能部12や、その他の目的のための複数の機能部(不図示)を備えている。その監視機能部12は、自機を保守・監視するための保守・監視スレッドに基づいて、保守端末4から送信された監視要求を受信し、その応答を監視応答として送信する。
以上説明した各機能は、実際にはプログラムによるプロセス(プログラムの実行単位。1つ以上のスレッドを含む。)によって実行される。例えば、呼制御機能部11aが行う呼制御機能は呼制御プロセスによって実行される。
そこで、本実施の形態では、呼制御機能部11aにより行う呼制御機能と、RTPパケット送信機能部11bにより行うRTPパケット送信機能と、RTPパケット受信機能部11cにより行うRTPパケット受信機能とをそれぞれ実行する各プロセスを総称してメディアサーバ用プロセスといい、そのような基本機能以外の全ての機能(保守・監視機能等)を実行するプロセスをその他プロセスという。
ここで、メディアサーバ1は、メディアサーバ用プロセス内のRTPパケット送信処理を前述したように例えばリアルタイムプロセスに割り当てて実行する。しかし、上記課題欄で既説したように、そのように最も優先度の高いプロセスに割り当てた場合であっても、優先度の低いプロセスへの切り替え処理やハードウェア割り込み処理により、RTPパケットの送信処理に中断が発生し、その際に生じた送信ジッタ時間が許容値よりも大きくなる可能性がある。
そこで、本実施の形態では、メディアサーバ1は、これまで説明した各機能部11a〜11c,12,13,17以外に、コア割当機能部14及び割込振分機能部15を更に備えている。以下、図2を参照しながら、それら追加された各機能部14,15の機能及びその効果について説明する。
コア割当機能部14は、メディアサーバ1のコンピュータに搭載されている複数のCPUを送信用CPUと受信用CPUとに分け、メディアサーバ用プロセスのうち、RTPパケット送信スレッドを送信用CPUに割り当て、それ以外のスレッド及びプロセス(呼制御スレッド及びそのプロセス、RTPパケット受信スレッド及びそのプロセス)を受信用CPUに割り当てる機能(以下、機能A)を有している(図2の符号A参照)。尚、スレッドとは、CPU利用の実行単位をいう。
これにより、RTPパケットの送信処理のみを特定のCPUで実行でき、それ以外の全ての処理を当該特定のCPUから排除できることから、RTPパケット送信スレッドがメディアサーバ用プロセス内の他のスレッドやプロセスに切り替わることを防止することができる。
また、コア割当機能部14は、その他プロセスに含まれるスレッドやそのプロセスを上記受信用CPUに割り当てる機能(以下、機能B)を更に有している(図2の符号B参照)。
これにより、メディアサービスの提供に不要な全ての処理が受信用CPUで実行されることから、RTPパケット送信スレッドがその他プロセス内のスレッドやそのプロセスに切り替わることを防止することができる。
割込振分機能部15は、第1,第2のインタフェース装置16a,16bやその他コンピュータ内の任意の装置等、メディアデータ内で発生した全てのハードウェア割り込み処理を受信用CPUに通知する機能を有している(図2の符号C参照)。
これにより、ハードウェア割り込み処理が受信用CPUで実行されることから、RTPパケットの送信処理がハードウェア割り込み処理によって中断されることを防止することができる。
以上より、このような機能を有するコア割当機能部14及び割込振分機能部15を更に備えたことにより、結果的に、RTPパケット送信処理を行うプロセスの中断の発生を防止し、RTPパケット送信時に生じる送信ジッタ時間を小さくすることが可能となる。
尚、コア割当機能部14による送信用CPUと受信用CPUへのCPUの割り当て方法については、例えば、3個以上のスレッドを並列に処理可能なマルチコアCPUを備えたコンピュータを用いた場合、送信用CPU及び受信用CPUとしてそれぞれ2個以上のCPUを割り当てるようにしてもよい。図2では、CPU1〜CPU8のうち、CPU1・CPU2を送信用CPUとして割り当て、CPU3〜CPU8を受信用CPUとして割り当てている。
次に、このようなメディアサーバ1で行うプロセス・スレッド処理割当方法及びハードウェア割込振分方法について説明する。ここでは、Linuxで既に提供されている以下のような機能を用いるものとする。
(Linuxの機能:cgred)
cgrules.confファイル内にセットされたパラメータセットに従って、該当のプロセスを指定されたcgroupに移動するデーモンである。
(Linuxの機能:cgroup)
プロセスのグループ単位でリソースを割り当ててポリシー制御するカーネル機能である。該当グループのタスク(task)に指定されたプロセスが走行するCPUをcpuset.cpusコマンドで指定することができる。
(Linuxの機能:sched_setaffinity)
スレッドのCPUアフィニティマスクを設定するシステムコールである。プロセス内において当該システムコールを用いてスレッドを呼び出すことにより、スレッドを特定のCPUで走行させることができる。
(Linuxの機能:irqbalance)
マルチコアCPU環境下において、ハードウェア割り込み処理を指定のCPUに分散させるカーネル機能である。smp_affinityにCPUのマスク値を記載することにより、ハードウェア割り込み処理を行うCPUを指定することができる。
最初に、図3を参照しながら、プロセス・スレッド処理割当方法について説明する。まず、メディアサーバ1を構築しているコンピュータが、メディアサーバ用プロセスを生成し、更にその他プロセスとして例えば保守・監視プロセス及びOSプロセスを生成する(ステップS101)。
次に、メディアサーバ1のコア割当機能部14は、OSプロセス以外のプロセスについては、cgredを用いて、cgrules.confファイル内にセットされたパラメータセットに従い、メディアサーバ用プロセスをcgroupAにセットし、その他プロセス(保守・監視プロセス)をcgroupBにセットする(ステップS102)。
尚、cgrules.confファイルには、メディアサーバ用プロセスのプロセス名がAとしてセットされ、その他プロセスのプロセス名がBとしてセットされているものとする。
一方、OSプロセスについては、コンピュータ上で動作しているプロセス監視アプリケーションによる監視処理により当該OSプロセスの生成が検出された際に、そのOSプロセスをcgroupBにセットする(ステップS103)。
次に、コア割当機能部14は、cgroupのcpuset.cpusコマンドを用いて、cgroupAを送信用CPU及び受信用CPUに割り当て、cgropuBを受信用CPUに割り当てる(ステップS104)。
次に、コア割当機能部14は、cgroupAについては、sched_setaffinityのシステムコールを用いて、RTPパケット送信スレッドのみを送信用CPUに割り当て当該送信用CPUにより起動・走行させ、それ以外のスレッド(呼制御スレッド、RTPパケット受信スレッド)を受信用CPUに割り当て当該受信用CPUにより起動・走行させる(ステップS105)。
一方、cgroupBについては、当該cgroupBにセットされたその他プロセス(保守・監視プロセス、OSプロセス)を受信用CPUに割り当て当該受信用CPUにより起動・走行させる(ステップS106)。
以上より、コア割当機能部14の機能Aについては、ステップS102(cgredのcgrules.confファイルを用いてメディアサーバ用プロセスをcgroupAに割り当てる処理)と、ステップS104(cgroupのcpuset.cpusコマンドを用いて送信用CPUと受信用CPUとの両方をcgroupAに割り当てる処理)と、ステップS105(sched_setaffinityを用いてRTPパケット送信スレッドのみを送信用CPUに割り当てて走行させると共に、それ以外のスレッド(呼制御スレッド、RTPパケット受信スレッド)を受信用CPUに割り当てて走行させる処理)とにより、実現することができる。
また、コア割当機能部14の機能Bについては、ステップS102(メディアサーバ用プロセス以外のプロセスのうちOSプロセスでないものについては、cgredのcgrules.confファイルを用いてcgroupBに割り当てる処理)と、ステップS103(OSプロセスについては、プロセス監視アプリケーションによって検出され次第当該cgroupBに割り当てる処理)と、ステップS104(cgroupのcpuset.cpusコマンドを用いて受信用CPUをcgroupBに割り当てる処理)と、ステップS106(cgroupBのその他プロセスを受信用CPUで走行させる処理)とにより、実現することができる。
次に、図4を参照しながら、ハードウェア割込振分方法について説明する。これについては、割込振分機能部15が、irqbalanceを用いて、smp_affinityで送信用CPUのマスク値を0に指定すると共に、受信用CPUのマスク値を1に指定しておき(ステップS201)、ハードウェア割り込み処理が発生した場合には、その割り込み処理をマスク値が1のCPU(受信用CPU)に通知して実行させる(ステップS202)。これにより、前述した割込振分機能部15の機能を実現することができる。
次に、図5を参照しながら、メディアサーバ1による呼接続の処理動作について説明する。まず、コア割当機能部14により、メディアサーバ用プロセス内のRTPパケット送信スレッドのみが送信用CPUに割り当てられ、それ以外の全てのスレッド及び全てのプロセスが受信用CPUに割り当てられて、それぞれ実行される(ステップS301)。
また、そのステップS301と併行して、割込振分機能部15により、送信用CPUに対するマスク値が0に設定され、受信用CPUに対するマスク値が1に設定される(ステップS302)。
次に、ユーザ端末3からメディアサービスに係る呼接続要求信号が送信されると、メディアサーバ1は第1のインタフェース装置16aで受信し、割込振分機能部15により、その呼接続要求信号に係るハードウェア割り込み処理はマスク値が1の受信用CPUに通知され、その信号は当該受信用CPUに送信される(ステップS303)。
次に、その受信用CPUで動作する呼制御スレッドにより、その新たに接続要求された呼についての接続可否が判定され、その判定結果を含む呼接続可否応答信号が要求元のユーザ端末3に送信される(ステップS304)。以下、呼接続可否の判定結果は接続可とする。
その後、ユーザ端末3から呼接続完了信号が送信されると、ステップS303と同様に、第1のインタフェース装置16aで受信され、割込振分機能部15により、その呼接続完了信号に係るハードウェア割り込み処理はマスク値が1の受信用CPUに通知され、その信号は当該受信用CPUに送信される(ステップS305)。
次に、呼制御スレッドにより、送信用CPUで動作するRTPパケット送信スレッドに対して、RTPパケットをユーザ端末3に送信するためのRTPパケット送信開始指示が送信される(ステップS306)。
次に、RTPパケット送信スレッドにより、データ記憶部17から再生用メディアファイルが読み出され、RTPのプロトコル形式に変換したRTPパケットが要求元のユーザ端末3に送信される(ステップS307)。
続いて、ユーザ端末3は呼接続完了信号の送信後にメディアサーバ1に対してRTPパケットを送信することから、ステップS303と同様に、第1のインタフェース装置16aで受信され、割込振分機能部15により、そのRTPパケット送受信に係るハードウェア割り込み処理はマスク値が1の受信用CPUに通知され、そのRTPパケットは当該受信用CPUに送信される(ステップS308)。
そして、その受信用CPUで動作するRTPパケット受信スレッドにより、ユーザ端末3から送信されたRTPパケットが受信される(ステップS309)。
最後に、ユーザ端末3から呼切断要求信号が送信されると、ステップS303と同様に、第1のインタフェース装置16aで受信され、割込振分機能部15により、その呼切断要求信号に係るハードウェア割り込み処理はマスク値が1の受信用CPUに通知され、その信号は当該受信用CPUに送信される(ステップS310)。
その後、呼制御スレッドにより、RTPパケット送信スレッドに対して、RTPパケットの送信を停止するRTPパケット送信停止指示が送信され(ステップS311)、ユーザ端末3に対して、現在確立されている呼を切断するための呼切断応答信号が送信される(ステップS312)。
一方、保守端末5からメディアサーバ1を監視するための監視要求信号が送信された場合には、メディアサーバ1は、第1のインタフェース装置16aではなく第2のインタフェース装置16bで受信し、割込振分機能部15により、その監視要求信号に係るハードウェア割り込み処理はマスク値が1の受信用CPUに通知され、その信号は当該受信用に送信される(ステップS401)。
以上より、本実施の形態によれば、メディアサーバ1のコンピュータに搭載されている複数のCPUを送信用CPUと受信用CPUとに分け、RTPパケット送信スレッドを送信用CPUに割り当て、それ以外の全てのスレッド及びプロセスを受信用CPUに割り当てるため、RTPパケット送信処理を行うプロセスの中断の発生を防止し、RTPパケット送信時に生じる送信ジッタ時間を小さくすることができる。
また、本実施の形態によれば、更に、メディアサーバ1で発生した全てのハードウェア割り込み処理を上記受信用CPUに通知するため、RTPパケット送信処理を行うプロセスの中断の発生をより確実に防止し、RTPパケット送信時に生じる送信ジッタ時間を更に小さくすることができる。
最後に、本実施の形態では、マルチコアCPUを搭載したメディアサーバの例としてLinuxを用いた場合について説明したが、Linux以外であっても、本実施の形態で説明したコア割当機能14や割込振分機能15を備えた他のOSを用いても実現可能である。例えば、Windows(登録商標)であっても、「Processor Affinity」や「Interrupt−Affinity Policy」等の機能を用いることにより、同様に実現することができる。
1…メディアサーバ
3…ユーザ端末
5…保守端末
7a…第1の通信ネットワーク
7b…第2の通信ネットワーク
11a…呼制御機能部
11b…RTPパケット送信機能部
11c…RTPパケット受信機能部
12…監視機能部
13…スレッド生成機能部
14…コア割当機能部
15…割込振分機能部
16a…第1のインタフェース装置
16b…第2のインタフェース装置
17…データ記憶部
S101〜S106、S201〜S202、S301〜S312、S401…ステップ

Claims (6)

  1. 複数のCPUを備えたメディアサーバにおいて、
    音声、画像、又は映像を記録したメディアデータを記憶しておくデータ記憶手段と、
    前記データ記憶手段から前記メディアデータを読み出して、RTPのプロトコル形式に変換したRTPパケットを送信するパケット送信手段と、
    前記複数のCPUを送信用CPUと受信用CPUとに分け、前記RTPパケットを送信する送信処理を前記送信用CPUに割り当て、前記メディアサーバで実行される当該送信処理以外の全ての処理を前記受信用CPUに割り当てる処理割当手段と、
    前記メディアサーバで発生したハードウェア割り込み処理を前記受信用CPUに通知する割込振分手段と、
    を有することを特徴とするメディアサーバ。
  2. 複数のCPUを備えたメディアサーバにおいて、
    音声、画像、又は映像を記録したメディアデータを記憶しておくデータ記憶手段と、
    前記データ記憶手段から前記メディアデータを読み出して、RTPのプロトコル形式に変換したRTPパケットを送信するパケット送信手段と、
    前記複数のCPUを送信用CPUと受信用CPUとに分け、前記RTPパケットを送信する送信処理を前記送信用CPUに割り当て、前記メディアサーバで実行される当該送信処理以外の全ての処理を前記受信用CPUに割り当てる処理割当手段と、
    を有することを特徴とするメディアサーバ。
  3. 複数のCPUを備えたメディアサーバにおいて、
    音声、画像、又は映像を記録したメディアデータを記憶しておくデータ記憶手段と、
    前記データ記憶手段から前記メディアデータを読み出して、RTPのプロトコル形式に変換したRTPパケットを送信するパケット送信手段と、
    前記複数のCPUを送信用CPUと受信用CPUとに分け、前記RTPパケットを送信する送信処理を前記送信用CPUに割り当てる処理割当手段と、
    前記メディアサーバで発生したハードウェア割り込み処理を前記受信用CPUに通知する割込振分手段と、
    を有することを特徴とするメディアサーバ。
  4. 複数のCPUを備えたメディアサーバで行う処理割当・割込振分方法において、
    音声、画像、又は映像を記録したメディアデータをデータ記憶手段に記憶しておくステップと、
    前記複数のCPUを送信用CPUと受信用CPUとに分け、前記メディアデータを送信する送信処理を前記送信用CPUに割り当て、前記メディアサーバで実行される当該送信処理以外の全ての処理を前記受信用CPUに割り当てるステップと、
    前記データ記憶手段から前記メディアデータを読み出して、RTPのプロトコル形式に変換したRTPパケットを前記送信用CPUにより送信するステップと、
    前記メディアサーバで発生したハードウェア割り込み処理を前記受信用CPUに通知するステップと、
    を有することを特徴とする処理割当・割込振分方法。
  5. 複数のCPUを備えたメディアサーバで行う処理割当方法において、
    音声、画像、又は映像を記録したメディアデータをデータ記憶手段に記憶しておくステップと、
    前記複数のCPUを送信用CPUと受信用CPUとに分け、前記メディアデータを送信する送信処理を前記送信用CPUに割り当て、前記メディアサーバで実行される当該送信処理以外の全ての処理を前記受信用CPUに割り当てるステップと、
    前記データ記憶手段から前記メディアデータを読み出して、RTPのプロトコル形式に変換したRTPパケットを前記送信用CPUにより送信するステップと、
    を有することを特徴とする処理割当方法。
  6. 複数のCPUを備えたメディアサーバで行う割込振分方法において、
    音声、画像、又は映像を記録したメディアデータをデータ記憶手段に記憶しておくステップと、
    前記複数のCPUを送信用CPUと受信用CPUとに分け、前記メディアデータを送信する送信処理を前記送信用CPUに割り当てるステップと、
    前記データ記憶手段から前記メディアデータを読み出して、RTPのプロトコル形式に変換したRTPパケットを前記送信用CPUにより送信するステップと、
    前記メディアサーバで発生したハードウェア割り込み処理を前記受信用CPUに通知するステップと、
    を有することを特徴とする割込振分方法。
JP2012208137A 2012-09-21 2012-09-21 メディアサーバ、処理割当・割込振分方法、処理割当方法及び割込振分方法 Active JP5792138B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012208137A JP5792138B2 (ja) 2012-09-21 2012-09-21 メディアサーバ、処理割当・割込振分方法、処理割当方法及び割込振分方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012208137A JP5792138B2 (ja) 2012-09-21 2012-09-21 メディアサーバ、処理割当・割込振分方法、処理割当方法及び割込振分方法

Publications (2)

Publication Number Publication Date
JP2014064173A JP2014064173A (ja) 2014-04-10
JP5792138B2 true JP5792138B2 (ja) 2015-10-07

Family

ID=50619030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012208137A Active JP5792138B2 (ja) 2012-09-21 2012-09-21 メディアサーバ、処理割当・割込振分方法、処理割当方法及び割込振分方法

Country Status (1)

Country Link
JP (1) JP5792138B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7564847B2 (en) * 2004-12-13 2009-07-21 Intel Corporation Flow assignment
JP2008129767A (ja) * 2006-11-20 2008-06-05 Mitsubishi Electric Corp ネットワーク装置
JP2008192128A (ja) * 2007-01-11 2008-08-21 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
JP2014064173A (ja) 2014-04-10

Similar Documents

Publication Publication Date Title
CN106161537B (zh) 远程过程调用的处理方法、装置、系统及电子设备
EP3468151B1 (en) Acceleration resource processing method and apparatus
US9251040B2 (en) Remote debugging in a cloud computing environment
US10387103B2 (en) Method and apparatus for processing data of a microphone of a terminal, and terminal
EP1503286B1 (en) Multiple operating system networking
US20180210752A1 (en) Accelerator virtualization method and apparatus, and centralized resource manager
JP7174857B2 (ja) 通信方法、装置、電子機器及びコンピュータプログラム
WO2007109894A1 (en) Multimedia processing in parallel multi-core computation architectures
JP2002312331A (ja) メディアアクセラレータのサービス品質
JP2017504109A (ja) 仮想ネットワークインターフェースカードの割込みの親和性結合のための方法、およびコンピュータデバイス
WO2013123732A1 (zh) 移动终端多媒体资源的管理方法及装置
WO2018049873A1 (zh) 一种应用调度方法及装置
JP7100154B6 (ja) プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体
US8872886B2 (en) Method, apparatus, and system for establishing multi-cascade channel
US20140068165A1 (en) Splitting a real-time thread between the user and kernel space
CN115269213A (zh) 数据接收方法、数据发送方法、装置、电子设备及介质
CN112395242B (zh) 多芯片控制方法、装置、电子设备和计算机可读存储介质
CN111585999B (zh) 一种数据转换方法、系统及存储介质
CN112491978B (zh) 一种调度方法和设备
WO2018049627A1 (zh) 一种集群组呼处理方法、相关设备和系统
JP5792138B2 (ja) メディアサーバ、処理割当・割込振分方法、処理割当方法及び割込振分方法
WO2014032531A1 (zh) 终端切换方法、装置及系统
CN114745564B (zh) 服务调度方法及装置
JP2010146246A (ja) マルチエージェントシステム用フレームワークコンピュータプログラム、ネットワークシステム、及びエージェント間通信方法
JP7416198B2 (ja) サーバ内周波数制御装置、制御方法、プログラム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150805

R150 Certificate of patent (=grant) or registration of utility model

Ref document number: 5792138

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150