JP2009301277A - スケジューリングプログラム,スケジューリング方法及びスケジューリング装置 - Google Patents

スケジューリングプログラム,スケジューリング方法及びスケジューリング装置 Download PDF

Info

Publication number
JP2009301277A
JP2009301277A JP2008154353A JP2008154353A JP2009301277A JP 2009301277 A JP2009301277 A JP 2009301277A JP 2008154353 A JP2008154353 A JP 2008154353A JP 2008154353 A JP2008154353 A JP 2008154353A JP 2009301277 A JP2009301277 A JP 2009301277A
Authority
JP
Japan
Prior art keywords
packet
execution
protocol processing
priority
task
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.)
Granted
Application number
JP2008154353A
Other languages
English (en)
Other versions
JP5262329B2 (ja
Inventor
Kota Nakajima
耕太 中島
Koichi Kumon
耕一 久門
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008154353A priority Critical patent/JP5262329B2/ja
Publication of JP2009301277A publication Critical patent/JP2009301277A/ja
Application granted granted Critical
Publication of JP5262329B2 publication Critical patent/JP5262329B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】通信によりパケットのプロトコル処理が発生したとしても、重要なプロセスに遅延を生じさせないようにする。
【解決手段】パケット受信部10でパケットを受信したときに、パケット解析部20でパケットヘッダを解析し、第1セッション管理部30でパケットのプロトコル処理の実行エントリを実行待ち状態とする。さらに、アプリケーションのプロセスを実行する優先度が設定された対応プロセステーブル80及びそのプロセスにより処理されるパケットに対するプロトコル処理を実行する優先度が設定されたプロトコル処理優先度テーブル90を参照する。そして、スケジューラ40で、実行待ち状態となっているプロセス及びプロトコル処理の実行エントリから、最も優先度の高いプロセス又はプロトコル処理の実行エントリを選択し、処理部50でこれを実行する。
【選択図】 図1

Description

本発明は、コンピュータにおいて、複数のタスクの実行をスケジューリングする技術に関する。
コンピュータシステムでは、サーバやクライアントなどのコンピュータがネットワークを介して相互に接続されている。そして、各コンピュータでは、他のコンピュータからパケットを受信したときに、オペレーティングシステム(OS:Operating System)において、受信したパケットに対してプロトコル処理が実行される。このプロトコル処理とは、受信したパケットのヘッダにおける各層のプロトコルに関連する処理をいう。例えば、トランスポート層のTCP(Transmission Control Protocol)ヘッダのチェックサムに基づいて、データが正常であるか否かを確認する処理等が該当する。そして、プロトコル処理が完了した後に、パケットのアプリケーションデータを処理するアプリケーションのプロセスが実行される。
ここで、かかるプロトコル処理は、通常、先に受信したパケットから順に行われる。このため、優先度の高いプロセスにより処理されるパケットのプロトコル処理も、優先度の低いプロセスにより処理されるパケットのプロトコル処理も、その優先度に関係なくパケットの受信順にCPU(Central Processing Unit)資源が割り当てられてしまう。従って、優先度の高いプロセスにより処理されるパケットのプロトコル処理の実行が遅延し、その結果、優先度の高いプロセスの実行が遅延してしまうという問題がある。そこで、かかる問題を解決するため、受信したパケットを処理するプロセスについて予め設定された優先度に基づいて、優先度の高いプロセスにより処理されるプロトコル処理から順に実行する技術が用いられている。また、受信したパケットを処理するプロセスの優先度が高ければ、そのパケットのプロトコル処理を即時に他のプロセスに割り込ませて実行する技術が用いられている。
特許3876687公報 特開2005−217491号公報
しかしながら、このように優先度の高いプロセスにより処理されるパケットのプロトコル処理を優先して実行した場合、さらに次のような問題がある。
即ち、プロトコル処理もプロセスも同様にCPU資源を使用するにも関わらず、あるパケットのプロトコル処理の優先度と、プロトコル処理が完了した他のパケットに対応するプロセスの優先度と、の比較はなされない。また、同様に、かかるプロトコル処理の優先度と、通信を伴わずに独立して実行されるアプリケーションのプロセスの優先度と、の比較もなされない。このため、優先度が低いプロセスにより処理されるパケットに対するプロトコル処理と、優先度が高いプロセスと、が同時に実行待ち状態になった場合、両者の実行順序は全く保証されなかった。従って、優先度の高いプロセスよりも先に、優先度の低いプロセスにより処理されるパケットに対するプロトコル処理にCPU資源が割り当てられ、実行されてしまうことがあった。このため、依然として、優先度の高いプロセスの処理が遅延してしまうという問題は解消されていなかった。
そこで、本発明は以上のような従来の問題点に鑑み、通信によりパケットのプロトコル処理が発生したとしても、プロトコル処理であるかプロセスであるかに関わらず、最も優先度の高いものを優先して実行することで、重要なプロセスに遅延を生じさせないことを目的とする。
このため、開示のシステムにおいては、パケットを受信したときに、受信したパケットのプロトコル処理のタスクを実行待ち状態とする。さらに、アプリケーションのプロセスを実行する優先度及びそのプロセスにより処理されるパケットに対するプロトコル処理を実行する優先度が設定されたテーブルを参照する。そして、実行待ち状態となっている全てのプロセスのタスク及び全てのプロトコル処理のタスクから、最も優先度の高いプロセスのタスク又はプロトコル処理のタスクを選択し、優先して実行する。
また、他の手段として、パケットを受信したときに、受信したパケットを処理するアプリケーションのプロセスのタスクを、実行待ち状態且つパケットに対するプロトコル処理を要する状態とする。そして、アプリケーションのプロセスを実行する優先度が設定されたテーブルを参照し、実行待ち状態となっているプロセスのタスクの中から、最も優先度の高いプロセスのタスクを選択する。さらに、選択されたタスクが、パケットに対するプロトコル処理を要する状態とされているときには、そのタスクに係るプロセスにより処理されるパケットに対してプロトコル処理を実行する一方、選択されたタスクがプロトコル処理を要する状態でないときには、そのタスクに係るプロセスを実行する。
開示のシステムによれば、CPU資源の割り当て待ちのタスクがプロトコル処理に係るものであるかプロセスに係るものであるかに関わらず、最も優先度の高いタスクに対して優先してCPU資源が割り当てられる。このため、優先度の低いプロセスに対応するパケットのプロトコル処理によって優先度の高いプロセスの実行が妨げられることなく、優先度の高いプロセスが優先して迅速に実行され、重要なプロセスの応答速度が向上することとなる。
[第1実施例]
図1は、第1実施例において、本発明のスケジューリング機構を具現化したシステムの全体構成を示す。このシステムは、パケット受信部10,パケット解析部20,第1セッション管理部30,第1スケジューラ40,処理部50,対応セッションテーブル60,対応プロセステーブル70,プロセス優先度テーブル80及びプロトコル処理優先度テーブル90を含む。これらの構成は、少なくともCPU(Central Processing Unit)及びメモリを備えたコンピュータにおいて実現される。そして、これらの構成は、コンピュータで読取可能な記憶媒体に記憶されたスケジューリングプログラムがメモリにロードされることにより実現される。なお、本実施例では、OSとしてLinux2.6を用いた動作環境において、TCP又はUDP(User Datagram Protocol)/IP(Internet Protocol)プロトコルを用いた通信を行う例を用いて説明する。
パケット受信部10は、ネットワークインタフェースであり、他のコンピュータとネットワークを介して接続され、パケットを受信する。また、受信したパケットは、OSが備えるデバイスドライバの機能により、パケット解析部20へと送られる。
パケット解析部20は、受信したパケットのヘッダを解析し、パケットの転送先及び転送元のIPアドレス及びポート番号並びにプロトコル種別(TCP,UDP等)を特定する。そして、対応セッションテーブル60に基づいて、受信したパケットに対応するセッションを特定する。そして、受信したパケットをセッションごとに振り分け、セッションごとのパケットキューに接続する。ここで、セッションとは、パケットの送受信双方のIPアドレス及びポート番号によって定まる仮想的な通信パスを示す。
第1セッション管理部30は、セッション及びそのセッションを経由するパケットを処理するアプリケーションのプロセスの対応付けを行い、後述する対応プロセステーブル70にその対応関係を設定する。また、プロセス及びそのプロセスによって処理されるパケットに対するプロトコル処理のタスク(タスク構造体)に相当する実行エントリを生成する。この実行エントリは、CPUを割り当てることが可能か否かを特定する状態値を有する。そして、この状態値は、CPUが既に割り当てられ現在実行中の状態を示す「Run(RUNNING)」,CPUの割り当て待ちの状態であって即時実行可能な状態を示す「Ready(RUNNING)」,及び入出力待ち等の理由により即時にCPUを割り当てることが不可能な状態を示す「Wait(INTERUPTIBLE/UNINTERUPTIBLE)」のいずれかである。第1セッション管理部30では、セッション及びプロセスの対応付けが行われたとき、プロセス及びそのプロセスで処理するパケットに対するプロトコル処理の実行エントリを、まず「Wait」状態とする。そして、第1セッション管理部30は、プロセスで処理するパケットがセッションのパケットキューに接続されたときに、これらの実行エントリを「Ready」状態とし、後述する第1スケジューラ40が保持する実行待ちキュー(RUNキュー)に接続する。なお、第1セッション管理部30が、第1の状態設定ステップ,第1の状態設定手段,第1の選択ステップ及び第1の選択手段として機能する。
第1スケジューラ40は、「Ready」状態の実行エントリが接続される実行待ちキューを保持する。そして、実行エントリに係るプロトコル処理及びプロセスの実行についてスケジューリングを行い、各実行エントリに対してCPU資源を割り当てる。
処理部50は、第1スケジューラ40によりCPU資源が割り当てられ「Run」状態となった実行エントリに係るプロトコル処理又はプロセスを実行する。なお、第1スケジューラ40及び処理部50が、第1の実行ステップ及び第1の実行手段として機能する。
対応セッションテーブル60は、通信システムコールの発行によりセッションが確立したときに、パケットとセッションとの対応関係が設定されるものである。そして、図2に示すように、パケットのヘッダ情報としての転送元IPアドレス,転送元ポート番号,転送先IPアドレス,転送先ポート番号及びプロトコル種別、並びにこれらの組み合わせに対応するセッションを含んで構成される。
対応プロセステーブル70は、セッションとプロセスとの対応関係が設定されるものである。そして、図3に示すように、セッション及びこれに対応するプロセスを含んで構成される。なお、1つのセッションに対応するプロセスが複数の場合には、複数のプロセスが設定される。
プロセス優先度テーブル80は、プロセスを実行する優先度を示す値が設定されるものである。そして、図4に示すように、プロセス及びその優先度を含んで構成される。この優先度は、値が大きいものほど優先して処理すべきであることを示す。
プロトコル処理優先度テーブル90は、プロトコル処理を実行する優先度を示す値が設定されるものである。そして、図5に示すように、プロトコル処理及びその優先度を含んで構成される。
次に、本システムにおいて実行される処理について説明する。
図6は、初めに通信システムコール(bind,connect,accept等)が発行されてセッションが確立され、セッションとそのセッションで受信するパケットのヘッダ情報とが対応付けられ、その対応関係が対応セッションテーブル60に設定されたときに、第1セッション管理部30で実行される処理を示す。
ステップ1(図ではS1と略記する。以下同様)では、セッションと、そのセッションを経由するパケットを処理するアプリケーションのプロセスとを対応付け、その対応関係を対応プロセステーブル70に設定する。
ステップ2では、対応付けたプロセス及びそのプロセスで処理するパケットに対するプロトコル処理の実行エントリを生成する。
ステップ3では、プロトコル処理優先度テーブル90に、プロトコル処理の優先度を設定する。このとき、予め設定されているプロセス優先度テーブル80を参照し、プロトコル処理の優先度として、そのプロトコル処理の対象となるパケットを処理するプロセスの優先度と同一の優先度を設定する。
また、既にセッションと対応付けられたプロセスにおいて、さらに当該プロセスを複製するシステムコール(fork,clone等)が発行された場合や、ファイルディスクリプタが複製され(dup等)、他のプロセスに受け渡すときなどにおいても、上記ステップ1〜3と同様の処理を行う。
図7は、パケット受信部10においてパケットを受信したときに、パケット解析部20(ステップ21〜22)及び第1セッション管理部30(ステップ23)で実行される処理を示す。
ステップ21では、受信したパケットのヘッダを解析し、そのパケットに対応するセッションを特定する。具体的には、対応セッションテーブル60を参照し、当該受信パケットのヘッダの転送元IPアドレス,転送元ポート番号,転送先IPアドレス,転送先ポート番号及びプロトコル種別が一致するレコードのセッションを特定する。
ステップ22では、受信したパケットを、特定したセッションのパケットキューに接続する。かかる接続が行われることにより、第1セッション管理部30に対し、パケットが受信されたことが通知される。
ステップ23では、対応プロセステーブル70を参照し、パケットがパケットキューに接続されたセッションに対応するプロセスを特定する。そして、特定したプロセスで処理するパケットに対するプロトコル処理の実行エントリを、第1スケジューラ40の実行待ちキューに接続する。このとき、対応プロセステーブル70において当該セッションが複数のプロセスに対応している場合には、複数のプロセスに対応するプロトコル処理の実行エントリ全てを実行待ちキューに接続する。
図8は、第1スケジューラ40において実行される処理を示す。この処理は、CPU資源に空きが生じたとき、即ち、実行待ちキューに接続されている実行エントリに対してCPU資源を新たに割り当てることが可能になったときに実行される。
ステップ31では、実行待ちキューに接続された実行エントリの全てについて、プロセスの実行エントリであればプロセス優先度テーブル80、プロトコル処理の実行エントリであればプロトコル処理優先度テーブル90に夫々設定された優先度を比較する。そして、最も優先度の値の大きいプロセス又はプロトコル処理の実行エントリを選択する。
ステップ32では、選択した実行エントリがプロセス又はプロトコル処理のいずれに係るものであるかを判定する。選択した実行エントリがプロセスに係るものであれば、ステップ33に進み、選択した実行エントリがプロトコル処理に係るものであれば、ステップ34に進む。
ステップ33では、選択した実行エントリに係るプロセスにCPU資源を割り当てる。
ステップ34では、選択した実行エントリに係るプロトコル処理にCPU資源を割り当てる。
そして、このように第1スケジューラ40においてCPUが割り当てられたプロセス又はプロトコル処理が、処理部50で実行されることとなる。
さらに、プロトコル処理完了後、第1スケジューラ40では、当該プロトコル処理の対象となるパケットを処理するプロセスの実行エントリを、実行待ちキューに接続する。こうすることで、次回のCPU資源の割り当てにおいては、プロセスの実行エントリにCPU資源が割り当てられる。
次に、パケット受信部10,パケット解析部20,第1セッション管理部30及び第1スケジューラ40における処理について、具体例を示しつつ説明する。
図9は、これらの各構成要素の機能及び処理データの具体例を示す説明図である。まず、通信が確立された時点で、第1セッション管理部30で、セッション1とプロセスA,セッション2とプロセスB及びCを夫々対応付ける。そして、かかる対応関係を、図3のように対応プロセステーブル70に登録する。また、プロセスA,プロセスB及びプロセスC並びにこれらのプロセスにより処理されるパケットに対するプロトコル処理としてのプロトコル処理A,プロトコル処理B及びプロトコル処理Cの実行エントリを夫々生成する。さらに、図4のプロセス優先度テーブル80と同一の優先度を、図5に示すプロトコル処理優先度テーブル90に、対応するプロトコル処理の優先度として設定する。例えば、プロセス優先度テーブル80の「プロセスA」の優先度5を、プロトコル処理優先度テーブル90に、対応する「プロトコル処理A」の優先度として設定する。
そして、パケット受信部20でパケットを受信すると、パケット解析部20において、パケットのヘッダの解析を行う。さらに、パケットはそのヘッダ情報により、図2に示す対応セッションテーブル60に基づいてセッション1又はセッション2のいずれかに振り分けられ、パケットキューに接続される。
各セッションのパケットキューにパケットが接続されると、第1セッション管理部30では、当該セッションに対応するプロセスで処理するパケットに対するプロトコル処理の実行エントリを第1スケジューラ40の実行待ちキューに接続する。そして、第1スケジューラ40では、プロセス優先度テーブル80及びプロトコル処理優先度テーブル90を参照し、実行待ちキューに接続された実行エントリの中から、優先度が最も高いプロセス又はプロトコル処理の実行エントリを選択してCPU資源を割り当てる。
ここで、当該具体例における第1スケジューラ40の実行待ちキューについて、図10を用いてさらに詳細に説明する。図10は実行待ちキューの説明図であり、各ブロックは、実行エントリを示す。図10に示すように、実行待ちキューには、プロセスA,プロセスB及びプロセスCの各プロセスにより処理されるパケットに対するプロトコル処理としてのプロトコル処理A,プロトコル処理B及びプロトコル処理Cの実行エントリが接続されている。また、通信を伴わないプロセスDの実行エントリが接続されている。なお、プロトコル処理A,プロトコル処理B及びプロトコル処理Cが完了すると、プロセスA,プロセスB及びプロセスCが夫々実行されるため、図10では、これらのプロセスの実行エントリを破線で示す。
そして、この図10の例においては、プロセスDは、優先度が7であり、接続されている実行エントリの中で最も優先度が高いため、最優先でCPU資源が割り当てられ、実行される。また、次に優先度が高いのは、優先度が5であるプロトコル処理Aである。このため、次にこのプロトコル処理Aが実行される。さらに、このプロトコル処理Aの実行が完了すると、プロセスAが実行待ちキューに接続される。このため、プロトコル処理Aの次には、優先度が5であるプロセスAが実行されることとなる。そして、同様に、優先度が3であるプロトコル処理B及びプロセスBが実行され、さらに、優先度が1であるプロトコル処理C及びプロセスCが実行されることとなる。
このように、本システムによれば、パケットのプロトコル処理の優先度として、そのパケットを処理するアプリケーションのプロセスの優先度と同じ値が設定され、これらが同じ基準で比較される。そして、実行待ち状態の実行エントリについて、プロトコル処理に係る実行エントリであるかプロセスに係る実行エントリであるかに関わらず、最も優先度の高い実行エントリに対して優先してCPU資源が割り当てられる。このため、通信においてパケットが受信され、プロトコル処理を実行する必要が生じても、そのパケットを処理するプロセスの優先度が低ければ、かかるプロトコル処理によって他の優先度の高いプロセスの実行が妨げられることがない。また、パケットを処理するプロセスの優先度が高ければ、そのプロセスと同じ優先度が設定された当該パケットのプロトコル処理が優先して実行され、これに続いて、当該パケットを処理する優先度の高いプロセスが実行されることとなる。従って、いずれにしても、結果として優先度の高いプロセスが優先して迅速に実行され、応答速度が向上することとなる。
また、本システムでは、アプリケーションのプロセスは、パケットを処理するプロセス及び通信を伴わないプロセスの両方について優先度が設定されている。そして、実行待ち状態のプロセスがパケットを処理するプロセス又は通信を伴わないプロセスのいずれであっても、同様に優先度の比較がなされる。このため、プロセスが通信を伴うものであるか否かに依存することなく、優先度の高いプロセスが一貫して優先されることとなる。
なお、上述の実施例では、プロトコル処理の優先度をプロトコル処理の実行エントリを生成したときに設定しているが、プロセスの優先度と同様に、予め設定しておいてもよい。
また、プロトコル処理の優先度としては、プロセスの優先度と完全一致する値に限らず、例えば、プロセスの優先度に対して、プロトコル処理の優先度を全体に低くするなど、独自の値を設定するようにしてもよい。そのようにすれば、システムの運用状況次第で通信処理を一律で後回しにするなど、CPUの割り当て順序をさらに柔軟に調整することができる。
[第2実施例]
次に、本システムにおける第2実施例について説明する。
図11は、第2実施例において、本発明のスケジューリング機構を具現化したシステムの全体構成を示す。第2実施例では、パケット受信部10,パケット解析部20,第2セッション管理部300,第2スケジューラ400,処理部50,対応セッションテーブル60,対応プロセステーブル70及びプロセス優先度テーブル80を含む。
ここで、パケット受信部10,パケット解析部20,処理部50,対応セッションテーブル60,対応プロセステーブル70及びプロセス優先度テーブル80については、第1実施例と同一の構成であるため、以下、説明を省略する。
第2セッション管理部300は、セッション及びそのセッションで受信するパケットを処理するアプリケーションのプロセスの対応付けを行い、後述する対応プロセステーブル70にその対応関係を設定する。また、プロセスのタスクを示す実行エントリを生成する。ここで、この第2実施例における実行エントリは、プロセスによって処理されるパケットに対するプロトコル処理を含んでいる。さらに、第2実施例では、実行エントリの状態値として、「Run(RUNNING)」,「Ready(RUNNING)」及び「Wait(INTERUPTIBLE/UNINTERUPTIBLE)」に加え、「Semi-Ready(Semi-RUNNING)」を有する。この「Semi-Ready」状態は、アプリケーションのプロセスの前にプロトコル処理を要する状態を示す。一方、「Ready」状態は、プロトコル処理を要せず、即時にアプリケーションのプロセスを実行可能な状態を示す。そして、第2セッション管理部300では、セッション及びプロセスの対応付けが行われたとき、プロセスの実行エントリを、まず「Wait」状態とする。そして、第2セッション管理部300は、プロセスで処理するパケットがセッションのパケットキューに接続されたときに、この実行エントリを「Semi-Ready」状態とし、第2スケジューラ400が保持する実行待ちキューに接続する。なお、第2セッション管理部300が、第2の状態設定ステップ,第2の状態設定手段,第2の選択ステップ及び第2の選択手段として機能する。
第2スケジューラ400は、「Semi-Ready」及び「Ready」状態の実行エントリが接続される実行待ちキューを保持する。そして、実行エントリが「Semi-Ready」状態であれば、実行エントリに係るプロトコル処理にCPU資源を割り当てる一方、実行エントリが「Ready」状態であれば、実行エントリに係るプロセスにCPU資源を割り当てる。
図12は、初めに通信システムコールが発行されてセッションが確立され、セッションとそのセッションで受信するパケットのヘッダ情報とが対応付けられ、その対応関係が対応セッションテーブル60に設定されたときに、第2セッション管理部300で実行される処理を示す。
ステップ41では、セッションと、そのセッションで受信するパケットを処理するアプリケーションのプロセスとを対応付け、その対応関係を対応プロセステーブル70に設定する。
ステップ42では、対応付けたプロセスの実行エントリを生成する。
図13は、パケット受信部10においてパケットを受信したときに、パケット解析部20(ステップ51〜52)及び第2セッション管理部300(ステップ53)で実行される処理を示す。
ステップ51では、受信したパケットのヘッダを解析し、そのパケットに対応するセッションを特定する。具体的には、対応セッションテーブル60を参照し、当該受信パケットのヘッダの転送元IPアドレス,転送元ポート番号,転送先IPアドレス,転送先ポート番号及びプロトコル種別が一致するレコードのセッションを特定する。
ステップ52では、受信したパケットを、特定したセッションのパケットキューに接続する。かかる接続が行われることにより、第2セッション管理部300に対し、パケットが受信されたことが通知される。
ステップ53では、対応プロセステーブル70を参照し、パケットがパケットキューに接続されたセッションに対応するプロセスを特定する。そして、特定したプロセスの実行エントリを、第2スケジューラ400の実行待ちキューに接続する。このとき、対応プロセステーブル70において当該セッションが複数のプロセスに対応している場合には、複数のプロセスの実行エントリ全てを実行待ちキューに接続する。
図14は、第2スケジューラ400で実行される処理を示す。
ステップ61では、実行待ちキューに接続された実行エントリ、即ち「Ready」状態又は「Semi-Ready」状態の実行エントリの全てについて、プロセス優先度テーブル80に設定された優先度を比較する。そして、実行待ちキューに接続されている実行エントリの中から、実行エントリに係るプロセスの優先度が最も高い実行エントリを選択する。
ステップ62では、実行エントリがどの状態であるかを判定する。実行エントリが「Ready」状態であれば、ステップ63に進み、実行エントリが「Semi-Ready」状態であれば、ステップ64に進む。
ステップ63では、選択した実行エントリに係るプロセスにCPU資源を割り当てる。
ステップ64では、選択した実行エントリに係るプロセスに対応するプロトコル処理にCPU資源を割り当てる。
そして、このように第2スケジューラ400においてCPUが割り当てられたプロセス又はプロトコル処理が、処理部50で実行されることとなる。
さらに、プロトコル処理完了後、第2スケジューラ400では、当該実行エントリを「Ready」状態にする。なお、こうすることで、当該実行エントリに対する次回のCPU資源の割り当てにおいては、プロセスにCPU資源が割り当てられる。
図15は、当該第2実施例において、パケット受信部10,パケット解析部20,セッション管理部300及び第2スケジューラ400における各機能及び処理データの例を示す説明図である。第2実施例では、上述のように、プロセスの実行エントリがそのプロセスによって処理されるパケットに対するプロトコル処理を含んでいる。このため、プロセス及びこれに対応するプロトコル処理は1つの実行エントリとなっている。
そして、図16は、図15で示した具体例において、かかる「Semi-Ready」状態を導入した場合の実行待ちキューを示す。この図15において、実線で囲われたブロックは「Ready」状態であり、破線で囲われたブロックは「Semi-Ready」状態であることを示す。ここで、プロセスDは、通信を伴わずプロトコル処理が不要なものであり、「Ready」状態となっている。一方、プロセスA,プロセスB及びプロセスCは、プロトコル処理を伴い、かつそのプロトコル処理が完了していないため、「Semi-Ready」状態となっている。そして、これらのプロセスA,プロセスB及びプロセスCについては、第2スケジューラ400により、まず夫々のプロセスにより処理されるパケットに対するプロトコル処理にCPU資源が割り当てられ、処理部50によりそのプロトコル処理が実行される。そして、そのプロトコル処理が完了すると、これらの実行エントリは「Ready」状態とされる。
この図15の例においては、プロセスDは、優先度が7であり、接続されている実行エントリの中で最も優先度が高いため、最優先でCPU資源が割り当てられ、実行される。また、次に優先度が高いのは、優先度が5であるプロセスAである。ここで、このプロセスAの実行エントリは「Semi-Ready」状態であるため、プロセスAに対応するプロトコル処理AにCPU資源が割り当てられ、実行される。さらに、このプロトコル処理Aの実行が完了すると、プロセスAの実行エントリは「Ready」状態とされる。このため、次には、この優先度が5であるプロセスAの実行エントリについて、プロセスAが実行されることとなる。そして、同様に、優先度が3であるプロトコル処理B及びプロセスBが実行され、さらに、優先度が1であるプロトコル処理C及びプロセスCが実行されることとなる。
このように、第2実施例においても、実行待ち状態のプロセスの実行エントリについて、「Semi-Ready」状態であるか「Ready」状態であるか、即ち、プロトコル処理を要するか否かに関わらず、最も優先度の高いプロセスの実行エントリに対して優先してCPU資源が割り当てられる。このため、第1実施例と同じように、優先度の高いプロセスが、優先度の低いプロトコル処理に妨げられることなく優先して迅速に実行され、重要なプロセスの応答速度が向上することとなる。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)パケットを受信したときに、そのパケットに対するプロトコル処理のタスクを実行待ち状態とする第1の状態設定ステップと、アプリケーションのプロセスを実行する優先度及びそのプロセスにより処理されるパケットに対するプロトコル処理を実行する優先度が設定されたテーブルを参照し、実行待ち状態となっているプロセスのタスク及び前記第1の状態設定ステップにより実行待ち状態とされたプロトコル処理のタスクの中から、最も優先度の高いプロセスのタスク又はプロトコル処理のタスクを選択する第1の選択ステップと、前記第1の選択ステップにより選択されたタスクを優先して実行する第1の実行ステップと、をコンピュータに実現させることを特徴とするスケジューリングプログラム。
(付記2)前記プロトコル処理の優先度は、そのプロトコル処理の対象となるパケットを処理するアプリケーションのプロセスについて予め設定された優先度と同一であることを特徴とする付記1記載のスケジューリングプログラム。
(付記3)他のコンピュータとの通信におけるセッションが確立したときに、予めテーブルに設定された、そのセッションを経由するパケットを処理するアプリケーションのプロセスの優先度を参照し、その優先度と同一の優先度を、そのパケットに対するプロトコル処理の優先度としてテーブルに設定する優先度設定ステップをさらに含むことを特徴とする付記2記載のスケジューリングプログラム。
(付記4)前記第1の実行ステップは、実行したタスクがプロトコル処理のタスクであるときには、そのプロトコル処理が完了した後に、そのプロトコル処理の対象となるパケットを処理するアプリケーションのプロセスのタスクを実行待ち状態とすることを特徴とする付記1〜付記3のいずれか1つに記載のスケジューリングプログラム。
(付記5)前記アプリケーションのプロセスは、受信したパケットを処理するアプリケーションのプロセス及び通信を伴わないアプリケーションのプロセスの両方を含むことを特徴とする付記1〜付記4のいずれか1つに記載のスケジューリングプログラム。
(付記6)パケットを受信したときに、受信したパケットを処理するアプリケーションのプロセスのタスクを、実行待ち状態且つパケットに対するプロトコル処理を要する状態とする第2の状態設定ステップと、アプリケーションのプロセスを実行する優先度が設定されたテーブルを参照し、実行待ち状態となっているプロセスのタスクの中から、最も優先度の高いプロセスのタスクを選択する第2の選択ステップと、前記選択されたタスクが第2の状態設定ステップによりパケットに対するプロトコル処理を要する状態とされているときには、そのタスクに係るプロセスにより処理されるパケットに対してプロトコル処理を実行する一方、前記選択されたタスクがプロトコル処理を要する状態でないときには、そのタスクに係るプロセスを実行する第2の実行ステップと、をコンピュータに実現させることを特徴とするスケジューリングプログラム。
(付記7)パケットを受信したときに、そのパケットに対するプロトコル処理のタスクを実行待ち状態とする第1の状態設定ステップと、アプリケーションのプロセスを実行する優先度及びそのプロセスにより処理されるパケットに対するプロトコル処理を実行する優先度が設定されたテーブルを参照し、実行待ち状態となっているプロセスのタスク及び前記第1の状態設定ステップにより実行待ち状態とされたプロトコル処理のタスクの中から、最も優先度の高いプロセスのタスク又はプロトコル処理のタスクを選択する第1の選択ステップと、前記第1の選択ステップにより選択されたタスクを優先して実行する第1の実行ステップと、をコンピュータが実行することを特徴とするスケジューリング方法。
(付記8)パケットを受信したときに、そのパケットに対するプロトコル処理のタスクを実行待ち状態とする第1の状態設定手段と、アプリケーションのプロセスを実行する優先度及びそのプロセスにより処理されるパケットに対するプロトコル処理を実行する優先度が設定されたテーブルを参照し、実行待ち状態となっているプロセスのタスク及び前記第1の状態設定手段により実行待ち状態とされたプロトコル処理のタスクの中から、最も優先度の高いプロセスのタスク又はプロトコル処理のタスクを選択する第1の選択手段と、前記第1の選択ステップにより選択されたタスクを優先して実行する第1の実行手段と、を含んで構成されることを特徴とするスケジューリング装置。
スケジューリング機構を具現化したシステムの全体構成の説明図 対応セッションテーブルの説明図 対応プロセステーブルの説明図 プロセス優先度テーブルの説明図 プロトコル処理優先度テーブルの説明図 通信システムコール発行時の処理を示すフローチャート パケット受信時の処理を示すフローチャート スケジューリング処理を示すフローチャート パケット受信部,パケット解析部,セッション管理部及びスケジューラにおける各機能及び処理データの例を示す説明図 実行待ちキューの説明図 スケジューリング機構を具現化したシステムの全体構成の説明図(第2実施例) 通信システムコール発行時の処理を示すフローチャート(第2実施例) パケット受信時の処理を示すフローチャート(第2実施例) スケジューリング処理を示すフローチャート(第2実施例) パケット受信部,パケット解析部,セッション管理部及びスケジューラにおける各機能及び処理データの例を示す説明図(第2実施例) 実行待ちキューの説明図(第2実施例)
符号の説明
10 パケット受信部
20 パケット解析部
30 第1セッション管理部
40 第1スケジューラ
50 処理部
60 対応セッションテーブル
70 対応プロセステーブル
80 プロセス優先度テーブル
90 プロトコル処理優先度テーブル
300 第2セッション管理部
400 第2スケジューラ

