JP2535568B2 - アプリケ―ションプログラムでの動的バッファ管理方式 - Google Patents

アプリケ―ションプログラムでの動的バッファ管理方式

Info

Publication number
JP2535568B2
JP2535568B2 JP62290985A JP29098587A JP2535568B2 JP 2535568 B2 JP2535568 B2 JP 2535568B2 JP 62290985 A JP62290985 A JP 62290985A JP 29098587 A JP29098587 A JP 29098587A JP 2535568 B2 JP2535568 B2 JP 2535568B2
Authority
JP
Japan
Prior art keywords
buffer
application program
buffer management
management table
operating system
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.)
Expired - Lifetime
Application number
JP62290985A
Other languages
English (en)
Other versions
JPH01133143A (ja
Inventor
昌信 金澤
良光 赤木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP62290985A priority Critical patent/JP2535568B2/ja
Publication of JPH01133143A publication Critical patent/JPH01133143A/ja
Application granted granted Critical
Publication of JP2535568B2 publication Critical patent/JP2535568B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔目 次〕 概要 産業上の利用分野 従来の技術と発明が解決しようとする問題点 問題点を解決するための手段 作用 実施例 発明の効果 〔概要〕 アプリケーションプログラムにおけるシステムバッフ
ァに対する動的管理方式に関し、 アプリケーションプログラムが使用済のシステムバッ
ファをオペレーティングシステム(OS)に返却すること
を忘れることによる、バッファ待ちの発生と、システム
全体の処理能力の低下を防ぐことを目的とし、 アプリケーションプログラム内に、自分が使用してい
るシステムバッファに対するバッファ管理表と、該バッ
ファ管理表に基づいて、オペレーティングシステム(O
S)との間でシステムバッファの獲得,返却を管理する
ローカルバッファ管理ルーチンとを設け、アプリケーシ
ョンプログラムからのシステムバッファに対する獲得要
求がある毎に、又は、該アプリケーションプログラムで
の処理の終了時に、上記ローカルバッファ管理ルーチン
が、上記バッファ管理表を検索して、アプリケーション
プログラムが要求しているシステムバッファを確保し、
該アプリケーションプログラムが使用していないシステ
ムバッファをオペレーティングシステム(OS)に返却す
ると共に、該バッファ管理表に、アプリケーションプロ
グラムが要求するシステムバッファが存在しないときに
限り、該ローカルバッファ管理ルーチンがオペレーティ
ングシステム(OS)にシステムバッファの獲得の要求を
生起するように構成する。
〔産業上の利用分野〕
本発明は、アプリケーションプログラムにおけるシス
テムバッファに対する動的管理方式に関する。
最近のソフトウェア技術の進歩に伴って、ワークステ
ーション(WS)と云った小型の計算機システムにおいて
も、マルチタスクによる処理をサポートするオペレーテ
ィングシステム(OS)を搭載するようになってきた。
一般に、マルチタスクシステムにおいては、各タスク
が複数のプログラマによって生成されることが多くなる
為、各タスクでのプログラム品質に差が出てくることが
多く、プログラムの誤りを絶無にすることができないの
が現状である。
一方、このような小型の計算機システムにおいては、
主記憶装置(MS)の容量が比較的に小さいことが多い
が、上記タスクの数が増加してくると、上記プログラム
の誤り等によって、各タスクにおいて使用済のシステム
バッファの返却忘れ等を発生し、オペレーティングシス
テム(OS)において、他のタスクが必要とするシステム
バッファの獲得ができず、該タスクにおいて「システム
バッファ待ち」となることがあり、システム全体の処理
能力に多大な影響を与えることになることから、該プロ
グラムの誤りに影響されないシステムバッファ管理方式
が必要とされるようになってきた。
〔従来の技術と発明が解決しようとする問題点〕
第3図は従来のシステムバッファ管理方式を説明する
図であり、(a)はバッファ管理の体系を示し、(b)
はバッファ待ちが発生する迄の動作過程を示すタイムチ
ャートである。
一般に、マルチタスクシステムにおいては、1つのア
プリケーションプログラム2が、1つ,又は複数個のタ
スクからなり、オペレーティングシステム(OS)1の管
理の基に、各アプリケーションプログラム2からの要求
に基づいて、各タスクが順次起動されて処理を実行する
ことにより、各アプリケーションプログラム2の一連の
処理が完了する。
このとき、各アプリケーションプログラム2を構成し
ている各タスクが使用可能なシステムバッファ11につい
ては、オペレーティングシステム(OS)1が、該システ
ムバッファを“空き領域”の形で管理しているだけであ
って、オペレーティングシステム(OS)1からは各アプ
リケーションプログラム2でのシステムバッファ11に対
する使用状況を把握することはできない。
この為、本図の(a)に示したように、システムバッ
ファ11を使用する要求を発生したタスクは、オペレーテ
ィングシステム(OS)1にシステムバッファの獲得を要
求し、この要求を受けたオペレーティングシステム(O
S)1はシステムバッファ11の“空き領域”を検索し、
見つかると、その領域のアドレス等を該アプリケーショ
ンプログラム(A,B)2の当該タスクに通知する。
該通知を受けたタスクは処理が終了して、該システ
ムバッファ11の使用の終了を認識後、オペレーティング
システム(O)に返却することになっている。
然し、マルチタスクシステムのように、システムバッ
ファ11を要求するタスクの数が多いシステムのもとで、
このようなバッファ管理方式が行われると、本図(b)
に示すように、例えば、アプリケーションタスクA2がシ
ステムバッファ11を獲得した侭、返却をしないで処理を
終了してしまい、オペレーティングシステム(OS)1
においてタスク切り替えを行うと、次に開始したアプ
リケーションタスクB2がシステムバッファ11の獲得を要
求したとき、該要求したサイズのシステムバッファ11の
“空き”が無いことが、オペレーティングシステム(O
S)1において認識されることがある。
従って、この場合には、“空きバッファなし”として
「システムウェイト」を起こしてしまうことがあり、タ
スクの数が多くなると、このような事象の発生する確率
が多くなる傾向になると云う問題があった。
本発明は上記従来の欠点に鑑み、アプリケーションプ
ログラム自身はシステムバッファの使用状況を認識して
いることに着目し、アプリケーションタスクがシステム
バッファの返却を忘れるようなことがあっても「システ
ムウェイト」の生起することがないシステムバッファ管
理方式を提供することを目的とするものである。
〔問題点を解決するための手段〕
第1図は本発明のシステムバッファ管理方式の原理を
説明する図である。
上記の問題点は下記の如くに構成されたアプリケーシ
ョンプログラムでのシステムバッファ管理方式によって
解決される。
オペレーティングシステム(OS)1の管理の基に、各
アプリケーションプログラム2が要求するシステムバッ
ファ11を獲得して、該アプリケーションプログラム2に
通知し、各アプリケーションプログラム2での処理の終
了時において、該アプリケーションプログラム2からオ
ペレーティングシステム(OS)1に該システムバッファ
11を返却する方式において、 各アプリケーションプログラム2内に、自分が使用し
ているシステムバッファ11に対するバッファ管理表21
と、 該バッファ管理表21に基づいて、オペレーティングシ
ステム(OS)1との間でシステムバッファの獲得,返却
を管理するローカルバッファ管理ルーチン22とを設け、 アプリケーションプログラム2からのシステムバッフ
ァに対する獲得要求がある毎に、又は、該アプリケーシ
ョンプログラム2での処理の終了時に、上記ローカルバ
ッファ管理ルーチン22が、上記バッファ管理表21を検索
して、アプリケーションプログラム2が要求しているシ
ステムバッファ11を確保し、該アプリケーションプログ
ラム2が使用していないシステムバッファ11をオペレー
ティングシステム(OS)1に返却すると共に、 該バッファ管理表21に、アプリケーションプログラム
2が要求するシステムバッファ11が存在しないときに限
り、該ローカルバッファ管理ルーチン22がオペレーティ
ングシステム(OS)1にシステムバッファ11の獲得の要
求を生起するように構成する。
〔作用〕
即ち、本発明によれば、例えば、各アプリケーション
プログラム毎に、バッファ管理表と,該バッファ管理表
を参照してシステムバッファの使用状況を管理するロー
カルバッファ管理ルーチンとを設け、アプリケーション
プログラム内でシステムバッファ獲得の要求が発生した
場合、又は、該アプリケーションプログラムの処理が終
了した場合には、該ローカルバッファ管理ルーチンを介
してオペレーティングシステム(OS)に処理を引き渡し
を行うようにする。
ローカルバッファ管理ルーチンは、アプリケーション
プログラムから起動がある毎に、該起動条件に基づい
て、上記バッファ管理表を検索して、アプリケーション
プログラムが要求しているサイズのシステムバッファが
有れば、例えば、フラグを立てて該システムバッファを
確保し、アプリケーションプログラムが要求するサイズ
に合わないシステムバッファが残っていると、未使用と
認識してオペレーティングシステム(OS)に返却する。
又、該アプリケーションプログラムの処理の終了時点
において、必ず当該ローカルバッファ管理ルーチンを起
動させるようする。
この場合にはシステムバッファに対する獲得要求はな
いので、該ローカルバッファ管理ルーチンは、残ってい
る全てのシステムバッファをオペレーティングシステム
(OS)に返却するように機能するので、アプリケーショ
ンプログラムにおいて、オペレーティングシステム(O
S)に対する使用済バッファの返却忘れが起こることが
なくなり、システムの信頼度が向上する効果がある。
〔実施例〕
以下本発明の実施例を図面によって詳述する。
前述の第1図が本発明のシステムバッファ管理方式の
原理を説明する図であり、(a)は構成例を示し、
(b)は管理動作の流れを示しており、第2図は本発明
の一実施例を示した図であって、(a)は本発明のロー
カルバッファ管理ルーチンを流れ図で示したものであ
り、(b)は本発明のバッファ管理表の一例を示したも
ので、第1図,第2図におけるバッファ管理表21と、ロ
ーカルバッファ管理ルーチン22と、該ローカルバッファ
管理ルーチン22とアプリケーションプログラムとの間の
インタフェース手段が本発明を実施するのに必要な手段
である。尚、全図を通して同じ符号は同じ対象物を示し
ている。
以下、第1図,第2図によって、本発明によるアプリ
ケーションプログラムでの動的バッファ管理方式を説明
する。
本発明においては、各アプリケーションプログラム2
は、ローカルバッファ管理ルーチン22を介してのみ、オ
ペレーティングシステム(OS)1と処理の受け渡しを行
うことができる。
先ず、オペレーティングシステム(OS)1からの指示
により、該アプリケーションプログラム2を構成してい
るタスクAが起動されると、該タスクAが実行する処理
に必要なシステムバッファを獲得する為に、本発明のロ
ーカルバッファ管理ルーチン(A)22を起動する。{第
1図(b)のLBM−A参照} 該起動されたローカルバッファ管理ルーチン22は、各
アプリケーションプログラム2毎に設けられているバッ
ファ管理表21を検索する。
該バッファ管理表21は、例えば、第2図(b)に示す
ように構成されており、それまでに、該アプリケーショ
ンプログラム2が使用していたシステムバッファ11につ
いて、そのバッファアドレスとバッファサイズと、保持
ビットを持っていて、少なくとも現在使用中,又は、該
アプリケーションプログラム2の処理が終了する迄その
内容を保持しておく必要のあるシステムバッファ11に対
する保持ビットが‘1'になっている。
この状態において、アプリケーションタスクA2から起
動されると、該タスクA2が獲得したいシステムバッファ
11のサイズ(S),他に獲得したいシステムバッファの
サイズ(O),オペレーティングシステム(OS)1に返
却しないで保持しておきたいシステムバッファ(該アプ
リケーションプログラムの処理中では壊されたくないデ
ータが入っているシステムバッファ)のアドレス(H)
等をパラメータ情報(引数)として受け取るので、この
パラメータ情報に基づいて、上記バッファ管理表21を検
索する。
今、起動を受けたときのパラメータ条件Aが、例え
ば、上記のパラメータ(S)のみであったとすると、該
条件Aについて検索し、該バッファ管理表21に該条件A
に該当するシステムバッファ11が有ると、該当システム
バッファ11の保持ビットを‘1'として確保し、その他の
システムバッファ11の保持ビットを‘0'として、オペレ
ーティングシステム(OS)1に返却するように動作す
る。{第2図(a)のステップ220,221,224,223,及び第
1図(b)の流れ図における‘LBM−A'の動作参照} そして、元のアプリケーションプログラム2に復帰す
るとき、該タスクA2が要求したシステムバッファ11のア
ドレス(復帰値)を持って復帰する。
若し、該条件Aを満足するシステムバッファ11が当該
バッファ管理表21に存在しないと認識された場合には、
オペレーティングシステム(OS)1にバッファの獲得の
依頼を行うと共に、それ迄持っていたシステムバッフ
ァ11の保持ビットを‘0'にして、オペレーティングシス
テム(OS)1に全て返却するように動作する。{第2図
(a)のステップ220,221,222,223,及び第1図(b)の
流れ図におけるLBM−Bの動作参照} 更に、本発明においては、当該アプリケーションプロ
グラム2の終了タスクの実行時において、必ず、上記ロ
ーカルバッファ管理ルーチン22を起動するようにする。
このときには当然のことながら、システムバッファ11
を獲得する要求は最早ないので、上記パラメータ(S,O,
H)情報は付加されていないことになり、当該ローカル
バッファ管理ルーチン22は、該バッファ管理表21に残っ
ている全てのシステムバッファ11の保持ビットを‘0'に
して、オペレーティングシステム(OS)1に返却するよ
うに機能する。
従って、アプリケーションプログラム2側で、使用済
のシステムバッファの返却を忘れることが起こり得ない
為、システムの信頼度が向上することになる。
尚、上記実施例においては、各アプリケーションプロ
グラム毎に、バッファ管理表と、ローカルバッファ管理
ルーチンを設ける例で説明したが、本発明の主旨から考
えて上記の方式に限定されるものではなく、上記バッフ
ァ管理表は各アプリケーションプログラム毎に設けて、
ローカルバッファ管理ルーチンは、各バッファ管理表に
共通に唯1個設けるようにしても良いことは云う迄もな
いことである。
このように、本発明は、アプリケーションプログラム
におけるシステムバッファに対する管理方式において、
例えば、アプリケーションプログラム毎に、バッファ管
理表と、アプリケーションプログラムからの要求に基づ
いて、該バッファ管理表を検索し、アプリケーションタ
スクの必要とするシステムバッファの確保,及び不要な
システムバッファの返却を管理するローカルバッファ管
理ルーチンとを設けて、アプリケーションタスクがオペ
レーティングシステム(OS)によって起動される毎に,
又は、該アプリケーションプログラムの処理が終了した
時点において、上記ローカルバッファ管理ルーチンが起
動され、該アプリケーションタスクからのパラメータ情
報に基づいて、該アプリケーションタスクが必要とする
システムバッファの確保、不要バッファのオペレーティ
ングシステム(OS)への返却を動的に行うようにしたと
ころに特徴がある。
〔発明の効果〕
以上、詳細に説明したように、本発明のアプリケーシ
ョンプログラムでの動的バッファ管理方式は、アプリケ
ーションプログラム内に、自分が使用しているシステム
バッファに対するバッファ管理表と、該バッファ管理表
に基づいて、オペレーティングシステム(OS)に対する
システムバッファの獲得,返却を管理するローカルバッ
ファ管理ルーチンとを設け、アプリケーションプログラ
ムからのシステムバッファに対する確保要求がある毎
に、又は、該アプリケーションプログラムでの処理の終
了時に、上記ローカルバッファ管理ルーチンが、上記バ
ッファ管理表を検索して、アプリケーションプログラム
が要求しているシステムバッファを確保し、該アプリケ
ーションプログラムが使用していないシステムバッファ
をオペレーティングシステム(OS)に返却すると共に、
該バッファ管理表に、アプリケーションプログラムが要
求するシステムバッファが存在しないときに限り、該ロ
ーカルバッファ管理ルーチンがオペレーティングシステ
ム(OS)にシステムバッファの獲得の要求を生起するよ
うにしたものであるので、アプリケーションプログラム
でのシステムバッファの返却忘れが起こることなく、シ
ステムウェイトを防止してシステムの信頼度を向上させ
ることができる効果がある。
【図面の簡単な説明】
第1図が本発明のシステムバッファ管理方式の原理を説
明する図, 第2図は本発明の一実施例を示した図, 第3図は従来のシステムバッファ管理方式を説明する
図, である。 図面において、 1はオペレーティングシステム(OS), 11はシステムバッファ, 2はアプリケーションプログラム, 21はバッファ管理表, 22はローカルバッファ管理ルーチン, はバッファ獲得通知処理, ,はバッファ返却処理, は終了処理,はタスク切替処理, はバッファ獲得要求処理, をそれぞれ示す。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】オペレーティングシステム(OS)(1)の
    管理の下に、各アプリケーションプログラム(2)が要
    求するシステムバッファ(11)を獲得して、該アプリケ
    ーションプログラム(2)に通知し、各アプリケーショ
    ンプログラム(2)での処理の終了時において、該アプ
    リケーションプログラム(2)からオペレーティングシ
    ステム(OS)(1)に該システムバッファ(11)を返却
    する方式において、 各アプリケーションプログラム(2)内に、自分が使用
    しているシステムバッファ(11)に対するバッファ管理
    表(21)と、 該バッファ管理表(21)に基づいて、オペレーティング
    システム(OS)(1)との間でシステムバッファの獲
    得,返却を管理するローカルバッファ管理ルーチン(2
    2)とを設け、 アプリケーションプログラム(2)からのシステムバッ
    ファに対する獲得要求がある毎に、又は、該アプリケー
    ションプログラム(2)での処理の終了時に、上記ロー
    カルバッファ管理ルーチン(22)が、上記バッファ管理
    表(21)を検索して、アプリケーションプログラム
    (2)が要求しているシステムバッファ(11)を確保
    し、該アプリケーションプログラム(2)が使用してい
    ないシステムバッファ(11)をオペレーティングシステ
    ム(OS)(1)に返却すると共に、 該バッファ管理表(21)に、アプリケーションプログラ
    ム(2)が要求するシステムバッファ(11)が存在しな
    いときに限り、該ローカルバッファ管理ルーチン(22)
    がオペレーティングシステム(OS)(1)にシステムバ
    ッファ(11)の獲得の要求を生起することを特徴とする
    アプリケーションプログラムでの動的バッファ管理方
    式。
  2. 【請求項2】上記ローカルバッファ管理ルーチン(22)
    を、各アプリケーションプログラム(2)毎に設けられ
    ているバッファ管理表(21)に共通に設けたことを特徴
    とする特許請求の範囲第1項に記載のアプリケーション
    プログラムでの動的バッファ管理方式。
JP62290985A 1987-11-18 1987-11-18 アプリケ―ションプログラムでの動的バッファ管理方式 Expired - Lifetime JP2535568B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62290985A JP2535568B2 (ja) 1987-11-18 1987-11-18 アプリケ―ションプログラムでの動的バッファ管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62290985A JP2535568B2 (ja) 1987-11-18 1987-11-18 アプリケ―ションプログラムでの動的バッファ管理方式

Publications (2)

Publication Number Publication Date
JPH01133143A JPH01133143A (ja) 1989-05-25
JP2535568B2 true JP2535568B2 (ja) 1996-09-18

Family

ID=17762970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62290985A Expired - Lifetime JP2535568B2 (ja) 1987-11-18 1987-11-18 アプリケ―ションプログラムでの動的バッファ管理方式

Country Status (1)

Country Link
JP (1) JP2535568B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328944A (ja) * 1995-05-31 1996-12-13 Nec Corp メモリ管理方式

Also Published As

Publication number Publication date
JPH01133143A (ja) 1989-05-25

Similar Documents

Publication Publication Date Title
US5093912A (en) Dynamic resource pool expansion and contraction in multiprocessing environments
US5748959A (en) Method of conducting asynchronous distributed collective operations
US6738974B1 (en) Apparatus and method for system resource object deallocation in a multi-threaded environment
US5687372A (en) Customer information control system and method in a loosely coupled parallel processing environment
US7100161B2 (en) Method and apparatus for resource access synchronization
JPH07191944A (ja) 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
US6862595B1 (en) Method and apparatus for implementing a shared message queue using a list structure
JPH04308961A (ja) 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
US6219689B1 (en) Parallel transaction processing system
US5682507A (en) Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records
US6721948B1 (en) Method for managing shared tasks in a multi-tasking data processing system
EP1014264B1 (en) A system and method for facilitating safepoint synchronization in a multithreaded computer system
US5790868A (en) Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
US5630133A (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
US20030018682A1 (en) Computer system and computer-readable record medium
JP2535568B2 (ja) アプリケ―ションプログラムでの動的バッファ管理方式
JPH05313923A (ja) 共有資源の排他制御装置
US6842900B2 (en) Information processing apparatus executing processing corresponding to new thread by reusing arrangement for previous thread
JP2008276322A (ja) 情報処理装置、情報処理システムおよび情報処理方法
KR19980049353A (ko) 분산 트랜잭션의 회복방법
JP4149619B2 (ja) 優先度変換システム
JP3021539B2 (ja) クライアント・サーバ方式におけるサーバ制御装置
JP2001014177A (ja) 非同期データ入出力処理方法およびそのプログラム記録媒体
JPS63265336A (ja) 共有資源の優先割り当て制御方式
JPH04167152A (ja) 空きメモリ管理方式

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080708

Year of fee payment: 12