JP6269045B2 - Information processing apparatus for managing buffer, buffer management method, and program therefor - Google Patents

Information processing apparatus for managing buffer, buffer management method, and program therefor Download PDF

Info

Publication number
JP6269045B2
JP6269045B2 JP2013268403A JP2013268403A JP6269045B2 JP 6269045 B2 JP6269045 B2 JP 6269045B2 JP 2013268403 A JP2013268403 A JP 2013268403A JP 2013268403 A JP2013268403 A JP 2013268403A JP 6269045 B2 JP6269045 B2 JP 6269045B2
Authority
JP
Japan
Prior art keywords
input
output
unit
buffer
execution
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
JP2013268403A
Other languages
Japanese (ja)
Other versions
JP2015125525A (en
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2013268403A priority Critical patent/JP6269045B2/en
Publication of JP2015125525A publication Critical patent/JP2015125525A/en
Application granted granted Critical
Publication of JP6269045B2 publication Critical patent/JP6269045B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、バッファ管理技術に関し、特にバッファを割り当てる技術に関する。   The present invention relates to a buffer management technique, and more particularly to a technique for allocating a buffer.

バッファ管理のためのさまざまな関連技術が知られている。   Various related techniques for buffer management are known.

例えば、特許文献1は、バッファ管理装置の一例を開示する。特許文献1のバッファ管理装置は、ファイルの入出力部分を一時記憶するバッファ部に、プロセス毎に設定されたサイズのバッファ領域を確保する、バッファ管理手段を備える。特許文献1は、上述の構成を備えるそのバッファ管理装置が、二次記憶装置への入出力の効率及びシステム全体の効率を向上させるとしている。   For example, Patent Document 1 discloses an example of a buffer management device. The buffer management device of Patent Document 1 includes a buffer management unit that secures a buffer area having a size set for each process in a buffer unit that temporarily stores an input / output portion of a file. According to Patent Document 1, the buffer management device having the above-described configuration improves the efficiency of input / output to the secondary storage device and the efficiency of the entire system.

近年、コンピュータシステムの大規模化や複雑化などにより、コンピュータシステム内で動作するプロセス間の連携が密になる傾向がある。そのため、あるプロセスの想定外の停止が他のプロセスにも伝播し、システム全体に影響を与えるという可能性が、高くなっている。   In recent years, there is a tendency that cooperation between processes operating in a computer system becomes dense due to the increase in scale and complexity of the computer system. Therefore, there is a high possibility that an unexpected stop of a certain process is propagated to other processes and affects the entire system.

想定外のプロセス停止の一因に、ブロッキングI/O(Input/Output) API(Application Programming Interface)使用時の資源不足が挙げられる。ブロッキングI/O APIにおいては、I/O実行の完了を待つ場合と、I/O実行に必要な資源であるI/Oバッファの確保を待つ場合とに、ブロッキングI/O APIの内部で処理の実行が停止する。   One cause of unexpected process stoppage is a shortage of resources when using a blocking I / O (Input / Output) API (Application Programming Interface). In the blocking I / O API, processing is performed inside the blocking I / O API when waiting for completion of I / O execution and when waiting for securing an I / O buffer, which is a resource necessary for I / O execution. Execution stops.

一般的に、I/O実行の完了待ちについては、プログラム実装者の想定の範囲内である。しかしながら、I/Oバッファの確保待ちという事象は、I/Oバッファ不足時にしか発生しない。そのため、実装者によってはその事象の発生を想定していないという場合がある。また、実装者が、その事象の発生を想定しながらも、そのI/Oバッファの確保待ちが発生した場合のテストを十分に実施していない場合がある。   Generally, waiting for completion of I / O execution is within the scope of the program implementer's assumption. However, the event of waiting for securing the I / O buffer occurs only when the I / O buffer is insufficient. Therefore, some implementers may not expect the event to occur. In addition, there is a case where the implementer does not sufficiently perform the test when waiting for securing the I / O buffer occurs while assuming the occurrence of the event.

ブロッキングI/O APIのI/Oバッファ不足によるプロセスの停止を避けるため、一般的にはノンブロッキングI/O APIも用意されている。   A non-blocking I / O API is generally prepared in order to avoid a process stop due to an insufficient I / O buffer of the blocking I / O API.

ノンブロッキングI/O APIは、I/O完了待ちによっても、I/Oバッファ不足によっても、処理の実行を停止しない。しかしながら、ノンブロッキングI/O APIを使用する場合には、I/O完了やI/Oバッファ不足解消などのハンドリング、API呼び出しの再試行などが必要である。そのため、ノンブロッキングI/O APIを使用する場合は、ブロッキングI/O APIを使用する場合より、プログラム実装の難易度が高い。   The non-blocking I / O API does not stop the execution of processing even when waiting for I / O completion or due to a shortage of I / O buffers. However, when the non-blocking I / O API is used, handling such as I / O completion and resolution of I / O buffer shortage, API call retry, and the like are necessary. Therefore, when using the non-blocking I / O API, the program implementation is more difficult than when using the blocking I / O API.

そこで、プログラムの実装を容易にするため、ブロッキングI/O APIが使用される場合がある。また、既存プログラムに対するブロッキングI/O APIからノンブロッキングI/O APIへの移行作業は、前述のとおりプログラミングモデルが異なるため、APIの単純置換では対応できず、コストが大きい。   Therefore, a blocking I / O API may be used to facilitate program implementation. In addition, the migration work from the blocking I / O API to the non-blocking I / O API for the existing program cannot be handled by the simple replacement of the API because the programming model is different as described above, and the cost is high.

即ち、大規模で複雑化したシステムにおいて、ブロッキングI/O APIが使用されることにより、I/Oバッファ不足時にプロセス停止が発生し、タイミング依存バグが誘発されるという問題点があった。   That is, in a large-scale and complicated system, the use of the blocking I / O API causes a problem that a process stop occurs when an I / O buffer is insufficient, and a timing dependent bug is induced.

このような問題点を解決する技術が特許文献2に記載されている。特許文献2に記載のアプリケーション・プログラム・インタフェースの非同期動作制御方式は、プログラム実行時(即ち、プロセス)の資源(上述のI/Oバッファに対応)不足を回避する技術である。その非同期動作制御方式においては、資源保証したいプロセスに対して、事前確保した資源が固定的に割り当てられる。そして、そのプロセスは、割り当てられたその資源をプール管理して使用する。これらの構成を備えることで、その非同期動作制御方式は、他プロセスの資源消費の影響を排除する。   A technique for solving such problems is described in Patent Document 2. The asynchronous operation control method of the application program interface described in Patent Document 2 is a technique for avoiding a shortage of resources (corresponding to the above-mentioned I / O buffer) at the time of program execution (ie, process). In the asynchronous operation control method, a resource secured in advance is fixedly assigned to a process whose resource is to be guaranteed. Then, the process uses the allocated resource by pool management. By providing these configurations, the asynchronous operation control method eliminates the influence of resource consumption of other processes.

特開2000−305825号公報JP 2000-305825 A 特開平2−308338号公報JP-A-2-308338

しかしながら、上述した先行技術文献に記載された技術においては、各プロセスに対する入出力バッファの割当数を保証し、かつ利用可能な入出力バッファを有効に活用することが困難であるという問題点がある。   However, the techniques described in the above-mentioned prior art documents have a problem that it is difficult to guarantee the number of input / output buffers allocated to each process and to effectively use available input / output buffers. .

その理由は、以下のとおりである。   The reason is as follows.

特許文献1に記載されたバッファ管理装置は、プロセス毎に設定されたサイズのバッファ領域を、固定的に確保するからである。即ち、そのバッファ管理装置は、未使用状態のバッファ領域が存在及び発生しても、確保するバッファ領域を増加する手段を持たないからである。   This is because the buffer management device described in Patent Document 1 permanently secures a buffer area having a size set for each process. That is, the buffer management device does not have means for increasing the buffer area to be secured even if there is an unused buffer area.

特許文献2に記載された非同期動作制御方式は、事前確保した資源を各プロセスがローカルに管理するからである。即ち、その非同期動作制御方式は、未使用状態のバッファ領域が発生しても、各プロセスがローカルに管理する資源を増加する手段を持たない。   This is because the asynchronous operation control system described in Patent Document 2 locally manages the resources secured in advance. That is, the asynchronous operation control method does not have means for increasing resources locally managed by each process even when an unused buffer area is generated.

即ち、上述した先行技術文献に記載された技術においては、プロセス間での資源(入出力バッファ)の融通が難しく、プロセスの数が増減する一般的な環境では、有限個の資源を余すことなく、効率的に利用できない。   In other words, in the technology described in the above-mentioned prior art documents, it is difficult to interchange resources (input / output buffers) between processes, and in a general environment where the number of processes increases or decreases, a finite number of resources are not left. Cannot be used efficiently.

本発明の目的は、上述した問題点を解決するバッファを管理する情報処理装置、バッファ管理方法、及びそのためのプログラムを提供することにある。   An object of the present invention is to provide an information processing apparatus that manages a buffer that solves the above-described problems, a buffer management method, and a program therefor.

本発明の一様態における情報処理装置は、利用可能な入出力バッファの総数と、新規に開始される新規プロセス及び既に実行中の実行中プロセスのそれぞれが必要とする前記入出力バッファの数の下限値の第1の合計数と、を比較した結果に基づいて、前記新規プロセスの実行を開始及び保留し、前記新規プロセスの実行を開始する場合及び前記実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、前記実行中プロセスのそれぞれが同時に取得できる前記入出力バッファの数の第1の上限値の見直しを実行するプロセススケジュール手段と、前記実行中プロセスから入出力要求を受信した場合に、前記実行中プロセスによる前記入出力バッファの使用数を、前記実行中プロセスに対応する前記第1の上限値以下に保つように、前記入出力バッファの取得を待ち合わせるブロッキング入出力手段と、を含む。   An information processing apparatus according to an embodiment of the present invention includes a total number of available input / output buffers, and a lower limit of the number of input / output buffers required for each of a newly started new process and an already executing process. Based on the result of comparing the first total number of values, the execution of the new process is started and suspended, and when the execution of the new process starts and when the running process ends, the available Process schedule means for revising the first upper limit value of the number of input / output buffers that can be simultaneously acquired by each of the running processes so that the utilization rate of the various input / output buffers becomes higher, and the running process When the I / O request is received from the first process, the number of uses of the I / O buffer by the running process is set to the first number corresponding to the running process. To keep the upper limit or less, including a blocking input and output means to wait for acquisition of the output buffer.

本発明の一様態におけるバッファ管理方法は、利用可能な入出力バッファの総数と、新規に開始される新規プロセス及び既に実行中の実行中プロセスのそれぞれが必要とする前記入出力バッファの数の下限値の第1の合計数と、を比較した結果に基づいて、前記新規プロセスの実行を開始及び保留し、前記新規プロセスの実行を開始する場合及び前記実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、前記実行中プロセスのそれぞれが同時に取得できる前記入出力バッファの数の第1の上限値の見直しを実行し、前記実行中プロセスから入出力要求を受信した場合に、前記実行中プロセスによる前記入出力バッファの使用数を、前記実行中プロセスに対応する前記第1の上限値以下に保つように、前記入出力バッファの取得を待ち合わせる。   The buffer management method according to an aspect of the present invention includes a total number of available input / output buffers and a lower limit of the number of input / output buffers required by each of a newly started new process and an already running process. Based on the result of comparing the first total number of values, the execution of the new process is started and suspended, and when the execution of the new process starts and when the running process ends, the available The first upper limit value of the number of input / output buffers that can be simultaneously acquired by each of the executing processes is reviewed so that the utilization rate of each input / output buffer becomes higher, and an input / output request is issued from the executing process. The number of I / O buffers used by the executing process is kept below the first upper limit value corresponding to the executing process. It waits for acquisition of the input and output buffer.

本発明の一様態におけるプログラムは、利用可能な入出力バッファの総数と、新規に開始される新規プロセス及び既に実行中の実行中プロセスのそれぞれが必要とする前記入出力バッファの数の下限値の第1の合計数と、を比較した結果に基づいて、前記新規プロセスの実行を開始及び保留し、前記新規プロセスの実行を開始する場合及び前記実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、前記実行中プロセスのそれぞれが同時に取得できる前記入出力バッファの数の第1の上限値の見直しを実行し、前記実行中プロセスから入出力要求を受信した場合に、前記実行中プロセスによる前記入出力バッファの使用数を、前記実行中プロセスに対応する前記第1の上限値以下に保つように、前記入出力バッファの取得を待ち合わせる処理をコンピュータに実行させる。   The program according to one aspect of the present invention includes a total number of available input / output buffers and a lower limit value of the number of input / output buffers required for each of a newly started new process and an already executing process. Based on the result of the comparison with the first total number, the execution of the new process is started and suspended, and when the execution of the new process starts and when the running process ends, the available input The first upper limit value of the number of input / output buffers that can be simultaneously acquired by each of the executing processes is reviewed so that the utilization rate of the output buffer becomes higher, and an input / output request is received from the executing process The number of uses of the I / O buffer by the running process is kept below the first upper limit value corresponding to the running process. To execute processing to wait for acquisition of the output buffer in the computer.

本発明は、各プロセスに対する入出力バッファの割当数を保証し、かつ利用可能な入出力バッファを有効に活用することを可能にするという効果がある。   The present invention has an effect of guaranteeing the number of input / output buffers allocated to each process and making effective use of available input / output buffers.

図1は、本発明の第1の実施形態に係るバッファ管理装置の構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of a buffer management apparatus according to the first embodiment of the present invention. 図2は、第1の実施形態におけるプロセススケジュール部の一例を示すブロック図である。FIG. 2 is a block diagram illustrating an example of a process schedule unit in the first embodiment. 図3は、第1の実施形態におけるブロッキング入出力部の一例を示すブロック図である。FIG. 3 is a block diagram illustrating an example of a blocking input / output unit according to the first embodiment. 図4は、第1の実施形態における使用枠管理部の一例を示すブロック図である。FIG. 4 is a block diagram illustrating an example of a use frame management unit according to the first embodiment. 図5は、第1の実施形態におけるプロセス管理テーブルの一例を示す図である。FIG. 5 is a diagram illustrating an example of a process management table in the first embodiment. 図6は、第1の実施形態における入出力バッファ管理部の一例を示すブロック図である。FIG. 6 is a block diagram illustrating an example of the input / output buffer management unit according to the first embodiment. 図7は、第1の実施形態における入出力バッファプール部の一例を示すブロック図である。FIG. 7 is a block diagram illustrating an example of the input / output buffer pool unit according to the first embodiment. 図8は、第1の実施形態における入出力実行キューの一例を示す図である。FIG. 8 is a diagram illustrating an example of the input / output execution queue according to the first embodiment. 図9は、第1の実施形態における入出力実行管理部の一例を示すブロック図である。FIG. 9 is a block diagram illustrating an example of the input / output execution management unit according to the first embodiment. 図10は、第1の実施形態に係る情報処理装置を実現するコンピュータのハードウェア構成を示すブロック図である。FIG. 10 is a block diagram illustrating a hardware configuration of a computer that implements the information processing apparatus according to the first embodiment. 図11は、第1の実施形態におけるユーザプログラムの実行指示受付時及び実行中プロセス終了時の動作を示すフローチャートである。FIG. 11 is a flowchart showing operations at the time of receiving an instruction to execute a user program and ending an executing process in the first embodiment. 図12は、第1の実施形態におけるユーザプログラムの実行指示受付時及び実行中プロセス終了時の動作を示すフローチャートである。FIG. 12 is a flowchart showing operations at the time of receiving an instruction to execute a user program and ending an executing process in the first embodiment. 図13は、第1の実施形態におけるユーザプログラムの実行指示受付時及び実行中プロセス終了時の動作を示すフローチャートである。FIG. 13 is a flowchart showing operations at the time of receiving an instruction to execute a user program and ending an executing process in the first embodiment. 図14は、第1の実施形態における実行中プロセスがブロッキング入出力部を呼び出した場合の動作を示すフローチャートである。FIG. 14 is a flowchart showing an operation when the executing process calls the blocking input / output unit in the first embodiment. 図15は、第1の実施形態における実行中プロセスがブロッキング入出力部を呼び出した場合の動作を示すフローチャートである。FIG. 15 is a flowchart showing an operation when the executing process calls the blocking input / output unit in the first embodiment. 図16は、第1の実施形態における実行中プロセスがブロッキング入出力部を呼び出した場合の動作を示すフローチャートである。FIG. 16 is a flowchart showing an operation when the executing process calls the blocking input / output unit in the first embodiment. 図17は、本発明の第2の実施形態に係るバッファ管理装置の構成を示すブロック図である。FIG. 17 is a block diagram showing a configuration of a buffer management apparatus according to the second embodiment of the present invention. 図18は、第2の実施形態におけるプロセススケジュール部の一例を示すブロック図である。FIG. 18 is a block diagram illustrating an example of a process schedule unit according to the second embodiment. 図19は、第2の実施形態におけるグループ使用枠管理テーブルの一例を示す図である。FIG. 19 is a diagram illustrating an example of a group use frame management table according to the second embodiment. 図20は、第2の実施形態におけるプロセスグループ対応テーブルの一例を示す図である。FIG. 20 is a diagram illustrating an example of a process group correspondence table according to the second embodiment. 図21は、第2の実施形態におけるブロッキング入出力部の一例を示すブロック図である。FIG. 21 is a block diagram illustrating an example of a blocking input / output unit according to the second embodiment. 図22は、本発明の第3の実施形態に係るバッファ管理装置の構成を示すブロック図である。FIG. 22 is a block diagram showing a configuration of a buffer management apparatus according to the third embodiment of the present invention. 図23は、本発明の第4の実施形態に係るバッファ管理装置の構成を示すブロック図である。FIG. 23 is a block diagram showing a configuration of a buffer management apparatus according to the fourth embodiment of the present invention. 図24は、本発明の第5の実施形態に係るバッファ管理装置の構成を示すブロック図である。FIG. 24 is a block diagram showing a configuration of a buffer management apparatus according to the fifth embodiment of the present invention.

本発明を実施するための形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の構成要素には同様の符号を付与し、適宜説明を省略する。   Embodiments for carrying out the present invention will be described in detail with reference to the drawings. In each embodiment described in each drawing and specification, the same reference numerals are given to the same components, and the description thereof is omitted as appropriate.

<<<第1の実施形態>>>
図1は、本発明の第1の実施形態に係るバッファ管理装置901の構成を示すブロック図である。
<<<< first embodiment >>>>
FIG. 1 is a block diagram showing the configuration of the buffer management apparatus 901 according to the first embodiment of the present invention.

例えば、バッファ管理装置901は、ユーザによって作成されたユーザプログラムがプロセス1として動作するコンピュータシステムの一部である。   For example, the buffer management device 901 is a part of a computer system in which a user program created by a user operates as the process 1.

図1に示すように、本実施形態に係るバッファ管理装置901は、プロセススケジュール部2とブロッキング入出力部3と使用枠管理部4と入出力バッファ管理部5と入出力バッファプール6と複数の入出力実行キュー7と非同期入出力要求部8とを含む。即ち、ブロッキング入出力部3のブロッキング入出力部は、ブロッキングI/O部とも呼ばれる。入出力バッファ管理部5の入出力バッファ管理部は、I/Oバッファ管理部とも呼ばれる。入出力バッファプール6の入出力バッファプールは、I/Oバッファプールとも呼ばれる。入出力実行キュー7の入出力実行キューは、I/O実行キューとも記載する。非同期入出力要求部8は、非同期I/O力要求部8とも呼ばれる。   As shown in FIG. 1, the buffer management device 901 according to the present embodiment includes a process schedule unit 2, a blocking input / output unit 3, a use frame management unit 4, an input / output buffer management unit 5, an input / output buffer pool 6, and a plurality of An input / output execution queue 7 and an asynchronous input / output request unit 8 are included. That is, the blocking input / output unit of the blocking input / output unit 3 is also called a blocking I / O unit. The input / output buffer management unit of the input / output buffer management unit 5 is also called an I / O buffer management unit. The input / output buffer pool of the input / output buffer pool 6 is also called an I / O buffer pool. The input / output execution queue of the input / output execution queue 7 is also referred to as an I / O execution queue. The asynchronous input / output request unit 8 is also referred to as an asynchronous I / O force request unit 8.

尚、図1に示す各構成要素は、ハードウェア単位の回路でも、コンピュータ装置の機能単位に分割された構成要素でもよい。ここでは、図1に示す構成要素は、コンピュータ装置の機能単位に分割された構成要素として説明する。   Each component shown in FIG. 1 may be a hardware unit circuit or a component divided into functional units of a computer device. Here, the components shown in FIG. 1 will be described as components divided into functional units of the computer apparatus.

図1に示すプロセス1は、入出力要求(I/O要求とも呼ばれる)を行う任意のユーザプログラムの、動作中のインスタンスであり、複数のプロセス1が同時に動作してもよい。   Process 1 shown in FIG. 1 is an operating instance of an arbitrary user program that makes an input / output request (also called an I / O request), and a plurality of processes 1 may operate simultaneously.

プロセス1のそれぞれは、入出力バッファ(I/Oバッファとも呼ばれる)の所定使用枠値(下限値とも呼ばれる)を設定される。その所定使用枠値は、プロセス1が起動される際に、プロセス1が必要とする入出力バッファの数の下限値として、プロセス1に対して設定される。   Each of the processes 1 is set with a predetermined use frame value (also called a lower limit value) of an input / output buffer (also called an I / O buffer). The predetermined use frame value is set for the process 1 as a lower limit value of the number of input / output buffers required by the process 1 when the process 1 is started.

具体的には、所定使用枠値は、ユーザによって事前に決定される。そして、その所定使用枠値は、例えば、プロセス1をインスタンスとするユーザプログラムの実行指示に含めて、バッファ管理装置901に与えられる。そして、プロセススケジュール部2は、プロセス1を起動する場合に、与えられたその所定使用枠値をプロセス1に設定(付与)する。   Specifically, the predetermined use frame value is determined in advance by the user. Then, the predetermined use frame value is given to the buffer management apparatus 901, for example, by including it in an execution instruction of a user program having the process 1 as an instance. Then, when the process schedule unit 2 starts the process 1, the process schedule unit 2 sets (gives) the given predetermined use frame value to the process 1.

また、バッファ管理装置901において、その所定使用枠値に基づいて、プロセス1が同時に取得できる入出力バッファ数の上限値が設定される。以下では、その上限値を、再設定使用枠値と呼ぶ。   In the buffer management device 901, an upper limit value of the number of input / output buffers that can be simultaneously acquired by the process 1 is set based on the predetermined use frame value. Hereinafter, the upper limit value is referred to as a reset use frame value.

入出力バッファは、入出力要求を実現するための、有限個の固定長の記憶資源である。入出力バッファは、入出力要求毎に使用され、入出力完了時に解放(未使用状態に)される。入出力未使用状態の入出力バッファは、入出力バッファプール6によって管理される。   The input / output buffer is a finite number of fixed-length storage resources for realizing an input / output request. The input / output buffer is used for each input / output request, and is released (unused) when the input / output is completed. The input / output unused buffer is managed by the input / output buffer pool 6.

本実施形態のバッファ管理装置901は、プロセス1毎に、入出力バッファの最低保証量となる所定使用枠値を事前割当する。そうすることで、バッファ管理装置901は、入出力バッファの資源保証を行い、資源不足によるブロッキング入出力 APIの停止を回避する。更に、実行中プロセスの増減にあわせて、余剰の入出力バッファの使用枠値を余すことなく実行中プロセスに配分し、システム全体の入出力バッファ使用効率を向上させる。   The buffer management apparatus 901 of this embodiment pre-allocates a predetermined use frame value that is the minimum guaranteed amount of the input / output buffer for each process 1. By doing so, the buffer management device 901 guarantees the resources of the input / output buffer, and avoids stopping the blocking input / output API due to a shortage of resources. Furthermore, according to the increase / decrease of the process being executed, the surplus input / output buffer usage frame value is allocated to the process being executed without leaving an excess, thereby improving the input / output buffer usage efficiency of the entire system.

===プロセススケジュール部2===
プロセススケジュール部2は、プロセス1の起動、終了及びプロセス1の入出力バッファの使用枠を制御する。
=== Process Schedule Part 2 ===
The process schedule unit 2 controls the activation and termination of the process 1 and the use frame of the input / output buffer of the process 1.

図2は、本実施形態のプロセススケジュール部2の構成を示すブロック図である。図2に示すようにプロセススケジュール部2は、開始部21と、終了検知部22と、開始判定部23と、使用枠値見直部24と、検査部25とを含む。   FIG. 2 is a block diagram showing a configuration of the process schedule unit 2 of the present embodiment. As shown in FIG. 2, the process schedule unit 2 includes a start unit 21, an end detection unit 22, a start determination unit 23, a use frame value review unit 24, and an inspection unit 25.

開始部21は、ユーザからのプログラム実行指示を受け、そのプログラム実行指示で指定されたユーザプログラムをプロセス1として起動する。そのプログラム実行指示は、例えば、ユーザプログラムの識別子、所定使用枠値及び係数(後述)を含む。   The start unit 21 receives a program execution instruction from the user, and starts the user program designated by the program execution instruction as the process 1. The program execution instruction includes, for example, an identifier of a user program, a predetermined use frame value, and a coefficient (described later).

終了検知部22は、プロセス1の終了を検知して後処理を実行する。例えば、終了検知部22は、その後処理として、終了したプロセス1に対応する使用枠管理レコード431を使用枠管理テーブル43から削除する。   The end detection unit 22 detects the end of the process 1 and executes post-processing. For example, the end detection unit 22 deletes the use frame management record 431 corresponding to the completed process 1 from the use frame management table 43 as the subsequent processing.

開始判定部23は、実行を開始されるプロセス1(新規プロセスとも呼ばれる)の所定使用枠値と実行中プロセスの所定使用枠値との合計を検査し、新規プロセスの実行を開始した場合に入出力バッファが枯渇する可能性があるか否かを判定する。以下では、「実行を開始されるプロセス1」を新規プロセスとも呼ぶ。また、新規プロセスに対して、「既に実行中のプロセス1」を実行中プロセスと呼ぶ。   The start determination unit 23 checks the sum of the predetermined usage limit value of the process 1 (also called a new process) to be executed and the predetermined usage limit value of the process being executed, and enters when the execution of the new process is started. Determine whether the output buffer is likely to be exhausted. Hereinafter, “process 1 to be started” is also referred to as a new process. For a new process, “already running process 1” is referred to as a running process.

例えば、その検査は、その合計と利用可能な入出力バッファの総数とを比較する検査である。その合計がその総数以下の場合、開始判定部23は、新規プロセスの実行を開始した場合に入出力バッファが枯渇する可能性はないと判定する。また、その合計がその総数を超える場合、開始判定部23は、新規プロセスの実行を開始した場合に入出力バッファが枯渇する可能性があると判定する。   For example, the check is a check that compares the sum with the total number of available I / O buffers. When the total is equal to or less than the total number, the start determination unit 23 determines that there is no possibility that the input / output buffer is exhausted when the execution of a new process is started. When the total exceeds the total number, the start determination unit 23 determines that the input / output buffer may be exhausted when the execution of a new process is started.

また、開始判定部23は、後述の使用枠値見直部24による再設定使用枠値の見直しが実行された場合に、各実行中プロセスの入出力バッファ使用数と見直し後の再設定使用枠値の値とを検査する。続けて開始判定部23は、その検査した結果に基づいて、新規プロセスの実行を開始しても入出力バッファが枯渇する可能性がないか否かを判定する。   In addition, when the reset use frame value is reviewed by the use frame value review unit 24 to be described later, the start determination unit 23 and the number of I / O buffers used in each executing process and the reset use frame after review Check the value of the value. Subsequently, the start determination unit 23 determines whether there is no possibility that the input / output buffer will be exhausted even if the execution of the new process is started based on the result of the inspection.

例えば、その検査は、実行中プロセスの入出力バッファ使用数と、その実行中プロセスの見直し後の再設定使用枠値の値とを比較する検査である。   For example, the inspection is an inspection for comparing the number of used input / output buffers of the executing process with the value of the reset use frame value after the review of the executing process.

その入出力バッファ使用数がその見直し後の再設定使用枠値以下の場合、開始判定部23は、新規プロセスの実行を開始した場合に入出力バッファが枯渇する可能性はないと判定する。この場合、開始判定部23は、その新規プロセスのプロセス識別子、所定使用枠値及び係数(後述)を、使用枠管理部4に送信する。   When the number of input / output buffers used is equal to or less than the reset use frame value after the review, the start determination unit 23 determines that there is no possibility that the input / output buffers are exhausted when the execution of a new process is started. In this case, the start determination unit 23 transmits a process identifier, a predetermined use frame value, and a coefficient (described later) of the new process to the use frame management unit 4.

また、その入出力バッファ使用数がその見直し後の再設定使用枠値を超える場合、開始判定部23は、新規プロセスの実行を開始した場合に入出力バッファが枯渇する可能性があると判定する。   If the number of input / output buffers used exceeds the re-set use frame value after the review, the start determination unit 23 determines that there is a possibility that the input / output buffers may be exhausted when the execution of a new process is started. .

使用枠値見直部24は、入出力バッファの利用効率を高めるために、再設定使用枠値の動的見直しを行う。使用枠値見直部24は、実行中プロセスの数が変化する場合、すなわち新規プロセスの実行開始時と実行中プロセスの実行終了時に、再設定使用枠値の見直しを実行する。   The usage frame value review unit 24 dynamically reviews the reset usage frame value in order to increase the utilization efficiency of the input / output buffer. The usage frame value review unit 24 performs a review of the reset usage frame value when the number of running processes changes, that is, at the start of execution of a new process and at the end of execution of a running process.

検査部25は、その新規プロセスをインスタンスとするユーザプログラムが、入出力バッファを使用するAPIをリンクしているか否かを検査する。ここで、本実施形態においては、その入出力バッファを使用するAPIは、ブロッキング入出力部3である。   The inspecting unit 25 inspects whether or not the user program having the new process as an instance links an API that uses the input / output buffer. Here, in the present embodiment, the API that uses the input / output buffer is the blocking input / output unit 3.

そのユーザプログラムが入出力バッファを使用するAPIをリンクしている場合、検査部25は、ユーザプログラムの実行指示に与えられたその新規プロセスの所定使用枠値を、使用枠管理部4に設定する。   If the user program is linked to an API that uses an input / output buffer, the inspection unit 25 sets the predetermined use frame value of the new process given to the execution instruction of the user program in the use frame management unit 4. .

また、そのユーザプログラムが入出力バッファを使用するAPIをリンクしていない場合、検査部25は、その新規プロセスの所定使用枠値として0を、使用枠管理部4に設定する。その理由は、入出力バッファを使用しないプロセス1に、不要な再設定使用枠値を割り当てないようにするためである。   When the user program does not link an API that uses the input / output buffer, the inspection unit 25 sets 0 as the predetermined use frame value of the new process in the use frame management unit 4. The reason is that an unnecessary reset usage frame value is not assigned to the process 1 that does not use the input / output buffer.

===ブロッキング入出力部3===
図1に戻って、ブロッキング入出力部3は、実行中プロセスとして動作するユーザプログラムからの呼び出し(入出力要求、またはI/O要求とも呼ばれる)に応じて、入出力バッファ管理部5に対して入出力要求を行う。例えば、ブロッキング入出力部3は、APIとして実現される。即ち、ブロッキング入出力部3は、入出力バッファ管理部5が、実行中プロセスとして動作するユーザプログラムから入出力要求を受け付ける際のゲートウェイとして機能する。従って、ブロッキング入出力部3は、ユーザプログラムと同一プロセス(同一の実行単位)で動作する。
=== Blocking input / output unit 3 ===
Returning to FIG. 1, the blocking input / output unit 3 responds to the input / output buffer management unit 5 in response to a call (also called an input / output request or an I / O request) from a user program operating as a process being executed. Make an I / O request. For example, the blocking input / output unit 3 is realized as an API. That is, the blocking input / output unit 3 functions as a gateway when the input / output buffer management unit 5 receives an input / output request from a user program that operates as a running process. Therefore, the blocking input / output unit 3 operates in the same process (same execution unit) as the user program.

図3は、本実施形態におけるブロッキング入出力部3の構成を示すブロック図である。   FIG. 3 is a block diagram showing a configuration of the blocking input / output unit 3 in the present embodiment.

図3に示すように、ブロッキング入出力部3は、入出力要求部31と、取得制限部32と、高頻度入出力検出部33とを含む。入出力要求部31の入出力要求部は、I/O要求部とも呼ばれる。また、高頻度入出力検出部33の高頻度入出力検出部は、高頻度I/O検出部とも呼ばれる。   As shown in FIG. 3, the blocking input / output unit 3 includes an input / output request unit 31, an acquisition restriction unit 32, and a high-frequency input / output detection unit 33. The input / output request unit of the input / output request unit 31 is also referred to as an I / O request unit. The high frequency input / output detection unit of the high frequency input / output detection unit 33 is also referred to as a high frequency I / O detection unit.

入出力要求部31は、非同期入出力要求部8へ入出力要求を通知、または、入出力バッファ管理部5へ、入出力要求を送信する。   The input / output request unit 31 notifies the asynchronous input / output request unit 8 of the input / output request or transmits the input / output request to the input / output buffer management unit 5.

===非同期入出力要求部8===
図1に戻って、非同期入出力要求部8は、独立した専用プロセスで動作し、ブロッキング入出力部3とは並列に動作可能である。非同期入出力要求部8は、入出力要求部31から入出力要求を受信し、入出力要求部31が実施する入出力バッファ管理部5への入出力要求処理を、代理実行する。
=== Asynchronous I / O Request Unit 8 ===
Returning to FIG. 1, the asynchronous input / output request unit 8 operates in an independent dedicated process, and can operate in parallel with the blocking input / output unit 3. The asynchronous input / output request unit 8 receives the input / output request from the input / output request unit 31, and performs the input / output request processing to the input / output buffer management unit 5 performed by the input / output request unit 31 as a proxy.

取得制限部32は、実行中プロセスとして動作するユーザプログラムからブロッキング入出力部3が呼ばれたときに、その実行中プロセスの入出力バッファ使用数が、その実行中プロセスの再設定使用枠値より少なくなるまで待ち合わせる。こうすることにより、取得制限部32は、呼び出し元のそのユーザプログラムの実行、即ちその実行中プロセス、を停止させて入出力バッファ使用数を再設定使用枠値以下に収める。   When the blocking input / output unit 3 is called from a user program that operates as an executing process, the acquisition limiting unit 32 determines that the number of input / output buffers used by the executing process is greater than the reset usage frame value of the executing process. Wait until it is low. By doing so, the acquisition limiting unit 32 stops the execution of the user program of the caller, that is, the process being executed, and keeps the number of input / output buffer usage below the reset usage frame value.

高頻度入出力検出部33は、入出力要求するデバイス(不図示)の性能につり合わない、高頻度の、ブロッキング入出力部3の呼び出しを行う実行中プロセスを検出する部である。高頻度入出力検出部33は、高頻度の呼び出しを行う実行中プロセスを検出した場合、使用枠値見直部24の再設定使用枠値見直しにおいて、その実行中プロセスの再設定使用枠値を拡大しないようにする。   The high-frequency input / output detection unit 33 is a unit that detects a running process that calls the blocking input / output unit 3 at a high frequency that does not match the performance of a device (not shown) that requests input / output. When the high-frequency input / output detection unit 33 detects a process being executed that makes a high-frequency call, the high-frequency input / output detection unit 33 sets the reset usage frame value of the running process in the reset usage frame value review of the usage frame value review unit 24. Do not enlarge.

===使用枠管理部4===
使用枠管理部4は、実行中プロセス毎にその実行中プロセスの所定使用枠値と再設定使用枠値と入出力バッファ使用数を保持する。
=== Used Frame Management Unit 4 ===
The use frame management unit 4 holds a predetermined use frame value, a reset use frame value, and the number of input / output buffers used for each executing process.

図4は、本実施形態における使用枠管理部4の構成を示すブロック図である。   FIG. 4 is a block diagram illustrating a configuration of the use frame management unit 4 in the present embodiment.

図4に示すように、使用枠管理部4は、使用枠値取得部41と使用バッファ計数部42と使用枠管理テーブル43とを含む。   As shown in FIG. 4, the use frame management unit 4 includes a use frame value acquisition unit 41, a use buffer counting unit 42, and a use frame management table 43.

図5は、使用枠管理テーブル43の一例を示す図である。   FIG. 5 is a diagram illustrating an example of the usage frame management table 43.

図5に示すように、使用枠管理テーブル43は、プロセス識別子、係数、所定使用枠値、再設定使用枠値及び入出力バッファ使用数を含む。   As shown in FIG. 5, the use frame management table 43 includes a process identifier, a coefficient, a predetermined use frame value, a reset use frame value, and the number of input / output buffers used.

プロセス識別子は、プロセス1のそれぞれを識別する情報である。   The process identifier is information for identifying each process 1.

係数は、再設定使用枠値を算出する際の、プロセス識別子に対応するプロセス1の重みである。   The coefficient is a weight of the process 1 corresponding to the process identifier when calculating the reset use frame value.

所定使用枠値は、プロセス識別子に対応するプロセス1の所定使用枠値である。   The predetermined use frame value is a predetermined use frame value of the process 1 corresponding to the process identifier.

再設定使用枠値は、プロセス識別子に対応するプロセス1の再設定使用枠値である。   The reset use frame value is the reset use frame value of process 1 corresponding to the process identifier.

入出力バッファ使用数は、プロセス識別子に対応するプロセス1の入出力バッファの現使用数である。   The number of used input / output buffers is the current number of used input / output buffers of process 1 corresponding to the process identifier.

使用枠値取得部41は、プロセススケジュール部2から受け取った、プロセス1のそれぞれに対応する係数、所定使用枠値プロセス識別子と共に、使用枠管理テーブル43に記録する。また、使用枠値取得部41は、プロセススケジュール部2から受け取った再設定使用枠値で、使用枠管理テーブル43の再設定使用枠値を更新する。   The use frame value acquiring unit 41 records the coefficient corresponding to each process 1 and the predetermined use frame value process identifier received from the process schedule unit 2 in the use frame management table 43. In addition, the use frame value acquisition unit 41 updates the reset use frame value in the use frame management table 43 with the reset use frame value received from the process schedule unit 2.

そして、使用枠値取得部41は、プロセススケジュール部2及びブロッキング入出力部3からの要求に応答して、記録されたその係数、その所定使用枠値及びその再設定使用枠値を出力する。   Then, the use frame value acquisition unit 41 outputs the recorded coefficient, the predetermined use frame value, and the reset use frame value in response to the requests from the process schedule unit 2 and the blocking input / output unit 3.

使用バッファ計数部42は、実行中プロセスのそれぞれの入出力バッファの使用数を計数し、計数したその使用数を使用枠管理テーブル43に記録する。そして、使用バッファ計数部42は、プロセススケジュール部2からの要求に応答して記録されたその入出力バッファ使用数を出力する。   The used buffer counting unit 42 counts the number of used input / output buffers of the process being executed, and records the counted number of uses in the used frame management table 43. Then, the used buffer counting unit 42 outputs the number of used input / output buffers recorded in response to the request from the process schedule unit 2.

===入出力バッファ管理部5===
入出力バッファ管理部5は、未使用の入出力バッファを入出力バッファプール6で管理し、使用中の入出力バッファを入出力実行キュー7で管理する。
=== I / O Buffer Management Unit 5 ===
The input / output buffer management unit 5 manages unused input / output buffers in the input / output buffer pool 6 and manages input / output buffers in use in the input / output execution queue 7.

図6は、本実施形態における入出力バッファ管理部5の構成を示すブロック図である。   FIG. 6 is a block diagram showing a configuration of the input / output buffer management unit 5 in the present embodiment.

図6に示すように、入出力バッファ管理部5は、バッファ取得部51と、入出力実行管理部52と、バッファ解放部53とを含む。入出力実行管理部52の入出力実行管理部は、I/O実行管理部52とも記載する。   As shown in FIG. 6, the input / output buffer management unit 5 includes a buffer acquisition unit 51, an input / output execution management unit 52, and a buffer release unit 53. The input / output execution management unit of the input / output execution management unit 52 is also referred to as an I / O execution management unit 52.

バッファ取得部51は、後述する入出力要求登録部521で入出力実行キュー7に登録するために、入出力バッファプール6から未使用の入出力バッファ61を取り出して、使用中の状態にする。ここで、入出力バッファ61は、物理的な記憶媒体としての入出力バッファを利用するための情報である。入出力バッファ61の入出力バッファは、I/Oバッファとも呼ばれる。   The buffer acquisition unit 51 takes out the unused input / output buffer 61 from the input / output buffer pool 6 so as to be registered in the input / output execution queue 7 by the input / output request registration unit 521 described later. Here, the input / output buffer 61 is information for using the input / output buffer as a physical storage medium. The input / output buffer of the input / output buffer 61 is also called an I / O buffer.

入出力実行管理部52は、入出力実行キュー7で使用中の入出力バッファ71を管理し、入出力実行キュー7に登録した入出力バッファ71を使用して、デバイスに対して登録順に入出力を実行する。ここで、入出力バッファ71は、物理的な記憶媒体としての入出力バッファを利用するための情報である。入出力バッファ71の入出力バッファは、I/Oバッファとも呼ばれる。   The input / output execution management unit 52 manages the input / output buffer 71 being used in the input / output execution queue 7, and uses the input / output buffer 71 registered in the input / output execution queue 7 to input / output to the device in the registration order. Execute. Here, the input / output buffer 71 is information for using the input / output buffer as a physical storage medium. The input / output buffer of the input / output buffer 71 is also called an I / O buffer.

バッファ解放部53は、デバイスに対する入出力実行完了後に、その実行で使用した入出力バッファを、未使用の状態にして、入出力バッファプール6に戻し、プロセススケジュール部2と取得制限部32に通知する。   After completion of input / output execution for the device, the buffer release unit 53 sets the input / output buffer used in the execution to an unused state, returns it to the input / output buffer pool 6, and notifies the process schedule unit 2 and the acquisition restriction unit 32 To do.

===入出力バッファプール部6===
入出力バッファプール6は、未使用の入出力バッファ61を管理するバッファプールである。
=== I / O Buffer Pool Unit 6 ===
The input / output buffer pool 6 is a buffer pool that manages unused input / output buffers 61.

図7は、本実施形態における入出力バッファプール6の構成を示すブロック図である。   FIG. 7 is a block diagram showing the configuration of the input / output buffer pool 6 in this embodiment.

図7に示すように、入出力バッファプール6は、 複数の入出力バッファ61を含む。   As shown in FIG. 7, the input / output buffer pool 6 includes a plurality of input / output buffers 61.

===入出力実行キュー7=== 入出力実行キュー7は、入出力要求可能なデバイス毎に存在し、入出力実行待ちの入出力バッファ71を管理するFIFO(First In、First Out)のキューである。   === Input / Output Execution Queue 7 === The input / output execution queue 7 exists for each device that can make an input / output request, and is a FIFO (First In, First Out) that manages the input / output buffer 71 waiting for input / output execution. It is a queue.

図8は、本実施形態における入出力実行キュー7の構成を示すブロック図である。   FIG. 8 is a block diagram showing the configuration of the input / output execution queue 7 in this embodiment.

図8に示すように、入出力実行キュー7は、複数の入出力バッファ71を含む。   As shown in FIG. 8, the input / output execution queue 7 includes a plurality of input / output buffers 71.

図9は、本実施形態における入出力実行管理部52の構成を示すブロック図である。   FIG. 9 is a block diagram showing a configuration of the input / output execution management unit 52 in the present embodiment.

図9に示すように、入出力実行管理部52は、入出力要求登録部521と、入出力要求キャンセル部522と、複数のデバイスドライバ523とを含む。入出力要求登録部521の入出力要求登録部は、I/O要求登録部とも呼ばれる。また、入出力要求キャンセル部522の入出力要求キャンセル部は、I/O要求キャンセル部とも呼ばれる。   As shown in FIG. 9, the input / output execution management unit 52 includes an input / output request registration unit 521, an input / output request cancellation unit 522, and a plurality of device drivers 523. The input / output request registration unit of the input / output request registration unit 521 is also referred to as an I / O request registration unit. Further, the input / output request canceling unit of the input / output request canceling unit 522 is also referred to as an I / O request canceling unit.

入出力要求登録部521は、バッファ取得部51によって取得された使用中の状態になっている入出力バッファ61を、入出力実行キュー7に登録する。   The input / output request registration unit 521 registers, in the input / output execution queue 7, the input / output buffer 61 that is acquired by the buffer acquisition unit 51 and is in use.

入出力要求キャンセル部522は、入出力実行キュー7から任意の入出力バッファ71を取り出すことにより、未実行の入出力要求をキャンセルする。取り出した入出力バッファ71は、バッファ解放部53を使用して、入出力バッファプール6に戻される。   The input / output request cancel unit 522 cancels an unexecuted input / output request by taking out an arbitrary input / output buffer 71 from the input / output execution queue 7. The extracted input / output buffer 71 is returned to the input / output buffer pool 6 using the buffer release unit 53.

デバイスドライバ523は、入出力実行キュー7のそれぞれに1つ対応して、存在する。すなわち、デバイスドライバ523は、入出力要求可能なデバイスの数だけ存在する。デバイスドライバ523は、それぞれ独立した専用のプロセスで動作する。デバイスドライバ523は、入出力実行キュー7から、登録された順に入出力バッファ71を取り出し、対応するデバイスに対して入出力を実行する。デバイスドライバ523は、取り出した入出力バッファ71を、入出力実行完了後にバッファ解放部53を使用して、入出力バッファプール6に戻す。また、デバイスドライバ523は、統計情報として、入出力実行に要する平均時間をデバイスドライバ523毎の所定の記憶領域(不図示)に保持する。   There is one device driver 523 corresponding to each of the input / output execution queues 7. That is, there are as many device drivers 523 as the number of devices that can request input / output. The device drivers 523 operate in independent dedicated processes. The device driver 523 retrieves the input / output buffer 71 from the input / output execution queue 7 in the registered order, and executes input / output with respect to the corresponding device. The device driver 523 returns the extracted input / output buffer 71 to the input / output buffer pool 6 using the buffer release unit 53 after completion of input / output execution. In addition, the device driver 523 holds, as statistical information, an average time required for executing input / output in a predetermined storage area (not shown) for each device driver 523.

以上が、バッファ管理装置901の機能単位の各構成要素についての説明である。   This completes the description of each component of the function unit of the buffer management device 901.

次に、バッファ管理装置901のハードウェア単位の構成要素について説明する。   Next, components of the buffer management device 901 in hardware units will be described.

図10は、本実施形態におけるバッファ管理装置901を実現するコンピュータ910のハードウェア構成を示す図である。   FIG. 10 is a diagram illustrating a hardware configuration of a computer 910 that implements the buffer management apparatus 901 according to the present embodiment.

図10に示すように、コンピュータ910は、CPU(Central Processing Unit)911、記憶部912、記憶装置913及び入出力部914を含む。更に、コンピュータ910は、外部から供給される記録媒体(または記憶媒体)917を含む。例えば、記録媒体917は、情報を非一時的に記憶する不揮発性記録媒体(非一時的記録媒体)である。また、記録媒体917は、情報を信号として保持する、一時的記録媒体であってもよい。   As illustrated in FIG. 10, the computer 910 includes a CPU (Central Processing Unit) 911, a storage unit 912, a storage device 913, and an input / output unit 914. Further, the computer 910 includes a recording medium (or storage medium) 917 supplied from the outside. For example, the recording medium 917 is a non-volatile recording medium (non-temporary recording medium) that stores information non-temporarily. Further, the recording medium 917 may be a temporary recording medium that holds information as a signal.

CPU911は、オペレーティングシステム(不図示)を動作させて、コンピュータ910の全体の動作を制御する。例えば、CPU911は、記憶装置913に装着された記録媒体917から、プログラムやデータを読み込み、読み込んだそのプログラムやそのデータを記憶部912に書き込む。ここで、そのプログラムは、例えば、後述の図11乃至16に示すフローチャートの動作をコンピュータ910に実行させるためのプログラムである。   The CPU 911 controls the overall operation of the computer 910 by operating an operating system (not shown). For example, the CPU 911 reads a program and data from a recording medium 917 attached to the storage device 913, and writes the read program and data to the storage unit 912. Here, the program is, for example, a program for causing the computer 910 to execute operations of flowcharts shown in FIGS.

CPU911は、その読み込んだプログラムに従って、またその読み込んだデータに基づいて、図1に示すプロセススケジュール部2、ブロッキング入出力部3、使用枠管理部4、入出力バッファ管理部5及び非同期入出力要求部8として各種の処理を実行する。   The CPU 911 follows the read program and based on the read data, the process schedule unit 2, the blocking input / output unit 3, the use frame management unit 4, the input / output buffer management unit 5 and the asynchronous input / output request shown in FIG. As the unit 8, various processes are executed.

尚、CPU911は、通信網(不図示)に接続されている外部コンピュータ(不図示)から、記憶部912にそのプログラムやそのデータをダウンロードしてもよい。   Note that the CPU 911 may download the program and the data to the storage unit 912 from an external computer (not shown) connected to a communication network (not shown).

記憶部912は、そのプログラムやそのデータを記憶する。記憶部912は、入出力実行キュー7及び非同期入出力要求部8を含んでよい。   The storage unit 912 stores the program and the data. The storage unit 912 may include an input / output execution queue 7 and an asynchronous input / output request unit 8.

記憶装置913は、例えば、光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク及び半導体メモリであって、記録媒体917を含む。記憶装置913(記録媒体917)は、そのプログラムをコンピュータ読み取り可能に記憶する。また、記憶装置913は、そのデータを記憶してもよい。記憶装置913は、入出力実行キュー7及び非同期入出力要求部8を含んでよい。   The storage device 913 is, for example, an optical disk, a flexible disk, a magnetic optical disk, an external hard disk, and a semiconductor memory, and includes a recording medium 917. The storage device 913 (recording medium 917) stores the program in a computer-readable manner. The storage device 913 may store the data. The storage device 913 may include an input / output execution queue 7 and an asynchronous input / output request unit 8.

入出力部914は、図示しない外部デバイスとのインタフェースを実現する。入出力部914は、入出力バッファ管理部5の入出力実行管理部52のデバイスドライバ523から制御されてよい。また、入出力部914は、デバイスドライバ523の一部として含まれてもよい。   The input / output unit 914 implements an interface with an external device (not shown). The input / output unit 914 may be controlled by the device driver 523 of the input / output execution management unit 52 of the input / output buffer management unit 5. Further, the input / output unit 914 may be included as part of the device driver 523.

入出力部914は、例えば、オペレータによる操作の入力、及びオペレータへの例えばGUI(GRAPHICAL User Interface)による入力要求や出力表示の入出力インタフェースを実現する。また、入出力部914は、外部記憶デバイスや通信制御装置などからの情報の入出力インタフェースを実現する。
The input / output unit 914 implements, for example, an input of an operation by an operator and an input / output interface for an input request and an output display to the operator by, for example, a GUI (GRAPHIC User Interface). The input / output unit 914 implements an input / output interface for information from an external storage device, a communication control device, or the like.

以上説明したように、図1に示すバッファ管理装置901の機能単位のブロックは、図10に示すハードウェア構成のコンピュータ910によって実現される。但し、コンピュータ910が備える各部の実現部は、上記に限定されない。すなわち、コンピュータ910は、物理的に結合した1つの装置により実現されてもよいし、物理的に分離した2つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。   As described above, the functional unit block of the buffer management apparatus 901 shown in FIG. 1 is realized by the computer 910 having the hardware configuration shown in FIG. However, the realization part of each part with which the computer 910 is provided is not limited to the above. That is, the computer 910 may be realized by one physically coupled device, or may be realized by a plurality of these devices by connecting two or more physically separated devices in a wired or wireless manner. .

尚、上述のプログラムのコードを記録した記録媒体917が、コンピュータ910に供給される場合、CPU911は、記録媒体917に格納されたそのプログラムのコードを読み出して実行してもよい。或いは、CPU911は、記録媒体917に格納されたそのプログラムのコードを、記憶部912、記憶装置913またはその両方に格納してもよい。すなわち、本実施形態は、コンピュータ910(CPU911)が実行するそのプログラム(ソフトウェア)を、一時的にまたは非一時的に、記憶する記録媒体917の実施形態を含む。尚、情報を非一時的に記憶する記憶媒体は、不揮発性記憶媒体とも呼ばれる。   When the recording medium 917 in which the program code is recorded is supplied to the computer 910, the CPU 911 may read and execute the program code stored in the recording medium 917. Alternatively, the CPU 911 may store the code of the program stored in the recording medium 917 in the storage unit 912, the storage device 913, or both. That is, the present embodiment includes an embodiment of a recording medium 917 for storing the program (software) executed by the computer 910 (CPU 911) temporarily or non-temporarily. A storage medium that stores information non-temporarily is also referred to as a non-volatile storage medium.

以上が、本実施形態におけるバッファ管理装置901を実現するコンピュータ910の、ハードウェア単位の各構成要素についての説明である。   This completes the description of each hardware component of the computer 910 that implements the buffer management device 901 in the present embodiment.

次に本実施形態の動作について、図面を参照して詳細に説明する。   Next, the operation of the present embodiment will be described in detail with reference to the drawings.

図11、図12及び図13は、バッファ管理装置901がユーザプログラムの実行指示を受け付けた場合、及び実行中のプロセスが終了した場合の動作を示すフローチャートである。   FIGS. 11, 12, and 13 are flowcharts showing operations when the buffer management apparatus 901 receives an instruction to execute a user program and when a process being executed is completed.

尚、このフローチャートによる処理は、前述したCPU911によるプログラム制御に基づいて、実行されても良い。また、処理のステップ名については、ステップS101のように、記号で記載する。   Note that the processing according to this flowchart may be executed based on the program control by the CPU 911 described above. Further, the step name of the process is described by a symbol as in step S101.

(図11のステップS101)
ユーザがユーザプログラムの実行をプロセススケジュール部2に指示したとき、プロセススケジュール部2の開始部21は、そのユーザプログラムのロードモジュールをメモリ(例えば、図10に示す記憶部912)に展開する。即ち、開始部21は、そのユーザプログラムを新規プロセスとして実行可能な状態に準備する。
(Step S101 in FIG. 11)
When the user instructs the process schedule unit 2 to execute the user program, the start unit 21 of the process schedule unit 2 expands the load module of the user program in a memory (for example, the storage unit 912 shown in FIG. 10). That is, the start unit 21 prepares the user program so that it can be executed as a new process.

(図11のステップS102)
次に、プロセススケジュール部2の検査部25は、そのユーザプログラムが入出力バッファを使用するAPIをリンクしているか否かを検査する。
(Step S102 in FIG. 11)
Next, the checking unit 25 of the process schedule unit 2 checks whether or not the user program is linked to an API that uses an input / output buffer.

そのユーザプログラムが入出力バッファを使用するAPIをリンクしている場合(ステップS102でリンク有)、処理はステップS105へ進む。   If the user program is linked to an API that uses an input / output buffer (link is present in step S102), the process proceeds to step S105.

そのユーザプログラムが入出力バッファを使用するAPIをリンクしていない場合(ステップS102でリンク無)、処理はステップS104へ進む。   If the user program does not link an API that uses the input / output buffer (no link in step S102), the process proceeds to step S104.

(図11のステップS104)
検査部25は、その新規プロセスの所定使用枠値を0に設定する。
(Step S104 in FIG. 11)
The inspection unit 25 sets the predetermined use frame value of the new process to 0.

(図11のステップS105)
次に、プロセススケジュール部2の開始判定部23は、使用枠値取得部41から、全ての実行中プロセスの所定使用枠値の値を取得する。また、開始判定部23は、システムに存在する利用可能な入出力バッファの総数を、入出力バッファ管理部5から取得する。
(Step S105 in FIG. 11)
Next, the start determination unit 23 of the process schedule unit 2 acquires the values of the predetermined use frame values of all the running processes from the use frame value acquisition unit 41. In addition, the start determination unit 23 acquires the total number of available input / output buffers existing in the system from the input / output buffer management unit 5.

(図11のステップS106)
次に、開始判定部23は、取得したその実行中プロセスの所定使用枠値の全てとその新規プロセスの所定使用枠値とを合計した合計値とその総数とを比較する。
(Step S106 in FIG. 11)
Next, the start determination unit 23 compares the total value obtained by summing all of the acquired predetermined use frame values of the process being executed with the predetermined use frame values of the new process.

開始判定部23は、その合計値が、その総数より多い場合(ステップS106で開始不可)、開始判定部23は、新規プロセスの開始を不可と判定する。次に、処理は、ステップS108に進む。また、その合計値が、入出力バッファの総数以下の場合(ステップS106で開始可)、開始判定部23は、新規プロセスの開始を可と判定する。次に、処理は、ステップS107に進む。   When the total value is larger than the total number (start is impossible in step S106), the start determination unit 23 determines that the new process cannot be started. Next, the process proceeds to step S108. If the total value is equal to or less than the total number of input / output buffers (startable in step S106), the start determination unit 23 determines that the new process can be started. Next, the process proceeds to step S107.

(図11のステップS107)
開始判定部23は、その新規プロセスのプロセス識別子及び所定使用枠値を、使用枠管理部4に送信する。
(Step S107 in FIG. 11)
The start determination unit 23 transmits the process identifier and the predetermined use frame value of the new process to the use frame management unit 4.

そのプロセス識別子及びその所定使用枠値を受信した使用枠管理部4の使用枠値取得部41は、使用枠管理テーブル43にその新規プロセスに対応する使用枠管理レコード431を設定する。この時、使用枠値取得部41は、その使用枠管理レコード431のプロセス識別子に、受信した使用枠管理レコード431を設定する。使用枠値取得部41は、その使用枠管理レコード431の計数に、初期値として0を設定する。使用枠値取得部41は、その使用枠管理レコード431の所定使用枠値に、受信した所定使用枠値を設定する。使用枠値取得部41は、その使用枠管理レコード431の再設定使用枠値に、初期値として受信した所定使用枠値を設定する。また、使用枠値取得部41は、その使用枠管理レコード431の入出力バッファ使用数に、初期値として0を設定する。   The use frame value acquisition unit 41 of the use frame management unit 4 that has received the process identifier and the predetermined use frame value sets a use frame management record 431 corresponding to the new process in the use frame management table 43. At this time, the use frame value acquisition unit 41 sets the received use frame management record 431 as the process identifier of the use frame management record 431. The used frame value acquisition unit 41 sets 0 as the initial value in the count of the used frame management record 431. The usage frame value acquisition unit 41 sets the received predetermined usage frame value as the predetermined usage frame value of the usage frame management record 431. The use frame value acquisition unit 41 sets the predetermined use frame value received as the initial value in the reset use frame value of the use frame management record 431. Further, the used frame value acquisition unit 41 sets 0 as the initial value for the number of input / output buffers used in the used frame management record 431.

尚、本ステップ実行後、その新規プロセスは実行中プロセスに含まれているものとする。尚、特に、その新規プロセスであった実行中プロセスを指す場合、その実行中プロセスを新実行中プロセスと呼ぶ。   Note that after this step is executed, the new process is included in the process being executed. In particular, when referring to the executing process that was the new process, the executing process is referred to as a new executing process.

次に、処理は、ステップS109に進む。   Next, the process proceeds to step S109.

(図11のステップS108)
開始判定部23は、その新規プロセスの実行を保留し、そのユーザプログラムの実行開始処理を中断する。例えば、開始判定部23は、保留するその新規プロセスに関する情報を、記憶装置913に記憶する。以後、保留されたその新規プロセスを、保留プロセスとも呼ぶ。
(Step S108 in FIG. 11)
The start determination unit 23 suspends the execution of the new process and interrupts the execution start process of the user program. For example, the start determination unit 23 stores information regarding the new process to be suspended in the storage device 913. Hereinafter, the new process that has been suspended is also referred to as a suspended process.

次に、処理は終了する。尚、保留プロセスは、既に実行中のいずれかの実行中プロセスが終了したことにより、終了検知部22が動作を開始した場合(ステップS117)の処理において、実行を開始するか否かの判断を受ける。   Next, the process ends. Note that the pending process determines whether or not to start execution in the process when the end detection unit 22 starts its operation due to the end of any of the currently executing processes (step S117). receive.

(図12のステップS109)
次に、プロセススケジュール部2の使用枠値見直部24は、全ての実行中プロセスについて、再設定使用枠値の見直しを行う。
(Step S109 in FIG. 12)
Next, the usage frame value review unit 24 of the process schedule unit 2 reviews the reset usage frame values for all the processes being executed.

本ステップにおいては、前述のその合計値は、前述のその総数以下である。すなわち、式1より算出される余剰使用枠値(Ls)は、0以上である。   In this step, the total value described above is equal to or less than the total number described above. That is, the surplus use frame value (Ls) calculated from Equation 1 is 0 or more.

使用枠値見直部24は、式2に示すように、実行中プロセス毎の所定使用枠値(Lp)に、余剰使用枠値を分配して加えた値を、見直し後の再設定使用枠値(Lp‘)として使用する。詳細な算出手順は、以下のとおりである。   As shown in Equation 2, the use frame value review unit 24 adds a value obtained by distributing the surplus use frame value to the predetermined use frame value (Lp) for each process being executed, and a reset use frame after review. Used as a value (Lp ′). The detailed calculation procedure is as follows.

「Ls = N − ΣLp ・・・(式1)
Ls: 余剰使用枠値
N:入出力バッファの総数
ΣLp:実行中プロセスの所定使用枠値の合計」。
“Ls = N−ΣLp (Formula 1)
Ls: Surplus use frame value N: Total number of input / output buffers ΣLp: Total of predetermined use frame values of running processes ”.

「Lp’ = Lp + Ls・Rp ・・・(式2)
Lp’:見直し後の再設定使用枠値
Lp:実行中プロセスの所定使用枠値
Rp:実行中プロセスの分配率
Rp = Kp / ΣKp
Kp:実行中プロセスの係数
ΣKp:実行中実行中プロセスの係数の合計
※ 分配する使用枠値の合計が余剰使用枠値を超えないように、端数を処理する
※ 余剰使用枠値が0の場合は、Lp’=Lpとする
※ ΣKpが0の場合、Rp=0とする」。
“Lp ′ = Lp + Ls · Rp (Formula 2)
Lp ′: Re-set usage frame value after review Lp: Predetermined usage frame value of the running process Rp: Distribution ratio of the running process Rp = Kp / ΣKp
Kp: Coefficient of running process ΣKp: Total of coefficients of running process * Process fractions so that the total of the used quota value to be distributed does not exceed the surplus usage quota value * When the surplus usage quota value is 0 Is Lp ′ = Lp. * If ΣKp is 0, Rp = 0 ”.

ここで、係数(Kp)について詳細に説明する。   Here, the coefficient (Kp) will be described in detail.

実行中プロセスの係数が相対的に大きいほど、その実行中プロセスに分配される使用枠値が大きくなるため、見直し後の再設定使用枠値も、より増加する。   As the coefficient of the process being executed is relatively large, the use frame value distributed to the process being executed becomes larger, so that the reset use frame value after the review also increases.

実行中プロセスの係数は、プログラム実行指示時などに事前にユーザによって指定される。または、次のいずれかの方法で、バッファ管理装置901が、自動的に係数を設定する。     The coefficient of the process being executed is designated by the user in advance when a program execution instruction is given. Alternatively, the buffer management apparatus 901 automatically sets the coefficient by any one of the following methods.

第1の方法では、使用枠値見直部24は、実行優先度の値を係数として設定する。この第1の方法では、実行優先度が高い実行中プロセスほど優先的に、再設定使用枠値を相対的に大きく割り当てられる。バッファ管理装置901は、例えば、実行中プロセスの実行優先度の値を、プロセス1を実行する図10に示すCPU911から取得し、係数として使用する。
第2の方法では、使用枠値見直部24は、所定使用枠値の値を係数として設定する。この第2の方法では、所定使用枠値が大きい実行中プロセスほど優先的に、再設定使用枠値を相対的に大きく割り当てられる。
第3の方法では、使用枠値見直部24は、デバイスの入出力性能(I/O性能とも呼ばれる)に応じた入出力性能値を係数として設定する。この第3の方法では、低速なデバイスに出力する実行中プロセスほど、再設定使用枠値を相対的に小さく割り当てられる。この方法は、ユーザプログラムが特定の1つのデバイスのみに入出力要求を行う場合に有効である。
In the first method, the use frame value review unit 24 sets the execution priority value as a coefficient. In this first method, the reset usage frame value is assigned with a relatively high priority, with priority being given to an executing process having a higher execution priority. For example, the buffer management device 901 acquires the value of the execution priority of the process being executed from the CPU 911 shown in FIG.
In the second method, the use frame value review unit 24 sets the value of the predetermined use frame value as a coefficient. In the second method, the reset use frame value is assigned with a relatively large priority, with priority being given to a running process having a larger predetermined use frame value.
In the third method, the use frame value review unit 24 sets an input / output performance value corresponding to the input / output performance (also referred to as I / O performance) of the device as a coefficient. In the third method, the reset use frame value can be assigned to a relatively small value as the process being executed is output to a low-speed device. This method is effective when the user program issues an input / output request to only one specific device.

例えば、使用枠値見直部24は、入出力性能値として、デバイスドライバ523が保持する統計情報(入出力実行の平均時間の逆数)を使用する。   For example, the use frame value review unit 24 uses the statistical information (reciprocal of the average time of input / output execution) held by the device driver 523 as the input / output performance value.

(図12のステップS110)
次に、開始判定部23は、実行中プロセスのそれぞれについて、使用枠値取得部41と使用バッファ計数部42とを介して、使用枠管理テーブル43に保持されている再設定使用枠値と入出力バッファ使用数とを取得する。
(Step S110 in FIG. 12)
Next, the start determination unit 23 inputs the reset use frame value stored in the use frame management table 43 and the input using the use frame value acquisition unit 41 and the use buffer counting unit 42 for each of the running processes. Get the number of output buffers used.

(図12のステップS111)
次に、開始判定部23は、全ての実行中プロセスのそれぞれについて、その再設定使用枠値とその入出力バッファ使用数とを、順次比較する。
(Step S111 in FIG. 12)
Next, the start determination unit 23 sequentially compares the reset usage frame value and the number of used input / output buffers for each of the processes being executed.

入出力バッファ使用数がその再設定使用枠値を超える実行中プロセスが1つでも存在する場合(ステップS111で有)、開始判定部23は、新実行中プロセスの実行を開始不可と判定する。次に、処理はステップS112に進む。その理由は、その再設定使用枠値より入出力バッファ使用数の方が大きい実行中プロセスが1つでも存在する場合、新実行中プロセスの実行を開始すると、入出力バッファが枯渇する可能性があるためである。   If there is even one executing process whose input / output buffer usage number exceeds the reset usage frame value (Yes in step S111), the start determination unit 23 determines that the execution of the new executing process cannot be started. Next, the process proceeds to step S112. The reason is that if there is even one running process whose I / O buffer usage is larger than the reset usage frame value, starting the execution of a new running process may cause the I / O buffer to be exhausted. Because there is.

入出力バッファ使用数がその再設定使用枠値を超える実行中プロセスが1つも存在しない場合(ステップS111で無)、開始判定部23は、新実行中プロセスの実行を開始可と判定する。次に、処理はステップS114に進む。   If there is no running process in which the number of used I / O buffers exceeds the reset usage frame value (No in step S111), the start determination unit 23 determines that the execution of the new executing process can be started. Next, the process proceeds to step S114.

(図12のステップS112)
開始判定部23は、入出力要求キャンセル部522を使用して、再設定使用枠値を超える数の入出力バッファを使用している実行中プロセスについて、入出力バッファの属性に基づいてその実行中プロセスの未実行の入出力要求をキャンセルする。
(Step S112 in FIG. 12)
The start determining unit 23 uses the input / output request canceling unit 522 to execute a process being executed that uses the number of input / output buffers exceeding the reset use frame value based on the attributes of the input / output buffer. Cancel an unexecuted I / O request for the process.

例えば、入出力バッファの属性として、優先度やプリエンプション(Preemption)可否など、対象領域の特性に応じた情報が、入出力要求を行うプログラムによって指定される。   For example, as an attribute of the input / output buffer, information corresponding to the characteristics of the target area, such as priority and whether or not preemption is possible, is specified by a program that makes an input / output request.

例えば、入出力要求のキャンセルを許容する属性として、コンソールメッセージ出力要求時に指定されるコンソール高負荷時にメッセージ出力を諦める属性が、挙げられる。   For example, an attribute that allows cancellation of an input / output request includes an attribute that gives up message output when the console is heavily loaded, which is specified when a console message output request is made.

具体的には、入出力要求キャンセル部522は、全ての入出力実行キュー7から、その実行中プロセスのキャンセル可能な優先度の入出力バッファ71を検索して取り出す。例えば、その優先度は、入出力要求に含めて入出力バッファ管理部5に通知され、入出力バッファ71に保持されている。続けて、開始判定部23は、バッファ解放部53を使用して、入出力要求キャンセル部522が取り出した入出力バッファ71を、入出力バッファ61として入出力バッファプール6に戻す。続けて、バッファ解放部53は、バッファ解放を開始判定部23に通知する。   Specifically, the input / output request canceling unit 522 searches the input / output execution queue 7 for the input / output buffer 71 having a cancelable priority level of the process being executed. For example, the priority is included in the input / output request, notified to the input / output buffer management unit 5, and held in the input / output buffer 71. Subsequently, the start determination unit 23 uses the buffer release unit 53 to return the input / output buffer 71 extracted by the input / output request cancel unit 522 to the input / output buffer pool 6 as the input / output buffer 61. Subsequently, the buffer release unit 53 notifies the start determination unit 23 of buffer release.

尚、入出力実行完了によっても入出力バッファの使用数は減少する。従って、本ステップは必須ではない。   It should be noted that the number of input / output buffers used decreases even when input / output execution is completed. Therefore, this step is not essential.

(図12のステップS113)
開始判定部23は、バッファ解放部53からのバッファ解放通知を待ち合わせる。バッファ解放が通知された後、処理はステップS110に戻り、プロセススケジュール部2は、再度、開始判定を実施する。
(Step S113 in FIG. 12)
The start determination unit 23 waits for a buffer release notification from the buffer release unit 53. After the buffer release is notified, the process returns to step S110, and the process schedule unit 2 performs the start determination again.

(図12のステップS114)
開始部21は、新実行中プロセスの実行を開始する。
(Step S114 in FIG. 12)
The start unit 21 starts execution of the new process being executed.

(図12のステップS115)
開始判定部23は、保留プロセスが存在するか否かを確認する。
(Step S115 in FIG. 12)
The start determination unit 23 confirms whether there is a pending process.

保留プロセスが存在しない場合(ステップS115で無)、処理は終了する。保留プロセスが存在する場合(ステップS115で有)、ステップS116に進む。   If there is no pending process (No in step S115), the process ends. If there is a pending process (Yes in Step S115), the process proceeds to Step S116.

(図12のステップS116)
開始判定部23は、ステップS108で記憶した保留プロセスに関する情報に基づいて、保留プロセスのうち、実行指示時刻が最も早い保留プロセスを、開始判定の対象として選択する。次に、処理はステップS105に戻る。
(Step S116 in FIG. 12)
The start determination unit 23 selects, as a start determination target, the hold process with the earliest execution instruction time among the hold processes based on the information regarding the hold process stored in step S108. Next, the process returns to step S105.

(図13のステップS117)
プロセススケジュール部2の終了検知部22は、実行中プロセスのいずれかの終了を検知し、動作を開始する。
(Step S117 in FIG. 13)
The end detection unit 22 of the process schedule unit 2 detects the end of one of the running processes and starts the operation.

(図13のステップS118)
終了検知部22は、保留プロセスの有無を確認する。
(Step S118 in FIG. 13)
The end detection unit 22 checks whether there is a pending process.

保留プロセスが存在しない場合(ステップS118で無)、処理はステップS119に進む。保留プロセスが存在する場合(ステップS118で有)、処理はステップS120に進む。   If there is no pending process (NO in step S118), the process proceeds to step S119. If there is a pending process (Yes in step S118), the process proceeds to step S120.

(図13のステップS119)
使用枠値見直部24は、全ての実行中プロセスについて、再設定使用枠値の見直しを行う。再設定使用枠値の見直しは、ステップS109と同様の処理となる。但し、本ステップは、新実行中プロセスが存在しない場合に動作するため、再設定使用枠値の見直し対象である全ての実行中プロセスは、新実行中プロセスを含まない。次に、処理は終了する。
(Step S119 in FIG. 13)
The usage frame value review unit 24 reviews the reset usage frame value for all the processes being executed. The review of the reset use frame value is the same process as in step S109. However, since this step operates when there is no new running process, all running processes that are subject to review of the reset use frame value do not include the new running process. Next, the process ends.

(図13のステップS120)
開始判定部23は、ステップS108で記憶した保留プロセスに関する情報に基づいて、保留プロセスのうち、実行指示時刻が最も早い保留プロセスを、開始判定の対象として選択する。
(Step S120 in FIG. 13)
The start determination unit 23 selects, as a start determination target, the hold process with the earliest execution instruction time among the hold processes based on the information regarding the hold process stored in step S108.

(図13のステップS121)
次に、開始判定部23は、使用枠値取得部41から、全ての実行中プロセスの所定使用枠値の値を取得する。また、開始判定部23は、システムに存在する利用可能な入出力バッファの総数を、入出力バッファ管理部5から取得する。
(Step S121 in FIG. 13)
Next, the start determination unit 23 acquires from the use frame value acquisition unit 41 the values of the predetermined use frame values of all running processes. In addition, the start determination unit 23 acquires the total number of available input / output buffers existing in the system from the input / output buffer management unit 5.

(図13のステップS122)
次に、開始判定部23は、その実行中プロセスの所定使用枠値の全てとその保留プロセスの所定使用枠値とを合計した合計値とその総数とを比較する。
(Step S122 in FIG. 13)
Next, the start determination unit 23 compares the total value with the total value of all the predetermined use frame values of the executing process and the predetermined use frame value of the suspension process.

その合計値が、その総数より多い場合(ステップS122で開始不可)、開始判定部23は、新規プロセスの開始を不可と判定する。次に、処理は、ステップS124に進む。この場合、開始判定部23は、その保留プロセスについて何も処理しない。即ち、その保留プロセスは、保留プロセスのままである。   If the total value is larger than the total number (start is impossible in step S122), the start determination unit 23 determines that start of a new process is impossible. Next, the process proceeds to step S124. In this case, the start determination unit 23 does not process anything for the pending process. That is, the hold process remains a hold process.

また、その合計値が、入出力バッファの総数以下の場合(ステップS122で開始可)、開始判定部23は、新規プロセスの開始を可と判定する。次に、処理は、ステップS123に進む。   If the total value is equal to or less than the total number of input / output buffers (startable in step S122), the start determination unit 23 determines that a new process can be started. Next, the process proceeds to step S123.

(図13のステップS123)
開始判定部23は、その保留プロセスのプロセス識別子及び所定使用枠値を、使用枠管理部4に送信する。
(Step S123 in FIG. 13)
The start determination unit 23 transmits the process identifier and the predetermined use frame value of the pending process to the use frame management unit 4.

そのプロセス識別子及びその所定使用枠値を受信した使用枠管理部4の使用枠値取得部41は、使用枠管理テーブル43にその保留プロセスに対応する使用枠管理レコード431を設定する。この時、使用枠値取得部41は、その使用枠管理レコード431のプロセス識別子に、受信した使用枠管理レコード431を設定する。使用枠値取得部41は、その使用枠管理レコード431の計数に、初期値として0を設定する。使用枠値取得部41は、その使用枠管理レコード431の所定使用枠値に、受信した所定使用枠値を設定する。使用枠値取得部41は、その使用枠管理レコード431の再設定使用枠値に、初期値として受信した所定使用枠値を設定する。また、使用枠値取得部41は、その使用枠管理レコード431の入出力バッファ使用数に、初期値として0を設定する。   The use frame value acquisition unit 41 of the use frame management unit 4 that has received the process identifier and the predetermined use frame value sets a use frame management record 431 corresponding to the pending process in the use frame management table 43. At this time, the use frame value acquisition unit 41 sets the received use frame management record 431 as the process identifier of the use frame management record 431. The used frame value acquisition unit 41 sets 0 as the initial value in the count of the used frame management record 431. The usage frame value acquisition unit 41 sets the received predetermined usage frame value as the predetermined usage frame value of the usage frame management record 431. The use frame value acquisition unit 41 sets the predetermined use frame value received as the initial value in the reset use frame value of the use frame management record 431. Further, the used frame value acquisition unit 41 sets 0 as the initial value for the number of input / output buffers used in the used frame management record 431.

尚、本ステップ実行後、その保留プロセスは実行中プロセスに含まれているものとする。尚、特に、その保留プロセスであった実行中プロセスを指す場合、その実行中プロセスを新実行中プロセスと呼ぶ。   It is assumed that the pending process is included in the process being executed after this step is executed. In particular, when referring to an executing process that is a pending process, the executing process is referred to as a new executing process.

次に、処理は、ステップS109に進む。   Next, the process proceeds to step S109.

(図13のステップS124)
使用枠値見直部24を使用して、全ての実行中プロセスについて、再設定使用枠値の見直しを行う。再設定使用枠値の見直しは、ステップS119と同様の処理となる。但し、ステップS109における合計値は、本ステップS124においては、保留プロセスの所定使用枠値を含まない、実行中プロセスのみの所定使用枠値の合計である。次に、処理は終了する。
(Step S124 in FIG. 13)
The used frame value review unit 24 is used to review the reset used frame value for all the processes being executed. The review of the reset use frame value is the same processing as in step S119. However, the total value in step S109 is the total of the predetermined use frame values of only the running process that does not include the predetermined use frame value of the suspended process in this step S124. Next, the process ends.

図14、図15及び図16は、実行中プロセスがブロッキング入出力部3を呼び出した場合、即ち入出力要求が発生した場合、の動作を示すフローチャートである。   FIG. 14, FIG. 15 and FIG. 16 are flowcharts showing the operation when the executing process calls the blocking input / output unit 3, that is, when an input / output request is generated.

図14は、入出力要求が発生した場合のブロッキング入出力部3の動作を示すフローチャートである。図15は、入出力要求が発生した場合の非同期入出力要求部8の動作を示すフローチャートである。図16は、入出力要求が発生した場合のデバイスドライバ523の動作を示すフローチャートである。   FIG. 14 is a flowchart showing the operation of the blocking input / output unit 3 when an input / output request is generated. FIG. 15 is a flowchart showing the operation of the asynchronous input / output request unit 8 when an input / output request is generated. FIG. 16 is a flowchart showing the operation of the device driver 523 when an input / output request is generated.

(図14のステップS201)
ブロッキング入出力部3の高頻度入出力検出部33は、各実行中プロセスによるブロッキング入出力部3の呼び出しが、入出力要求するデバイスの性能につり合わない、高頻度の呼び出しであるか否かを監視する。続けて、高頻度入出力検出部33は、その監視した結果に基づいて、各実行中プロセスの係数を更新する。
(Step S201 in FIG. 14)
The high-frequency input / output detection unit 33 of the blocking input / output unit 3 determines whether or not the calling of the blocking input / output unit 3 by each executing process is a high-frequency call that does not match the performance of the device that requests the input / output. To monitor. Subsequently, the high-frequency input / output detection unit 33 updates the coefficient of each executing process based on the monitored result.

具体的には、高頻度入出力検出部33は、実行中プロセス毎の所定の記憶領域(例えば、記憶部912の記憶領域)に、デバイス毎に前回のブロッキング入出力部3の呼び出し時刻と、その呼び出しの間隔の平均値と、その呼び出しの累積回数とを記憶する。   Specifically, the high frequency input / output detection unit 33 stores the previous call time of the blocking input / output unit 3 for each device in a predetermined storage area for each process being executed (for example, the storage area of the storage unit 912), The average value of the call intervals and the cumulative number of calls are stored.

そして、高頻度入出力検出部33は、前回の呼び出し時刻と今回の呼び出し時刻との差から、呼び出し間隔を計算し、その呼び出しの間隔の平均値を再計算する。続けて、高頻度入出力検出部33は、前回の呼び出し時に記録された前回のブロッキング入出力部3の呼び出し時刻、呼び出し間隔の平均値及び呼び出し回数を更新する。   Then, the high-frequency input / output detection unit 33 calculates the call interval from the difference between the previous call time and the current call time, and recalculates the average value of the call intervals. Subsequently, the high frequency input / output detection unit 33 updates the previous call time, the average value of the call interval, and the number of calls of the blocking input / output unit 3 recorded at the time of the previous call.

更新した呼び出し間隔の平均値が、デバイスドライバ523が保持する入出力実行時間の平均値より短い場合、高頻度入出力検出部33は、使用枠管理部4の使用枠管理テーブル43に記憶されている係数を0に設定する。尚、高頻度入出力検出部33は、係数を0に設定する実行中プロセスのプロセス識別子と元の係数とを例えば記憶部912に記憶する。   When the updated average value of the call interval is shorter than the average value of the input / output execution time held by the device driver 523, the high frequency input / output detection unit 33 is stored in the use frame management table 43 of the use frame management unit 4. Set the coefficient to 0. Note that the high-frequency input / output detection unit 33 stores, for example, in the storage unit 912, the process identifier of the running process that sets the coefficient to 0 and the original coefficient.

呼び出し間隔が、デバイスドライバ523が保持する入出力実行時間の平均値以上の場合、高頻度入出力検出部33は、係数を0に設定されたその実行中プロセスの係数を、先に記憶したその元の値に戻す。   When the call interval is equal to or greater than the average value of the input / output execution time held by the device driver 523, the high frequency input / output detection unit 33 stores the coefficient of the process being executed in which the coefficient is set to 0. Restore the original value.

(図14のステップS202)
次に、取得制限部32は、使用枠値取得部41と使用バッファ計数部42とを介して、ブロッキング入出力部3を呼び出した実行中プロセスについて、使用枠管理テーブル43に保持されている再設定使用枠値と入出力バッファ使用数とを取得する。
(Step S202 in FIG. 14)
Next, the acquisition restriction unit 32 re-executes the process being executed that called the blocking input / output unit 3 via the use frame value acquisition unit 41 and the use buffer counting unit 42 and is stored in the use frame management table 43. Get the setting usage frame value and the number of I / O buffers used.

(図14のステップS203)
次に、取得制限部32は、その再設定使用枠値と入出力バッファ使用数とを比較する。入出力バッファ使用数がその再設定使用枠値以上の場合(ステップS203でNO)、取得制限部32は、入出力バッファの取得制限要と判定して、ステップS204に進む。入出力バッファ使用数が再設定使用枠値未満の場合(ステップS203でYES)、入出力バッファの取得制限不要と判定して、ステップS205に進む。
(Step S203 in FIG. 14)
Next, the acquisition restriction unit 32 compares the reset use frame value with the number of input / output buffers used. If the number of input / output buffers used is equal to or greater than the reset usage frame value (NO in step S203), the acquisition restriction unit 32 determines that acquisition restriction of input / output buffers is necessary, and proceeds to step S204. If the number of input / output buffers used is less than the reset use frame value (YES in step S203), it is determined that input / output buffer acquisition restrictions are not required, and the process proceeds to step S205.

(図14のステップS204)
取得制限部32は、バッファ解放部53からのバッファ解放の通知を待ち合わせる。バッファ解放が通知されると、ステップS203に戻る。
(Step S204 in FIG. 14)
The acquisition restriction unit 32 waits for a buffer release notification from the buffer release unit 53. When the buffer release is notified, the process returns to step S203.

(図14のステップS205)
ブロッキング入出力部3の入出力要求部31は、独立した専用のプロセスで動作する非同期入出力要求部8に、その入出力要求を通知して、制御を実行中プロセスで動作するユーザプログラムに戻す。
(Step S205 in FIG. 14)
The input / output request unit 31 of the blocking input / output unit 3 notifies the asynchronous input / output request unit 8 operating in an independent dedicated process of the input / output request, and returns control to the user program operating in the executing process. .

尚、バッファ取得を非同期実行して、そのユーザプログラムに制御を戻す時間を短縮する必要がない場合、または実行された入出力要求の結果をユーザプログラムに返却する必要がある場合は、以下のようにしてよい。第1に、ブロッキング入出力部3は、その入出力要求を非同期入出力要求部8に通知しない。第2に、ブロッキング入出力部3は、後述のステップS302、ステップS303の処理を、入出力要求部31のプロセス、すなわちブロッキング入出力部3のプログラム実行の延長で行う。第3に、ブロッキング入出力部3は、後述のステップS303の入出力バッファ登録の通知完了後に、制御をそのユーザプログラムに戻す。   If it is not necessary to execute the buffer acquisition asynchronously and reduce the time for returning control to the user program, or if it is necessary to return the result of the executed I / O request to the user program, You can do it. First, the blocking input / output unit 3 does not notify the asynchronous input / output request unit 8 of the input / output request. Secondly, the blocking input / output unit 3 performs the processes of steps S302 and S303 described later by extending the process of the input / output request unit 31, that is, the program execution of the blocking input / output unit 3. Third, the blocking input / output unit 3 returns control to the user program after completion of notification of input / output buffer registration in step S303 described later.

(図15のステップS301)
非同期入出力要求部8は、独立した専用のプロセスで動作し、入出力要求部31からの入出力要求の通知を待ち合わせる。入出力要求が通知されると、処理はステップS302に進む。
(Step S301 in FIG. 15)
The asynchronous input / output request unit 8 operates in an independent dedicated process and waits for an input / output request notification from the input / output request unit 31. When the input / output request is notified, the process proceeds to step S302.

(図15のステップS302)
非同期入出力要求部8は、バッファ取得部51を使用して、入出力バッファ61を取得する。
(Step S302 in FIG. 15)
The asynchronous input / output request unit 8 acquires the input / output buffer 61 using the buffer acquisition unit 51.

(図15のステップS303)
次に、非同期入出力要求部8は、入出力要求登録部521を使用して、ステップS302で取得した入出力バッファ61を、入出力バッファ71として入出力実行キュー7に登録し、入出力バッファ71の登録をデバイスドライバ523に通知する。次に、処理はステップS301に戻り、非同期入出力要求部8は、再度、入出力要求の通知を待ち合わせる。
(Step S303 in FIG. 15)
Next, the asynchronous input / output request unit 8 uses the input / output request registration unit 521 to register the input / output buffer 61 acquired in step S302 in the input / output execution queue 7 as the input / output buffer 71. The registration of 71 is notified to the device driver 523. Next, the process returns to step S301, and the asynchronous input / output request unit 8 waits for an input / output request notification again.

(図16のステップS401)
デバイスドライバ523は、デバイスドライバ523毎に独立した専用のプロセスで動作し、入出力要求登録部521からの入出力バッファ登録通知を待ち合わせる。入出力バッファ登録が通知されると、処理はステップS402に進む。
(Step S401 in FIG. 16)
The device driver 523 operates in a dedicated process independent for each device driver 523 and waits for an input / output buffer registration notification from the input / output request registration unit 521. When the input / output buffer registration is notified, the process proceeds to step S402.

(図16のステップS402)
デバイスドライバ523は、入出力実行キュー7に入出力バッファ71が登録されているか否かを確認する。入出力バッファ71が登録されていない場合(ステップS402で無)、処理はステップS401に戻り、デバイスドライバ523は、再度入出力バッファ登録通知を待ち合わせる。入出力バッファ71が登録されている場合(ステップS402で有)、デバイスドライバ523は、最初に登録された入出力バッファ71を取り出す。次に、処理はステップS403に進む。
(Step S402 in FIG. 16)
The device driver 523 checks whether or not the input / output buffer 71 is registered in the input / output execution queue 7. If the input / output buffer 71 is not registered (No in step S402), the process returns to step S401, and the device driver 523 waits for the input / output buffer registration notification again. When the input / output buffer 71 is registered (Yes in step S402), the device driver 523 takes out the input / output buffer 71 registered first. Next, the process proceeds to step S403.

(図16のステップS403)
デバイスドライバ523は、ステップS402で取り出した入出力バッファ71に基づいて、デバイスに対して入出力を実行する。
(Step S403 in FIG. 16)
The device driver 523 performs input / output to / from the device based on the input / output buffer 71 extracted in step S402.

(図16のステップS404)
次に、デバイスドライバ523は、入出力実行に要した時間を測定し、統計情報として平均時間を記録する。
(Step S404 in FIG. 16)
Next, the device driver 523 measures the time required for executing the input / output and records the average time as statistical information.

(図16のステップS405)
次に、デバイスドライバ523は、バッファ解放部53を使用して、入出力実行に使用した入出力バッファ71を、入出力バッファ61として入出力バッファプール6に戻す。この処理を実行することを、バッファ解放と呼ぶ。続けて、デバイスドライバ523は、そのバッファ解放をステップS113で待ち状態にある開始判定部23、または、ステップS204で待ち状態にある取得制限部32に通知する。次に、処理はステップS401に戻り、デバイスドライバ523は、再度入出力バッファ登録通知を待ち合わせる。
(Step S405 in FIG. 16)
Next, the device driver 523 uses the buffer release unit 53 to return the input / output buffer 71 used for input / output execution to the input / output buffer pool 6 as the input / output buffer 61. Executing this process is called buffer release. Subsequently, the device driver 523 notifies the start determination unit 23 waiting in step S113 to release the buffer, or the acquisition limiting unit 32 waiting in step S204. Next, the process returns to step S401, and the device driver 523 waits for the input / output buffer registration notification again.

上述した本実施形態における第1の効果は、各プロセス1に対する入出力バッファの割当数を保証し、かつ利用可能な入出力バッファを有効に活用することを可能にする点である。   The first effect of the present embodiment described above is that the number of input / output buffers assigned to each process 1 is guaranteed and the available input / output buffers can be used effectively.

その理由は、以下のような構成を含むからである。即ち、第1に開始判定部23が、新規プロセス及び実行中プロセスの所定使用枠値に基づいて、新規プロセスの実行を保留する。第2に、ブロッキング入出力部3が各プロセス1による入出力バッファ使用数を再設定使用枠値以下に保つ。第3に、使用枠値見直部24が、新規プロセスの実行を開始する場合及び実行中プロセスが終了した場合に、入出力バッファの利用率がより高くなるように、再設定使用枠値の見直しを実行する。   This is because the following configuration is included. That is, first, the start determination unit 23 suspends execution of the new process based on the predetermined use frame values of the new process and the process being executed. Second, the blocking input / output unit 3 keeps the number of input / output buffers used by each process 1 below the reset usage frame value. Third, the usage frame value review unit 24 sets the reset usage frame value so that the utilization rate of the input / output buffer becomes higher when the execution of the new process is started and when the process being executed is terminated. Perform a review.

上述した本実施形態における第2の効果は、ブロッキング入出力部3による入出力バッファ解放の待ち合わせが発生せず、ブロッキング入出力部3を呼び出した実行中プロセスとして動作するユーザプログラムに速やかに制御を戻せることを可能にする点である。   The second effect of the present embodiment described above is that the waiting for the input / output buffer release by the blocking input / output unit 3 does not occur, and the user program that operates as a running process that calls the blocking input / output unit 3 is promptly controlled. It is a point that makes it possible to return.

その理由は、以下のような構成を含むからである。即ち、第1に開始判定部23が、新規プロセス及び実行中プロセスの所定使用枠値に基づいて、新規プロセスの実行を保留する。第2に、開始判定部23が、更に再設定使用枠値を超える数の入出力バッファを使用している実行中プロセスが存在しない場合に、新規プロセスの実行を開始する。   This is because the following configuration is included. That is, first, the start determination unit 23 suspends execution of the new process based on the predetermined use frame values of the new process and the process being executed. Secondly, the start determination unit 23 starts executing a new process when there is no process being executed that uses more input / output buffers than the reset use frame value.

上述した本実施形態における第3の効果は、利用可能な入出力バッファを、更に有効に活用することを可能にする点である。   The third effect of the present embodiment described above is that the available input / output buffer can be used more effectively.

その第1の理由は、検査部25が、プロセス1として実行を開始するユーザプログラムのロードモジュールを検査し、入出力バッファを使用しないプロセスについては、所定使用枠値を0にするからである。   The first reason is that the inspection unit 25 inspects the load module of the user program that starts execution as the process 1 and sets the predetermined use frame value to 0 for the process not using the input / output buffer.

その第2の理由は、高頻度入出力検出部33が、実行中プロセスの暴走などによる、対象デバイスに見合わない高頻度なブロッキング入出力部3の呼び出しを検出して、その実行中プロセスの係数を0にするからである。   The second reason is that the high-frequency input / output detection unit 33 detects a high-frequency blocking input / output unit 3 invocation that does not match the target device due to a runaway process or the like. This is because the coefficient is set to zero.

上述した本実施形態における第4の効果は、新実行中プロセス実行開始時における、再設定使用枠値を超える数の入出力バッファを使用している実行中プロセスの、バッファ解放の待ち合わせ時間を短縮できることである。   The fourth effect of the present embodiment described above is that the waiting time for buffer release of the running process using the number of input / output buffers exceeding the reset usage frame value at the start of execution of the new running process is shortened. It can be done.

その理由は、開始判定部23が実行中プロセスを検出した場合、開始判定部23が入出力要求キャンセル部522を使用して、その実行中プロセスのキャンセル可能な未実行の入出力要求をキャンセルするからである。ここで、その実行中プロセスは、見直し後の再設定使用枠値以上の入出力バッファを使用している実行中プロセスである。即ち、入出力要求キャンセル部522が、その入出力要求をキャンセルすることで、デバイスの入出力性能に依存しない、速やかな入出力バッファの解放が実現できるからである。   The reason is that when the start determination unit 23 detects an executing process, the start determination unit 23 uses the input / output request cancel unit 522 to cancel an unexecuted input / output request that can be canceled by the executing process. Because. Here, the executing process is an executing process that uses an input / output buffer equal to or greater than the reset use frame value after review. That is, the input / output request cancel unit 522 cancels the input / output request, so that the input / output buffer can be quickly released without depending on the input / output performance of the device.

上述した本実施形態における第5の効果は、ブロッキング入出力部3の実行に掛かる時間を短縮して、速やかにユーザプログラムに制御を戻せることである。   The fifth effect of the present embodiment described above is that the time required for execution of the blocking input / output unit 3 can be shortened and control can be quickly returned to the user program.

その理由は、非同期入出力要求部8が、独立した専用プロセスで動作し、入出力要求部31が実施する入出力バッファ管理部5への入出力要求処理を、代理実行するからである。   The reason is that the asynchronous input / output request unit 8 operates in an independent dedicated process, and performs the input / output request processing to the input / output buffer management unit 5 executed by the input / output request unit 31 by proxy.

より詳細には、上述の第1の効果により、入出力バッファの枯渇は発生しないため、ブロッキング入出力部3は、バッファ取得の成否を確認することなくユーザプログラムに制御を戻せる。そこで、ブロッキング入出力部3は、別プロセスで動作する非同期入出力要求部8へ入出力要求を通知し、次に、通知を受けた非同期入出力要求部8は、並列して入出力バッファを取得する。   More specifically, because the input / output buffer is not depleted due to the first effect described above, the blocking input / output unit 3 can return control to the user program without confirming the success or failure of buffer acquisition. Therefore, the blocking input / output unit 3 notifies the asynchronous input / output request unit 8 operating in a separate process of the input / output request. Next, the received asynchronous input / output request unit 8 receives the input / output buffer in parallel. get.

この第5の効果は、入出力バッファの数が非常に多くて空きバッファの探索に時間が掛かる場合や、多数の実行中プロセスが同時に入出力バッファの取得を要求して排他ネックになる場合など、入出力バッファの取得処理のコストが大きい場合に、特に有効である。尚、ブロッキング入出力部3は、非同期入出力要求部8によって非同期に実行された入出力要求の結果をユーザプログラムに返却できない。そのため、この非同期入出力要求部8を含む構成は、UDP(User Datagram Protocol)メッセージの送信や、コンソールメッセージの出力など、入出力バッファが確保できれば、成功とみなせるような処理に適用できる。   The fifth effect is when the number of input / output buffers is very large and it takes a long time to search for free buffers, or when many running processes request acquisition of input / output buffers at the same time and become an exclusive bottleneck. This is particularly effective when the cost of the input / output buffer acquisition process is large. The blocking input / output unit 3 cannot return the result of the input / output request executed asynchronously by the asynchronous input / output request unit 8 to the user program. Therefore, the configuration including the asynchronous input / output request unit 8 can be applied to processing that can be regarded as successful if an input / output buffer can be secured, such as transmission of a UDP (User Datagram Protocol) message or output of a console message.

上述した本実施形態における第6の効果は、入出力バッファの特性に加えてデバイス毎に適した再設定使用枠値の見直しが可能になる点である。   The sixth effect of the present embodiment described above is that the reset use frame value suitable for each device can be reviewed in addition to the characteristics of the input / output buffer.

その理由は、開始判定部23が、実行優先度、所定使用枠値及びデバイスの入出力性能の任意の情報に基づいて、係数を算出するようにしたからである。   The reason is that the start determination unit 23 calculates the coefficient based on arbitrary information of the execution priority, the predetermined use frame value, and the input / output performance of the device.

<<<第2の実施形態>>>
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
<<< Second Embodiment >>>
Next, a second embodiment of the present invention will be described in detail with reference to the drawings. Hereinafter, the description overlapping with the above description is omitted as long as the description of the present embodiment is not obscured.

図17は、本発明の第2の実施形態に係るバッファ管理装置902の構成を示すブロック図である。   FIG. 17 is a block diagram showing the configuration of the buffer management apparatus 902 according to the second embodiment of the present invention.

図17に示すように、本実施形態におけるバッファ管理装置902は、第1の実施形態のバッファ管理装置901と比べて、プロセススケジュール部2に替えてプロセススケジュール部202を含む点が異なる。また、バッファ管理装置902は、ブロッキング入出力部3に替えてブロッキング入出力部302を含む点が異なる。   As shown in FIG. 17, the buffer management device 902 according to the present embodiment is different from the buffer management device 901 according to the first embodiment in that a process schedule unit 202 is included instead of the process schedule unit 2. Further, the buffer management device 902 is different in that it includes a blocking input / output unit 302 instead of the blocking input / output unit 3.

また、バッファ管理装置902は、バッファ管理装置901と比べて、使用枠管理部4を含まない点が異なる。バッファ管理装置902において、使用枠管理部4の機能に相当する機能は、開始判定部232(後述)、グループ使用枠管理テーブル2421(後述)及びプロセスグループ対応テーブル2422(後述)により実現される。   Also, the buffer management device 902 is different from the buffer management device 901 in that the use frame management unit 4 is not included. In the buffer management device 902, functions corresponding to the functions of the use frame management unit 4 are realized by a start determination unit 232 (described later), a group use frame management table 2421 (described later), and a process group correspondence table 2422 (described later).

実施形態1のバッファ管理装置901は、再設定使用枠値の管理をプロセス1毎に行う。従って、実施形態1では、実行中プロセス数に比例する、再設定使用枠値の見直しを実行するための及び開始判定を実行するための、コストが発生する。第2の実施形態のバッファ管理装置902は、実行中プロセスが所定の情報に基づいてグループ化され、そのグループに対応する所定使用枠値及び再設定使用枠値を制御及び利用する。従って、第2の実施形態では、そのコストは、グループ数に比例する。   The buffer management apparatus 901 according to the first embodiment manages the reset use frame value for each process 1. Therefore, in the first embodiment, there is a cost for executing the review of the reset usage frame value and for executing the start determination, which is proportional to the number of processes being executed. In the buffer management apparatus 902 of the second embodiment, the processes being executed are grouped based on predetermined information, and the predetermined use frame value and the reset use frame value corresponding to the group are controlled and used. Therefore, in the second embodiment, the cost is proportional to the number of groups.

尚、本実施形態におけるユーザからのプログラム実行指示は、例えば、ユーザプログラムの識別子、所定使用枠値、係数及びグループ識別子を含む。   Note that the program execution instruction from the user in the present embodiment includes, for example, an identifier of the user program, a predetermined use frame value, a coefficient, and a group identifier.

図18は、本実施形態のプロセススケジュール部202の構成を示すブロック図である。   FIG. 18 is a block diagram showing the configuration of the process schedule unit 202 of this embodiment.

図18に示すように、プロセススケジュール部202は、第1の実施形態のプロセススケジュール部2と比べて、以下の点が異なる。プロセススケジュール部202は、終了検知部22に替えて終了検知部222を含む。プロセススケジュール部202は、開始判定部23に替えて開始判定部232を含む。プロセススケジュール部202は、使用枠値見直部24に替えて使用枠値見直部242を含む。また、プロセススケジュール部202は、グループ使用枠管理テーブル2421及びプロセスグループ対応テーブル2422を更に含む。   As shown in FIG. 18, the process schedule unit 202 differs from the process schedule unit 2 of the first embodiment in the following points. The process schedule unit 202 includes an end detection unit 222 instead of the end detection unit 22. The process schedule unit 202 includes a start determination unit 232 instead of the start determination unit 23. The process schedule unit 202 includes a use frame value review unit 242 instead of the use frame value review unit 24. The process schedule unit 202 further includes a group usage frame management table 2421 and a process group correspondence table 2422.

図19は、本実施形態におけるグループ使用枠管理テーブル2421の一例を示す図である。   FIG. 19 is a diagram showing an example of the group use frame management table 2421 in the present embodiment.

図19に示すように、グループ使用枠管理テーブル2421は、グループ識別子、係数、所定使用枠値、再設定使用枠値及び実行中プロセス数を含む、グループ使用枠レコードを含む。   As shown in FIG. 19, the group use frame management table 2421 includes a group use frame record including a group identifier, a coefficient, a predetermined use frame value, a reset use frame value, and the number of processes being executed.

グループ識別子は、グループを特定する情報である。そのグループ識別子は、事前にユーザによって設定される。   The group identifier is information that identifies a group. The group identifier is set in advance by the user.

係数は、再設定使用枠値を算出する際の、そのグループに所属するプロセス1のそれぞれの重みである。その係数は、事前にユーザによって設定される。   The coefficient is the weight of each process 1 belonging to the group when the reset usage frame value is calculated. The coefficient is set in advance by the user.

所定使用枠値は、そのグループに所属するプロセス1のそれぞれの所定使用枠値である。その所定使用枠値は、事前にユーザによって設定される。   The predetermined use frame value is a predetermined use frame value of each process 1 belonging to the group. The predetermined use frame value is set in advance by the user.

再設定使用枠値は、そのグループに所属するプロセス1のそれぞれの再設定使用枠値である。   The reset use frame value is the reset use frame value of each process 1 belonging to the group.

実行中プロセス数は、そのグループに所属する実行中プロセスの数である。その実行中プロセス数は、開始判定部232と終了検知部222とによって、実行中プロセスの増減にあわせて、更新される。   The number of running processes is the number of running processes belonging to the group. The number of processes being executed is updated by the start determination unit 232 and the end detection unit 222 in accordance with the increase or decrease of the processes being executed.

図20は、本実施形態の開始部21におけるプロセスグループ対応テーブル2422の一例を示す図である。   FIG. 20 is a diagram showing an example of the process group correspondence table 2422 in the start unit 21 of this embodiment.

図20に示すように、プロセスグループ対応テーブル2422は、プロセス識別子、グループ識別子及び入出力バッファ使用数を含む、対応レコードを含む。   As shown in FIG. 20, the process group correspondence table 2422 includes a correspondence record including a process identifier, a group identifier, and the number of input / output buffers used.

プロセス識別子は、図5に示すプロセス識別子と同じである。   The process identifier is the same as the process identifier shown in FIG.

グループ識別子は、図18に示すグループ識別子と同じである。   The group identifier is the same as the group identifier shown in FIG.

入出力バッファ使用数は、図5に示す入出力バッファ使用数と同じである。   The number of input / output buffers used is the same as the number of input / output buffers used shown in FIG.

終了検知部222は、プロセス1の終了を検知して実行する後処理において、グループ使用枠管理テーブル2421の実行中プロセス数を、終了したプロセス1の数だけ減ずる。また、終了検知部222は、その後処理において、プロセスグループ対応テーブル2422から終了したプロセス1に対応する対応レコードを削除する。   In the post-processing that is executed by detecting the end of the process 1, the end detection unit 222 reduces the number of processes being executed in the group use frame management table 2421 by the number of processes 1 that have ended. Further, the end detection unit 222 deletes the corresponding record corresponding to the process 1 ended from the process group correspondence table 2422 in the subsequent processing.

開始判定部232は、プロセスグループ対応テーブル2422を参照することで、プロセス識別子に対応するグループ識別子を取得する。そして、開始判定部232は、取得したグループ識別子に基づいて、グループ使用枠管理テーブル2421を参照することで、そのプロセス識別子に対応する係数、所定使用枠値、再設定使用枠値を取得する。   The start determination unit 232 acquires a group identifier corresponding to the process identifier by referring to the process group correspondence table 2422. Then, the start determining unit 232 refers to the group usage frame management table 2421 based on the acquired group identifier, and acquires a coefficient, a predetermined usage frame value, and a reset usage frame value corresponding to the process identifier.

開始判定部232は、実行中プロセスの所定使用枠値の合計を、グループ使用枠管理テーブル2421に基づいて、全てのグループ識別子のそれぞれに対応する所定使用枠値と実行中プロセス数とを乗じた値を、合算して算出する。   The start determination unit 232 multiplies the total of the predetermined use frame values of the running processes by the predetermined use frame value corresponding to each of all the group identifiers and the number of running processes based on the group use frame management table 2421. The value is calculated by adding together.

開始判定部232は、新規プロセスの実行を開始した場合に入出力バッファが枯渇する可能性はないと判定した場合、その新規プロセスのプロセス識別子及びグループ識別子を含む対応レコードをプロセスグループ対応テーブル2422に追加する。また、開始判定部232は、新規プロセスの実行を開始した場合に入出力バッファが枯渇する可能性はないと判定した場合、グループ使用枠管理テーブル2421のその新規プロセスに対応する実行中プロセス数に1を加算する。   If the start determination unit 232 determines that there is no possibility that the input / output buffer is exhausted when the execution of a new process is started, the start determination unit 232 stores a corresponding record including the process identifier and group identifier of the new process in the process group correspondence table 2422. to add. If the start determination unit 232 determines that there is no possibility that the input / output buffer is exhausted when the execution of a new process is started, the start determination unit 232 sets the number of processes in execution corresponding to the new process in the group usage frame management table 2421. Add one.

開始判定部232は、ブロッキング入出力部302からの要求に応答して、グループ使用枠管理テーブル2421に記録された再設定使用枠値を出力する。   In response to the request from the blocking input / output unit 302, the start determination unit 232 outputs the reset use frame value recorded in the group use frame management table 2421.

開始判定部232は、実行中プロセスのそれぞれの入出力バッファの使用数を計数し、計数したその使用数をプロセスグループ対応テーブル2422に記録する。   The start determination unit 232 counts the number of used input / output buffers of each process being executed, and records the counted number of uses in the process group correspondence table 2422.

開始判定部232は、ブロッキング入出力部302からの要求に応答して、プロセスグループ対応テーブル2422に記録された入出力バッファ使用数を出力する。   In response to a request from the blocking input / output unit 302, the start determination unit 232 outputs the number of input / output buffers used recorded in the process group correspondence table 2422.

使用枠値見直し部242は、グループ使用枠管理テーブル2421でグループ毎に保持される所定使用枠値、係数、及び、そのグループに所属する実行中プロセス数に基づいて、再設定使用枠値の見直しを実施する。   The usage frame value review unit 242 reviews the reset usage frame value based on the predetermined usage frame value and coefficient held for each group in the group usage frame management table 2421 and the number of running processes belonging to the group. To implement.

ステップS109における計算手順において、式1は式3で、式2は式4で置換される。   In the calculation procedure in step S109, Expression 1 is replaced with Expression 3, and Expression 2 is replaced with Expression 4.

「Ls = N − Σ(Lg・Pg) ・・・(式3)
Ls : 余剰使用枠値
N : 入出力バッファの総数
Lg : プロセスグループの1プロセスあたりの所定使用枠値
Pg : プロセスグループの実行中プロセス数
Σ(Lg・Pg) : 実行中プロセスの所定使用枠値の合計」。
“Ls = N−Σ (Lg · Pg) (Formula 3)
Ls: Surplus use frame value N: Total number of input / output buffers Lg: Predetermined use frame value per process of process group Pg: Number of running processes in process group Σ (Lg · Pg): Predetermined use frame value of executing process Total ".

「Lg’ = Lg + Ls・Rg ・・・(式4)
Lg’: プロセスグループの見直し後の再設定使用枠値
Lg : プロセスグループの所定使用枠値
Rg : プロセスグループの分配率
Rg = Kg / Σ(kg・Pg)
Kg : プロセスグループの1プロセスあたりの係数
Σ(Kg・Pg) : 実行中プロセスの係数の合計
※ 分配する使用枠値の合計が、余剰使用枠値を超えないように端数を処理する
※ 余剰使用枠値が0の場合は、Lg’ = Lgとする
※ Σ(kg・Pg)が0の場合、Rg = 0 とする」。
“Lg ′ = Lg + Ls · Rg (Formula 4)
Lg ′: Reset usage frame value after review of process group Lg: Predetermined usage frame value of process group Rg: Distribution ratio of process group Rg = Kg / Σ (kg · Pg)
Kg: Coefficient per process in the process group Σ (Kg · Pg): Total of the coefficients of the running processes * Process fractions so that the total usage quota value to be distributed does not exceed the surplus usage quota value * Surplus usage When the frame value is 0, Lg ′ = Lg. * When Σ (kg · Pg) is 0, Rg = 0.

図21は、本実施形態のブロッキング入出力部302の構成を示すブロック図である。   FIG. 21 is a block diagram illustrating a configuration of the blocking input / output unit 302 of the present embodiment.

図21に示すように、ブロッキング入出力部302は、第1の実施形態のブロッキング入出力部3と比べて、以下の点が異なる。ブロッキング入出力部302は、取得制限部32に替えて取得制限部322を、高頻度入出力検出部33に替えて高頻度入出力検出部332を含む。以後、高頻度入出力検出部332は、高頻度入出力検出部332とも記載する。   As shown in FIG. 21, the blocking input / output unit 302 is different from the blocking input / output unit 3 of the first embodiment in the following points. The blocking input / output unit 302 includes an acquisition limiting unit 322 instead of the acquisition limiting unit 32 and a high frequency input / output detection unit 332 instead of the high frequency input / output detection unit 33. Hereinafter, the high frequency input / output detection unit 332 is also referred to as a high frequency input / output detection unit 332.

取得制限部322は、プロセススケジュール部202から、グループ使用枠管理テーブル2421の再設定使用枠値を取得する。また、取得制限部322は、プロセススケジュール部202から、プロセスグループ対応テーブル2422に含まれる入出力バッファ数を取得する。   The acquisition restriction unit 322 acquires the reset use frame value of the group use frame management table 2421 from the process schedule unit 202. Further, the acquisition limiting unit 322 acquires the number of input / output buffers included in the process group correspondence table 2422 from the process schedule unit 202.

高頻度入出力検出部332は、プロセススケジュール部202のグループ使用枠管理テーブル2421の再設定使用枠値を設定する。   The high frequency input / output detection unit 332 sets the reset use frame value of the group use frame management table 2421 of the process schedule unit 202.

上述した本実施形態における効果は、再設定使用枠値の見直しを実行するためのコスト及び開始判定を実行するための、コストを削減することが可能になる点である。   The effect in the present embodiment described above is that the cost for executing the review of the reset use frame value and the cost for executing the start determination can be reduced.

その理由は、プロセススケジュール部202及びプロセススケジュール部203が、プロセス1をグループ化し、グループを単位として再設定使用枠値の見直し、及び開始判定を実行するからである。   The reason is that the process schedule unit 202 and the process schedule unit 203 group the processes 1, review the reset usage frame value and perform start determination for each group.

<<<第3の実施形態>>>
次に、本発明の第3の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
<<< Third Embodiment >>>
Next, a third embodiment of the present invention will be described in detail with reference to the drawings. Hereinafter, the description overlapping with the above description is omitted as long as the description of the present embodiment is not obscured.

図22は、本発明の第3の実施形態に係るバッファ管理装置903の構成を示すブロック図である。   FIG. 22 is a block diagram showing the configuration of the buffer management device 903 according to the third embodiment of the present invention.

図22に示すように、本実施形態におけるバッファ管理装置903は、プロセススケジュール部203及びブロッキング入出力部303を含む。 尚、図22に示す各構成要素は、ハードウェア単位の回路でも、コンピュータ装置の機能単位に分割された構成要素でもよい。ここでは、図22に示す構成要素は、コンピュータ装置の機能単位に分割された構成要素として説明する。   As shown in FIG. 22, the buffer management device 903 in this embodiment includes a process schedule unit 203 and a blocking input / output unit 303. Each component shown in FIG. 22 may be a hardware unit circuit or a component divided into functional units of a computer device. Here, the components shown in FIG. 22 will be described as components divided into functional units of the computer apparatus.

プロセススケジュール部203は、利用可能な入出力バッファの総数と、新規に開始される新規プロセス及び既に実行中の実行中プロセスのそれぞれに対応する所定使用枠値の合計数(第1の合計数)と、を比較する。ここで、所定使用枠値は、プロセス1(新規プロセス及び実行中プロセスのそれぞれ)が必要とする入出力バッファの数の下限値である。   The process schedule unit 203 includes the total number of input / output buffers that can be used, and the total number (first total number) of predetermined use frame values corresponding to each of a newly started new process and an already running process. And compare. Here, the predetermined use frame value is a lower limit value of the number of input / output buffers required by the process 1 (each of the new process and the process being executed).

次に、プロセススケジュール部203は、その比較した結果に基づいて、その新規プロセスの実行を開始及び保留する。   Next, the process schedule unit 203 starts and holds the execution of the new process based on the comparison result.

また、プロセススケジュール部203は、新規プロセスの実行を開始する場合及び実行中プロセスが終了した場合、利用可能な入出力バッファの利用率がより高くなるように、再設定使用枠値の見直しを実行する。ここで、再設定使用枠値は、実行中プロセスのそれぞれが同時に取得できる、その入出力バッファの数の上限値(第1の上限値)である。   In addition, the process schedule unit 203 reviews the reset usage frame value so that the utilization rate of the available input / output buffer becomes higher when the execution of a new process is started and when the process being executed is terminated. To do. Here, the reset use frame value is an upper limit value (first upper limit value) of the number of input / output buffers that can be simultaneously acquired by each of the executing processes.

ブロッキング入出力部303は、実行中プロセスから入出力要求を受信した場合に、その実行中プロセスによる入出力バッファの使用数を、その実行中プロセスに対応する再設定使用枠値以下に保つように、入出力バッファの取得を待ち合わせる。   When the input / output request is received from the executing process, the blocking input / output unit 303 keeps the number of input / output buffers used by the executing process below the reset use frame value corresponding to the executing process. , Wait for I / O buffer acquisition.

プロセススケジュール部203は、再設定使用枠値を超える数の入出力バッファを使用している実行中プロセスが存在しない状態になるまで、新規プロセスの実行を待ち合わせてよい。   The process schedule unit 203 may wait for the execution of a new process until there is no executing process using the number of input / output buffers exceeding the reset use frame value.

例えば、プロセススケジュール部203は、新規プロセスを開始する場合、上述の第1の合計数と、上述の利用可能な入出力バッファの総数とに基づいて、再設定使用枠値の見直しを実行してよい。   For example, when starting a new process, the process schedule unit 203 performs a review of the reset usage frame value based on the first total number described above and the total number of available input / output buffers described above. Good.

例えば、プロセススケジュール部203は、実行中プロセスが終了した場合、その実行中プロセスに対して設定された所定使用枠値の合計数(第2の合計数)と、上述の利用可能な入出力バッファの総数とに基づいて、再設定使用枠値の見直しを実行してよい。   For example, when the process being executed is terminated, the process schedule unit 203 determines the total number (second total number) of predetermined use frame values set for the process being executed and the above-described available input / output buffers. The reset usage quota value may be reviewed based on the total number of.

プロセススケジュール部203は、新規プロセス及び実行中プロセスのそれぞれに対応する実行優先度、並びに所定使用枠値及びデバイスの入出力性能、の任意の情報に基づいて、新規プロセス及び実行中プロセスのそれぞれに対応する係数を算出してよい。そして、プロセススケジュール部203は、算出したその係数に基づいて、再設定使用枠値の見直しを実行してよい。   The process schedule unit 203 assigns each of the new process and the process being executed based on the execution priority corresponding to each of the new process and the process being executed, and arbitrary information of the predetermined use frame value and the device input / output performance. Corresponding coefficients may be calculated. Then, the process schedule unit 203 may review the reset usage frame value based on the calculated coefficient.

ブロッキング入出力部303は、所定の閾値を超える頻度で入出力要求を実行する実行中プロセスに対応する上述の係数を、プロセススケジュール部203による再設定使用枠値の見直しにおいて再設定使用枠値が相対的に小さくなるように、更新してよい。   The blocking input / output unit 303 uses the above-mentioned coefficient corresponding to the process being executed to execute the input / output request at a frequency exceeding a predetermined threshold, and the reset use frame value is changed in the review of the reset use frame value by the process schedule unit 203. You may update so that it may become relatively small.

プロセススケジュール部203は、新規プロセスが入出力バッファを使用しないバッファ不用プロセスである場合、そのバッファ不用プロセスの所定使用枠値を0に設定してよい。   If the new process is a buffer-unnecessary process that does not use an input / output buffer, the process schedule unit 203 may set the predetermined use frame value of the buffer-unnecessary process to 0.

プロセススケジュール部203は、新規プロセスの実行を開始する場合及び実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、グループに対応する再設定使用枠値の見直しを実行してよい。ここで、そのグループは、プロセス1が所定の情報に基づいてグループ化されたグループである。グループに対応する再設定使用枠値は、そのグループに所属する実行中プロセスのそれぞれが同時に取得できる、入出力バッファの数の上限値(第2の上限値)である。   The process schedule unit 203 sets the reset usage frame value corresponding to the group so that the utilization rate of the available input / output buffer is higher when the execution of the new process is started and when the process being executed is terminated. A review may be performed. Here, the group is a group in which the process 1 is grouped based on predetermined information. The reset use frame value corresponding to the group is an upper limit value (second upper limit value) of the number of input / output buffers that can be simultaneously acquired by each of the running processes belonging to the group.

この場合、ブロッキング入出力部303は、グループに対応する再設定使用枠値に基づいて入出力バッファの取得を待ち合わせてよい。   In this case, the blocking input / output unit 303 may wait for acquisition of the input / output buffer based on the reset use frame value corresponding to the group.

尚、バッファ管理装置903のハードウェア単位の構成要素は、図10に示すバッファ管理装置901のハードウェア単位の構成要素と同様であってよい。   Note that the hardware units of the buffer management device 903 may be the same as the hardware units of the buffer management device 901 shown in FIG.

本実施形態の場合、CPU911は、読み込んだプログラムに従って、また読み込んだデータに基づいて、図22に示すプロセススケジュール部203及びブロッキング入出力部303として各種の処理を実行する。   In the case of this embodiment, the CPU 911 executes various processes as the process schedule unit 203 and the blocking input / output unit 303 illustrated in FIG. 22 according to the read program and based on the read data.

上述した本実施形態における効果は、第1の実施形態の第1、2、3、6及び7と同様である。その理由は、バッファ管理装置903が上述のプロセススケジュール部203及びブロッキング入出力部303を含むからである。   The effects of the present embodiment described above are the same as those of the first, second, third, sixth and seventh of the first embodiment. The reason is that the buffer management device 903 includes the process scheduling unit 203 and the blocking input / output unit 303 described above.

<<<第4の実施形態>>>
次に、本発明の第4の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
<<< Fourth Embodiment >>>
Next, a fourth embodiment of the present invention will be described in detail with reference to the drawings. Hereinafter, the description overlapping with the above description is omitted as long as the description of the present embodiment is not obscured.

図23は、本発明の第4の実施形態に係るバッファ管理装置904の構成を示すブロック図である。   FIG. 23 is a block diagram showing the configuration of the buffer management device 904 according to the fourth embodiment of the present invention.

図23に示すように、本実施形態におけるバッファ管理装置904は、図22に示す第3の実施形態のバッファ管理装置903と比べて、入出力バッファ管理部504を更に含む点が異なる。   As shown in FIG. 23, the buffer management device 904 in the present embodiment is different from the buffer management device 903 in the third embodiment shown in FIG. 22 in that it further includes an input / output buffer management unit 504.

入出力バッファ管理部504は、入出力バッファに格納されたデータの破棄を許容する特性が示されている場合、その特性に基づいて、使用中の入出力バッファを強制的に開放する。   In the case where a characteristic that allows the data stored in the input / output buffer to be discarded is indicated, the input / output buffer management unit 504 forcibly releases the input / output buffer that is being used based on the characteristic.

上述した本実施形態における効果は、第3の実施形態の効果に加えて、新実行中プロセスの実行開始時における、再設定使用枠値を超える数の入出力バッファを使用している実行中プロセスのバッファ解放の待ち合わせ時間を短縮できることである。ここで、新実行中プロセスは、第1の実施形態において説明した、新たに実行を開始するプロセス1である。   In addition to the effect of the third embodiment, the effect of the present embodiment described above is a running process using a number of input / output buffers exceeding the reset usage frame value at the start of execution of a new running process. It is possible to shorten the waiting time for releasing the buffer. Here, the newly executing process is the process 1 that starts a new execution described in the first embodiment.

その理由は、プロセススケジュール部204が実行中プロセスを検出した場合、プロセススケジュール部204が入出力バッファ管理部504を使用して、その実行中プロセスのキャンセル可能な未実行の入出力要求をキャンセルするからである。   The reason is that when the process schedule unit 204 detects a process being executed, the process schedule unit 204 uses the input / output buffer management unit 504 to cancel an unexecutable I / O request that can be canceled by the process being executed. Because.

<<<第5の実施形態>>>
次に、本発明の第5の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
<<< Fifth Embodiment >>>
Next, a fifth embodiment of the present invention will be described in detail with reference to the drawings. Hereinafter, the description overlapping with the above description is omitted as long as the description of the present embodiment is not obscured.

図24は、本発明の第5の実施形態に係るバッファ管理装置905の構成を示すブロック図である。   FIG. 24 is a block diagram showing a configuration of a buffer management device 905 according to the fifth embodiment of the present invention.

図24に示すように、本実施形態におけるバッファ管理装置905は、図22に示す第3の実施形態のバッファ管理装置903と比べて、非同期入出力要求部8を更に含む点が異なる。   As shown in FIG. 24, the buffer management device 905 in this embodiment is different from the buffer management device 903 in the third embodiment shown in FIG. 22 in that it further includes an asynchronous input / output request unit 8.

非同期入出力要求部8が、図1に示す非同期入出力要求部8と同じである。   The asynchronous input / output request unit 8 is the same as the asynchronous input / output request unit 8 shown in FIG.

上述した本実施形態における効果は、第3の実施形態の効果に加えて、ブロッキング入出力部303の実行に掛かる時間を短縮して、速やかにユーザプログラムに制御を戻せることである。   In addition to the effect of the third embodiment, the effect of the present embodiment described above is that the time required for the execution of the blocking input / output unit 303 can be shortened and control can be quickly returned to the user program.

その理由は、非同期入出力要求部8を更に含むからである。   This is because the asynchronous input / output request unit 8 is further included.

以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が1個のモジュールとして実現されてよい。また、各構成要素は、1つの構成要素が複数のモジュールで実現されてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であるような構成であってよい。また、各構成要素は、ある構成要素の一部と他の構成要素の一部とが重複するような構成であってもよい。   Each component described in each of the above embodiments does not necessarily have to be individually independent. For example, each component may be realized as a module with a plurality of components. In addition, each component may be realized by a plurality of modules. Each component may be configured such that a certain component is a part of another component. Each component may be configured such that a part of a certain component overlaps a part of another component.

以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ、可能であれば、ハードウェア的に実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、コンピュータ及びプログラムで実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、ハードウェア的なモジュールとコンピュータ及びプログラムとの混在により実現されてもよい。   In the embodiments described above, each component and a module that realizes each component may be realized as hardware as necessary. Moreover, each component and the module which implement | achieves each component may be implement | achieved by a computer and a program. Each component and a module that realizes each component may be realized by mixing hardware modules, computers, and programs.

そのプログラムは、例えば、磁気ディスクや半導体メモリなど、不揮発性のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施形態における構成要素として機能させる。   The program is provided by being recorded in a non-volatile computer-readable recording medium such as a magnetic disk or a semiconductor memory, and is read by the computer when the computer is started up. The read program causes the computer to function as a component in each of the above-described embodiments by controlling the operation of the computer.

また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障のない範囲で変更することができる。   Further, in each of the embodiments described above, a plurality of operations are described in order in the form of a flowchart, but the described order does not limit the order in which the plurality of operations are executed. For this reason, when each embodiment is implemented, the order of the plurality of operations can be changed within a range that does not hinder the contents.

更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複していたりしていてもよい。   Furthermore, in each embodiment described above, a plurality of operations are not limited to being executed at different timings. For example, another operation may occur during the execution of a certain operation, or the execution timing of a certain operation and another operation may partially or entirely overlap.

更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作との全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されてよい。   Furthermore, in each of the embodiments described above, a certain operation is described as a trigger for another operation, but the description does not limit all relationships between the certain operation and the other operations. For this reason, when each embodiment is implemented, the relationship between the plurality of operations can be changed within a range that does not hinder the contents. The specific description of each operation of each component does not limit each operation of each component. For this reason, each specific operation | movement of each component may be changed in the range which does not cause trouble with respect to a functional, performance, and other characteristic in implementing each embodiment.

上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。   A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.

(付記1)利用可能な入出力バッファの総数と、新規に開始される新規プロセス及び既に実行中の実行中プロセスのそれぞれが必要とする前記入出力バッファの数の下限値の第1の合計数と、を比較した結果に基づいて、前記新規プロセスの実行を開始及び保留し、
前記新規プロセスの実行を開始する場合及び前記実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、前記実行中プロセスのそれぞれが同時に取得できる前記入出力バッファの数の第1の上限値の見直しを実行する
プロセススケジュール手段と、
前記実行中プロセスから入出力要求を受信した場合に、前記実行中プロセスによる前記入出力バッファの使用数を、前記実行中プロセスに対応する前記第1の上限値以下に保つように、前記入出力バッファの取得を待ち合わせるブロッキング入出力手段と、を含む
情報処理装置。
(Supplementary note 1) The first total number of the total number of available input / output buffers and the lower limit of the number of input / output buffers required by each of a newly started new process and an already running process And starting and deferring execution of the new process based on the result of comparing
The input / output buffer that can be simultaneously acquired by each of the executing processes so that the utilization rate of the available input / output buffer is higher when the execution of the new process is started and when the executing process is ended. A process scheduling means for performing a review of the first upper limit of the number of
When the input / output request is received from the running process, the input / output buffer is used so that the number of uses of the input / output buffer by the running process is kept below the first upper limit value corresponding to the running process. Blocking input / output means for waiting for buffer acquisition.

(付記2)前記ブロッキング入出力手段は、
前記第1の上限値を超える数の前記入出力バッファを使用している前記実行中プロセスが存在しない状態になるまで、前記新規プロセスの実行を待ち合わせる
ことを特徴とする付記1記載の情報処理装置。
(Appendix 2) The blocking input / output means includes
The information processing apparatus according to claim 1, wherein execution of the new process is waited until there is no executing process using the input / output buffers exceeding the first upper limit value. .

(付記3)前記プロセススケジュール手段は、
前記新規プロセスを開始する場合、前記第1の合計数と、前記利用可能な入出力バッファの総数とに基づいて、前記第1の上限値の見直しを実行し、
前記実行中プロセスが終了した場合、前記実行中プロセスに対して設定された前記下限値の第2の合計数と、前記利用可能な入出力バッファの総数とに基づいて、前記第1の上限値の見直しを実行する
ことを特徴とする付記1または2記載の情報処理装置。
(Supplementary Note 3) The process schedule means includes:
When starting the new process, the first upper limit value is reviewed based on the first total number and the total number of available I / O buffers;
When the executing process is terminated, the first upper limit value is set based on the second total number of the lower limit values set for the executing process and the total number of available input / output buffers. The information processing apparatus according to appendix 1 or 2, wherein the information processing apparatus is reviewed.

(付記4)前記プロセススケジュール手段は、
前記新規プロセス及び前記実行中プロセスのそれぞれに対応する実行優先度及び前記下限値、並びにデバイスの入出力性能、の任意の情報に基づいて、前記新規プロセス及び前記実行中プロセスのそれぞれに対応する係数を算出し、算出された前記係数に基づいて、前記見直しを実行する
ことを特徴とする付記1乃至3のいずれか1つに記載の情報処理装置。
(Supplementary Note 4) The process schedule means includes:
A coefficient corresponding to each of the new process and the running process, based on arbitrary information of the execution priority and the lower limit value corresponding to each of the new process and the running process, and the input / output performance of the device The information processing apparatus according to any one of appendices 1 to 3, wherein the review is performed based on the calculated coefficient.

(付記5)前記ブロッキング入出力手段は、所定の閾値を超える頻度で入出力要求を実行する前記実行中プロセスに対応する前記係数を、前記プロセススケジュール手段による前記見直しにおいて前記第1の上限値が相対的に小さくなるように、更新する
ことを特徴とする付記4記載の情報処理装置。
(Supplementary Note 5) The blocking input / output unit sets the coefficient corresponding to the executing process that executes an input / output request at a frequency exceeding a predetermined threshold, and the first upper limit value in the review by the process schedule unit is The information processing apparatus according to appendix 4, wherein the information processing apparatus is updated so as to be relatively small.

(付記6)前記プロセススケジュール手段は、前記新規プロセスが入出力バッファを使用しないバッファ不用プロセスである場合、前記バッファ不用プロセスの前記下限値を0に設定する
ことを特徴とする付記1乃至5のいずれか1つに記載の情報処理装置。
(Additional remark 6) When the said new process is a buffer unnecessary process which does not use an input / output buffer, the said process schedule means sets the said lower limit of the said buffer unnecessary process to 0. Additional remark 1 to 5 characterized by the above-mentioned. The information processing apparatus according to any one of the above.

(付記7)前記入出力バッファに格納されたデータの破棄を許容する特性が示されている場合、前記特性に基づいて、使用中の前記入出力バッファを強制的に開放する入出力バッファ管理手段を更に含む
ことを特徴とする付記1乃至6のいずれか1つに記載の情報処理装置。
(Supplementary note 7) An input / output buffer management means for forcibly releasing the input / output buffer being used based on the characteristic when the characteristic allowing the discard of the data stored in the input / output buffer is indicated The information processing apparatus according to any one of appendices 1 to 6, further comprising:

(付記8)前記プロセススケジュール手段は、前記新規プロセスの実行を開始する場合及び前記実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、前記プロセスが所定の情報に基づいてグループ化されたグループに対応する、前記実行中プロセスのそれぞれが同時に取得できる前記入出力バッファの数の第2の上限値の見直しを実行し、
前記入出力ブロッキング手段は、前記第2の上限値に基づいて前記入出力バッファの取得を待ち合わせる
ことを特徴とする付記1乃至7のいずれか1つに記載の情報処理装置。
(Supplementary Note 8) The process scheduling means determines whether the process is predetermined so that the utilization rate of the available input / output buffer is higher when the execution of the new process is started and when the process being executed is terminated. The second upper limit value of the number of the input / output buffers that can be simultaneously acquired by each of the running processes corresponding to the group grouped based on the information of
The information processing apparatus according to any one of appendices 1 to 7, wherein the input / output blocking unit waits for acquisition of the input / output buffer based on the second upper limit value.

(付記9)前記入出力ブロッキング手段とは並列に動作可能であり、前記入出力ブロッキング手段から入出力要求を受信し、受信した前記入出力要求を代理実行する非同期入出力要求手段を、更に更に含む
ことを特徴とする付記1乃至8のいずれか1つに記載の情報処理装置。
(Supplementary note 9) Asynchronous input / output request means operable in parallel with the input / output blocking means, receiving an input / output request from the input / output blocking means, and executing the received input / output request as a proxy The information processing apparatus according to any one of appendices 1 to 8, wherein the information processing apparatus includes:

(付記10)所定使用枠値の入力を受け付ける手段を更に含む
ことを特徴とする付記1乃至9のいずれか1つに記載の情報処理装置。
(Supplementary note 10) The information processing apparatus according to any one of supplementary notes 1 to 9, further comprising means for receiving an input of a predetermined use frame value.

(付記11)プロセッサと、プロセススケジュール部及びブロッキング入出力部として動作するための、プロセッサによって実行される命令を保持する記憶部とを含み、
前記プロセススケジュール部は、利用可能な入出力バッファの総数と、新規に開始される新規プロセス及び既に実行中の実行中プロセスのそれぞれが必要とする前記入出力バッファの数の下限値の第1の合計数と、を比較した結果に基づいて、前記新規プロセスの実行を開始及び保留し、前記新規プロセスの実行を開始する場合及び前記実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、前記実行中プロセスのそれぞれが同時に取得できる前記入出力バッファの数の第1の上限値の見直しを実行し、
前記ブロッキング入出力部は、前記実行中プロセスから入出力要求を受信した場合に、前記実行中プロセスによる前記入出力バッファの使用数を、前記実行中プロセスに対応する前記第1の上限値以下に保つように、前記入出力バッファの取得を待ち合わせる
情報処理装置。
(Supplementary note 11) including a processor and a storage unit that holds instructions executed by the processor to operate as a process schedule unit and a blocking input / output unit,
The process schedule unit includes a first lower limit value of the total number of available input / output buffers and the number of input / output buffers required by each of a newly started new process and an already running process. Based on the result of comparing the total number, the execution of the new process is started and suspended, and when the execution of the new process is started and when the running process is terminated, the available input / output buffers Performing a review of the first upper limit of the number of I / O buffers that each of the running processes can simultaneously acquire so that the utilization rate is higher;
When the blocking input / output unit receives an input / output request from the executing process, the blocking input / output unit sets the number of uses of the input / output buffer by the executing process to be equal to or less than the first upper limit value corresponding to the executing process. An information processing apparatus that waits for acquisition of the input / output buffer so as to maintain the information processing apparatus.

(付記12)利用可能な入出力バッファの総数と、新規に開始される新規プロセス及び既に実行中の実行中プロセスのそれぞれが必要とする前記入出力バッファの数の下限値の第1の合計数と、を比較した結果に基づいて、前記新規プロセスの実行を開始及び保留し、
前記新規プロセスの実行を開始する場合及び前記実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、前記実行中プロセスのそれぞれが同時に取得できる前記入出力バッファの数の第1の上限値の見直しを実行し、
前記実行中プロセスから入出力要求を受信した場合に、前記実行中プロセスによる前記入出力バッファの使用数を、前記実行中プロセスに対応する前記第1の上限値以下に保つように、前記入出力バッファの取得を待ち合わせる
バッファ管理方法。
(Supplementary Note 12) The first total number of lower limit values of the total number of available input / output buffers and the number of input / output buffers required by each of a newly started new process and an already running process And starting and deferring execution of the new process based on the result of comparing
The input / output buffer that can be simultaneously acquired by each of the executing processes so that the utilization rate of the available input / output buffer is higher when the execution of the new process is started and when the executing process is ended. Review the first upper limit on the number of
When the input / output request is received from the running process, the input / output buffer is used so that the number of uses of the input / output buffer by the running process is kept below the first upper limit value corresponding to the running process. Wait for buffer acquisition Buffer management method.

(付記13)利用可能な入出力バッファの総数と、新規に開始される新規プロセス及び既に実行中の実行中プロセスのそれぞれが必要とする前記入出力バッファの数の下限値の第1の合計数と、を比較した結果に基づいて、前記新規プロセスの実行を開始及び保留し、
前記新規プロセスの実行を開始する場合及び前記実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、前記実行中プロセスのそれぞれが同時に取得できる前記入出力バッファの数の第1の上限値の見直しを実行し、
前記実行中プロセスから入出力要求を受信した場合に、前記実行中プロセスによる前記入出力バッファの使用数を、前記実行中プロセスに対応する前記第1の上限値以下に保つように、前記入出力バッファの取得を待ち合わせる処理をコンピュータに実行させる
プログラム。
(Supplementary note 13) The first total number of lower limit values of the total number of input / output buffers that can be used and the number of input / output buffers required by each of a newly started new process and an already running process And starting and deferring execution of the new process based on the result of comparing
The input / output buffer that can be simultaneously acquired by each of the executing processes so that the utilization rate of the available input / output buffer is higher when the execution of the new process is started and when the executing process is ended. Review the first upper limit on the number of
When the input / output request is received from the running process, the input / output buffer is used so that the number of uses of the input / output buffer by the running process is kept below the first upper limit value corresponding to the running process. A program that causes a computer to wait for a buffer to be acquired.

以上、各実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえるさまざまな変更をすることができる。   As mentioned above, although this invention was demonstrated with reference to each embodiment, this invention is not limited to the said embodiment. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

1 プロセス
2 プロセススケジュール部
3 ブロッキング入出力部
4 使用枠管理部
5 入出力バッファ管理部
6 入出力バッファプール
7 入出力実行キュー
8 非同期入出力要求部
21 開始部
22 終了検知部
23 開始判定部
24 使用枠値見直部
25 検査部
31 入出力要求部
32 取得制限部
33 高頻度入出力検出部
41 使用枠値取得部
42 使用バッファ計数部
43 使用枠管理テーブル
51 バッファ取得部
52 入出力実行管理部
53 バッファ解放部
61 入出力バッファ
71 入出力バッファ
332 高頻度入出力検出部
431 使用枠管理レコード
521 入出力要求登録部
522 入出力要求キャンセル部
523 デバイスドライバ
901 バッファ管理装置
910 コンピュータ
911 CPU
912 記憶部
913 記憶装置
914 入出力部
917 記録媒体
DESCRIPTION OF SYMBOLS 1 Process 2 Process schedule part 3 Blocking input / output part 4 Use frame management part 5 Input / output buffer management part 6 Input / output buffer pool 7 Input / output execution queue 8 Asynchronous input / output request part 21 Start part 22 End detection part 23 Start determination part 24 Use frame value review unit 25 Inspection unit 31 Input / output request unit 32 Acquisition restriction unit 33 High frequency input / output detection unit 41 Use frame value acquisition unit 42 Use buffer count unit 43 Use frame management table 51 Buffer acquisition unit 52 Input / output execution management Unit 53 Buffer release unit 61 Input / output buffer 71 Input / output buffer 332 High frequency input / output detection unit 431 Use frame management record 521 Input / output request registration unit 522 Input / output request cancellation unit 523 Device driver 901 Buffer management device 910 Computer 911 CPU
912 Storage unit 913 Storage device 914 Input / output unit 917 Recording medium

Claims (9)

利用可能な入出力バッファの総数と、新規に開始される新規プロセス及び既に実行中の実行中プロセスのそれぞれが必要とする前記入出力バッファの数の下限値の第1の合計数と、を比較した結果に基づいて、前記新規プロセスの実行を開始及び保留し、
前記新規プロセスの実行を開始する場合及び前記実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、前記実行中プロセスのそれぞれが同時に取得できる前記入出力バッファの数の第1の上限値の見直しを実行する
プロセススケジュール手段と、
前記実行中プロセスから入出力要求を受信した場合に、前記実行中プロセスによる前記入出力バッファの使用数を、前記実行中プロセスに対応する前記第1の上限値以下に保つように、前記入出力バッファの取得を待ち合わせ、前記第1の上限値を超える数の前記入出力バッファを使用している前記実行中プロセスが存在しない状態になるまで、前記新規プロセスの実行を待ち合わせるブロッキング入出力手段と、を含む
情報処理装置。
Compare the total number of available I / O buffers with the first total number of lower bounds for the number of I / O buffers required by each newly started new process and already running processes. Based on the result, the execution of the new process is started and suspended,
The input / output buffer that can be simultaneously acquired by each of the executing processes so that the utilization rate of the available input / output buffer is higher when the execution of the new process is started and when the executing process is ended. A process scheduling means for performing a review of the first upper limit of the number of
When the input / output request is received from the running process, the input / output buffer is used so that the number of uses of the input / output buffer by the running process is kept below the first upper limit value corresponding to the running process. Blocking input / output means that waits for acquisition of a buffer and waits for execution of the new process until there is no executing process using the number of input / output buffers exceeding the first upper limit value ; Including information processing apparatus.
前記プロセススケジュール手段は、
前記新規プロセスを開始する場合、前記第1の合計数と、前記利用可能な入出力バッファの総数とに基づいて、前記第1の上限値の見直しを実行し、
前記実行中プロセスが終了した場合、前記実行中プロセスに対して設定された前記下限値の第2の合計数と、前記利用可能な入出力バッファの総数とに基づいて、前記第1の上限値の見直しを実行する
ことを特徴とする請求項記載の情報処理装置。
The process schedule means includes
When starting the new process, the first upper limit value is reviewed based on the first total number and the total number of available I / O buffers;
When the executing process is terminated, the first upper limit value is set based on the second total number of the lower limit values set for the executing process and the total number of available input / output buffers. The information processing apparatus according to claim 1 , wherein the information is reviewed.
前記プロセススケジュール手段は、
前記新規プロセス及び前記実行中プロセスのそれぞれに対応する実行優先度及び前記下限値、並びにデバイスの入出力性能、の任意の情報に基づいて、前記新規プロセス及び前記実行中プロセスのそれぞれに対応する係数を算出し、算出された前記係数に基づいて、前記見直しを実行する
ことを特徴とする請求項1または2記載の情報処理装置。
The process schedule means includes
A coefficient corresponding to each of the new process and the running process, based on arbitrary information of the execution priority and the lower limit value corresponding to each of the new process and the running process, and the input / output performance of the device It calculates, on the basis of the coefficients calculated, the information processing apparatus according to claim 1, wherein performing said review.
前記ブロッキング入出力手段は、所定の閾値を超える頻度で入出力要求を実行する前記実行中プロセスに対応する前記係数を、前記プロセススケジュール手段による前記見直しにおいて前記第1の上限値が相対的に小さくなるように、更新する
ことを特徴とする請求項記載の情報処理装置。
The blocking input / output unit is configured such that the first upper limit value in the review by the process schedule unit is relatively small in the coefficient corresponding to the executing process that executes an input / output request at a frequency exceeding a predetermined threshold. The information processing apparatus according to claim 3 , wherein the information processing apparatus is updated.
前記プロセススケジュール手段は、前記新規プロセスが入出力バッファを使用しないバッファ不用プロセスである場合、前記バッファ不用プロセスの前記下限値を0に設定する
ことを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
Said process scheduling means, said if the new process is a buffer unnecessary processes that do not use the output buffer, according to claim 1 or any one of the 4 and sets the lower limit value of the buffer unnecessary process 0 The information processing apparatus according to item.
前記入出力バッファに格納されたデータの破棄を許容する特性が示されている場合、前記特性に基づいて、使用中の前記入出力バッファを強制的に開放する入出力バッファ管理手段を更に含む
ことを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
In the case where the characteristic indicating that the data stored in the input / output buffer is allowed to be discarded is included, the system further includes input / output buffer management means for forcibly releasing the input / output buffer in use based on the characteristic. the information processing apparatus according to any one of claims 1 to 5, characterized in.
前記プロセススケジュール手段は、前記新規プロセスの実行を開始する場合及び前記実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、前記実行中のプロセスが所定の情報に基づいてグループ化されたグループに対応する、前記実行中プロセスのそれぞれが同時に取得できる前記入出力バッファの数の第2の上限値の見直しを実行し、
前記ブロッキング入出力手段は、前記第2の上限値に基づいて前記入出力バッファの取得を待ち合わせる
ことを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
Said process scheduling means, the case when and where the running process initiates execution of the new process is completed, the as available output buffer utilization is higher, the running process is given Performing a review of a second upper limit of the number of I / O buffers that can be simultaneously acquired by each of the running processes, corresponding to groups grouped based on information,
The blocking input means, information processing apparatus according to any one of claims 1 to 6, characterized in that to wait for acquisition of the output buffer based on the second upper limit.
利用可能な入出力バッファの総数と、新規に開始される新規プロセス及び既に実行中の実行中プロセスのそれぞれが必要とする前記入出力バッファの数の下限値の第1の合計数と、を比較した結果に基づいて、前記新規プロセスの実行を開始及び保留し、
前記新規プロセスの実行を開始する場合及び前記実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、前記実行中プロセスのそれぞれが同時に取得できる前記入出力バッファの数の第1の上限値の見直しを実行し、
前記実行中プロセスから入出力要求を受信した場合に、前記実行中プロセスによる前記入出力バッファの使用数を、前記実行中プロセスに対応する前記第1の上限値以下に保つように、前記入出力バッファの取得を待ち合わせ
前記第1の上限値を超える数の前記入出力バッファを使用している前記実行中プロセスが存在しない状態になるまで、前記新規プロセスの実行を待ち合わせる
バッファ管理方法。
Compare the total number of available I / O buffers with the first total number of lower bounds for the number of I / O buffers required by each newly started new process and already running processes. Based on the result, the execution of the new process is started and suspended,
The input / output buffer that can be simultaneously acquired by each of the executing processes so that the utilization rate of the available input / output buffer is higher when the execution of the new process is started and when the executing process is ended. Review the first upper limit on the number of
When the input / output request is received from the running process, the input / output buffer is used so that the number of uses of the input / output buffer by the running process is kept below the first upper limit value corresponding to the running process. Wait for buffer acquisition ,
A buffer management method for waiting for execution of the new process until there is no executing process using the input / output buffers exceeding the first upper limit value .
利用可能な入出力バッファの総数と、新規に開始される新規プロセス及び既に実行中の実行中プロセスのそれぞれが必要とする前記入出力バッファの数の下限値の第1の合計数と、を比較した結果に基づいて、前記新規プロセスの実行を開始及び保留し、
前記新規プロセスの実行を開始する場合及び前記実行中プロセスが終了した場合、前記利用可能な入出力バッファの利用率がより高くなるように、前記実行中プロセスのそれぞれが同時に取得できる前記入出力バッファの数の第1の上限値の見直しを実行し、
前記実行中プロセスから入出力要求を受信した場合に、前記実行中プロセスによる前記入出力バッファの使用数を、前記実行中プロセスに対応する前記第1の上限値以下に保つように、前記入出力バッファの取得を待ち合わせ
前記第1の上限値を超える数の前記入出力バッファを使用している前記実行中プロセスが存在しない状態になるまで、前記新規プロセスの実行を待ち合わせる処理をコンピュータに実行させる
プログラム。
Compare the total number of available I / O buffers with the first total number of lower bounds for the number of I / O buffers required by each newly started new process and already running processes. Based on the result, the execution of the new process is started and suspended,
The input / output buffer that can be simultaneously acquired by each of the executing processes so that the utilization rate of the available input / output buffer is higher when the execution of the new process is started and when the executing process is ended. Review the first upper limit on the number of
When the input / output request is received from the running process, the input / output buffer is used so that the number of uses of the input / output buffer by the running process is kept below the first upper limit value corresponding to the running process. Wait for buffer acquisition ,
A program for causing a computer to execute a process of waiting for execution of the new process until there is no executing process using the number of input / output buffers exceeding the first upper limit value .
JP2013268403A 2013-12-26 2013-12-26 Information processing apparatus for managing buffer, buffer management method, and program therefor Active JP6269045B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013268403A JP6269045B2 (en) 2013-12-26 2013-12-26 Information processing apparatus for managing buffer, buffer management method, and program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013268403A JP6269045B2 (en) 2013-12-26 2013-12-26 Information processing apparatus for managing buffer, buffer management method, and program therefor

Publications (2)

Publication Number Publication Date
JP2015125525A JP2015125525A (en) 2015-07-06
JP6269045B2 true JP6269045B2 (en) 2018-01-31

Family

ID=53536204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013268403A Active JP6269045B2 (en) 2013-12-26 2013-12-26 Information processing apparatus for managing buffer, buffer management method, and program therefor

Country Status (1)

Country Link
JP (1) JP6269045B2 (en)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793170A (en) * 1993-09-28 1995-04-07 Mitsubishi Electric Corp Communication buffer managing device
JP3761317B2 (en) * 1998-02-27 2006-03-29 株式会社リコー Method for dynamically managing buffer and computer-readable recording medium recording program for causing computer to execute each step of method
JP2001051855A (en) * 1999-08-09 2001-02-23 Nec Corp Memory division management system
JP2001184176A (en) * 1999-12-27 2001-07-06 Toshiba Corp Disk controller
JP4332308B2 (en) * 2001-08-23 2009-09-16 株式会社リコー Image processing apparatus, program, recording medium on which program is written, and image forming apparatus
JP2004080267A (en) * 2002-08-14 2004-03-11 Nippon Telegr & Teleph Corp <Ntt> Resource allocation method in network service and resource allocation device employing the same
JP4175185B2 (en) * 2003-06-06 2008-11-05 日本電気株式会社 Network information recording device
JP2006285871A (en) * 2005-04-04 2006-10-19 Canon Inc Information processor, control method, program, and storage medium
JP2012133436A (en) * 2010-12-20 2012-07-12 Nec Corp Data storage device, data migration method and program

Also Published As

Publication number Publication date
JP2015125525A (en) 2015-07-06

Similar Documents

Publication Publication Date Title
US9501319B2 (en) Method and apparatus for scheduling blocking tasks
US9201693B2 (en) Quota-based resource management
US9218203B2 (en) Packet scheduling in a multiprocessor system using inter-core switchover policy
CN113641457B (en) Container creation method, device, apparatus, medium, and program product
US20100153957A1 (en) System and method for managing thread use in a thread pool
JP5925846B2 (en) Socket management with low latency packet processing
US20150242254A1 (en) Method and apparatus for processing message between processors
JP2009265963A (en) Information processing system and task execution control method
US7770177B2 (en) System for memory reclamation based on thread entry and release request times
KR102338849B1 (en) Method and system for providing stack memory management in real-time operating systems
JP2008217332A (en) Virtual machine management system, its method, and its program
JP2017041191A (en) Resource management apparatus, resource management program, and resource management method
JP5660149B2 (en) Information processing apparatus, job scheduling method, and job scheduling program
CN111831414A (en) Thread migration method and device, storage medium and electronic equipment
US9229716B2 (en) Time-based task priority boost management using boost register values
US20180217875A1 (en) Data processing system and data processing method
JP6269045B2 (en) Information processing apparatus for managing buffer, buffer management method, and program therefor
US20180143851A1 (en) Workflow Job Distribution in a Data Processing System with Agent Time Window Constraints
WO2017017774A1 (en) Storage monitoring system and monitoring method therefor
JP5884566B2 (en) Batch processing system, progress confirmation device, progress confirmation method, and program
CN115168040A (en) Job preemption scheduling method, device, equipment and storage medium
JP2008225641A (en) Computer system, interrupt control method and program
WO2020031675A1 (en) Scheduling device, scheduling system, scheduling method, program, and non-transitory computer-readable medium
CN115904644A (en) Task scheduling method, electronic device and computer program product
JP7052396B2 (en) Data collection server, data collection system, data collection method and data collection program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170912

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171109

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: 20171205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171218

R150 Certificate of patent or registration of utility model

Ref document number: 6269045

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150