Claims (7)

  1. パケットを受信したときに、そのパケットに対するプロトコル処理のタスクを実行待ち状態とする第1の状態設定ステップと、
    アプリケーションのプロセスを実行する優先度及びそのプロセスにより処理されるパケットに対するプロトコル処理を実行する優先度が設定されたテーブルを参照し、実行待ち状態となっているプロセスのタスク及び前記第1の状態設定ステップにより実行待ち状態とされたプロトコル処理のタスクの中から、最も優先度の高いプロセスのタスク又はプロトコル処理のタスクを選択する第1の選択ステップと、
    前記第1の選択ステップにより選択されたタスクを優先して実行する第1の実行ステップと、
    をコンピュータに実現させることを特徴とするスケジューリングプログラム。
  2. 前記プロトコル処理の優先度は、そのプロトコル処理の対象となるパケットを処理するアプリケーションのプロセスについて予め設定された優先度と同一であることを特徴とする請求項1記載のスケジューリングプログラム。
  3. 前記第1の実行ステップは、実行したタスクがプロトコル処理のタスクであるときには、そのプロトコル処理が完了した後に、そのプロトコル処理の対象となるパケットを処理するアプリケーションのプロセスのタスクを実行待ち状態とすることを特徴とする請求項1又は請求項2に記載のスケジューリングプログラム。
  4. 前記アプリケーションのプロセスは、受信したパケットを処理するアプリケーションのプロセス及び通信を伴わないアプリケーションのプロセスの両方を含むことを特徴とする請求項1〜請求項3のいずれか1つに記載のスケジューリングプログラム。
  5. パケットを受信したときに、受信したパケットを処理するアプリケーションのプロセスのタスクを、実行待ち状態且つパケットに対するプロトコル処理を要する状態とする第2の状態設定ステップと、
    アプリケーションのプロセスを実行する優先度が設定されたテーブルを参照し、実行待ち状態となっているプロセスのタスクの中から、最も優先度の高いプロセスのタスクを選択する第2の選択ステップと、
    前記選択されたタスクが第2の状態設定ステップによりパケットに対するプロトコル処理を要する状態とされているときには、そのタスクに係るプロセスにより処理されるパケットに対してプロトコル処理を実行する一方、前記選択されたタスクがプロトコル処理を要する状態でないときには、そのタスクに係るプロセスを実行する第2の実行ステップと、
    をコンピュータに実現させることを特徴とするスケジューリングプログラム。
  6. パケットを受信したときに、そのパケットに対するプロトコル処理のタスクを実行待ち状態とする第1の状態設定ステップと、
    アプリケーションのプロセスを実行する優先度及びそのプロセスにより処理されるパケットに対するプロトコル処理を実行する優先度が設定されたテーブルを参照し、実行待ち状態となっているプロセスのタスク及び前記第1の状態設定ステップにより実行待ち状態とされたプロトコル処理のタスクの中から、最も優先度の高いプロセスのタスク又はプロトコル処理のタスクを選択する第1の選択ステップと、
    前記第1の選択ステップにより選択されたタスクを優先して実行する第1の実行ステップと、
    をコンピュータが実行することを特徴とするスケジューリング方法。
  7. パケットを受信したときに、そのパケットに対するプロトコル処理のタスクを実行待ち状態とする第1の状態設定手段と、
    アプリケーションのプロセスを実行する優先度及びそのプロセスにより処理されるパケットに対するプロトコル処理を実行する優先度が設定されたテーブルを参照し、実行待ち状態となっているプロセスのタスク及び前記第1の状態設定手段により実行待ち状態とされたプロトコル処理のタスクの中から、最も優先度の高いプロセスのタスク又はプロトコル処理のタスクを選択する第1の選択手段と、
    前記第1の選択ステップにより選択されたタスクを優先して実行する第1の実行手段と、
    を含んで構成されることを特徴とするスケジューリング装置。
JP2008154353A 2008-06-12 2008-06-12 スケジューリングプログラム,スケジューリング方法及びスケジューリング装置 Expired - Fee Related JP5262329B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008154353A JP5262329B2 (ja) 2008-06-12 2008-06-12 スケジューリングプログラム,スケジューリング方法及びスケジューリング装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008154353A JP5262329B2 (ja) 2008-06-12 2008-06-12 スケジューリングプログラム,スケジューリング方法及びスケジューリング装置

Publications (2)

Publication Number Publication Date
JP2009301277A true JP2009301277A (ja) 2009-12-24
JP5262329B2 JP5262329B2 (ja) 2013-08-14

Family

ID=41548109

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008154353A Expired - Fee Related JP5262329B2 (ja) 2008-06-12 2008-06-12 スケジューリングプログラム,スケジューリング方法及びスケジューリング装置

Country Status (1)

Country Link
JP (1) JP5262329B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11248172B2 (en) 2019-07-23 2022-02-15 Koppers Delaware, Inc. Heat treatment process and system for increased pitch yields

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0946373A (ja) * 1995-07-31 1997-02-14 Nippon Telegr & Teleph Corp <Ntt> パケット処理方法
JP2005217491A (ja) * 2004-01-27 2005-08-11 Nippon Telegr & Teleph Corp <Ntt> 受信処理方法/プログラム/プログラム記録媒体、情報処理装置
JP2007199848A (ja) * 2006-01-24 2007-08-09 Yaskawa Electric Corp 軽量化リアルタイムos

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0946373A (ja) * 1995-07-31 1997-02-14 Nippon Telegr & Teleph Corp <Ntt> パケット処理方法
JP2005217491A (ja) * 2004-01-27 2005-08-11 Nippon Telegr & Teleph Corp <Ntt> 受信処理方法/プログラム/プログラム記録媒体、情報処理装置
JP2007199848A (ja) * 2006-01-24 2007-08-09 Yaskawa Electric Corp 軽量化リアルタイムos

Also Published As

Publication number Publication date
JP5262329B2 (ja) 2013-08-14

Similar Documents

Publication Publication Date Title
CN110535813B (zh) 内核态协议栈与用户态协议栈并存处理方法和装置
JP3382953B2 (ja) 有限メモリコンピュータシステム上におけるクライアント管理フロー制御方法及び装置
US9264369B2 (en) Technique for managing traffic at a router
US20080301406A1 (en) System and method for allocating communications to processors in a multiprocessor system
US20220261270A1 (en) Reusing software application containers
US9712374B1 (en) Network services resource management
US20080120619A1 (en) Real time monitoring and tracing of scheduler decisions
TW200922246A (en) Dynamically configuring a router to find the best DHCP server
JP2004038758A (ja) 記憶制御装置、記憶制御装置の制御方法、及びプログラム
US20060080457A1 (en) Computer system and bandwidth control method for the same
US8539089B2 (en) System and method for vertical perimeter protection
CN107666474B (zh) 一种网络报文处理方法、装置及网络服务器
JP2016162266A (ja) 通信装置及びそのプロセッサ割当方法
CN113722103A (zh) 加密卡的调用控制方法及通信设备
WO2024159957A1 (zh) 网络健康探测方法、装置、电子设备及存储介质
US7697434B1 (en) Method and apparatus for enforcing resource utilization of a container
US8442939B2 (en) File sharing method, computer system, and job scheduler
US8375123B2 (en) Remote session management
JP5262329B2 (ja) スケジューリングプログラム,スケジューリング方法及びスケジューリング装置
JP4415391B2 (ja) データをネットワークに送信する方法及び装置並びにデータをネットワークから受信する方法及び装置
US7363383B2 (en) Running a communication protocol state machine through a packet classifier
US7693166B2 (en) Method and apparatus for transmitting data to network and method and apparatus for receiving data from network
WO2018127013A1 (zh) 一种流数据的并发传输方法和装置
US10291717B2 (en) Prioritizing VDI sessions and redirected devices in software defined networks
JP2005217491A (ja) 受信処理方法/プログラム/プログラム記録媒体、情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120712

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130130

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130415

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees