JPH0481220B2 - - Google Patents
Info
- Publication number
- JPH0481220B2 JPH0481220B2 JP21764385A JP21764385A JPH0481220B2 JP H0481220 B2 JPH0481220 B2 JP H0481220B2 JP 21764385 A JP21764385 A JP 21764385A JP 21764385 A JP21764385 A JP 21764385A JP H0481220 B2 JPH0481220 B2 JP H0481220B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- output
- control block
- queue
- output control
- 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
Links
- 239000000872 buffer Substances 0.000 claims description 83
- 238000012545 processing Methods 0.000 claims description 59
- 238000000034 method Methods 0.000 claims description 17
- 238000007726 management method Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 17
- 238000002360 preparation method Methods 0.000 description 4
- 238000013523 data management Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Description
【発明の詳細な説明】
〔概要〕
入出力制御ブロツク、入出力使用キユー、入出
力待ちキユー、入出力アイドル・キユー等を用い
てバツフアの管理を行い、これにより、入出力時
における待ち時間の短縮を計ることが出来るバツ
フアの管理方式である。
力待ちキユー、入出力アイドル・キユー等を用い
てバツフアの管理を行い、これにより、入出力時
における待ち時間の短縮を計ることが出来るバツ
フアの管理方式である。
本発明は、BSAM又はBPAMにおけるバツフ
ア管理方式、特に入出力時における待ち時間を短
縮できるようになつたバツフア管理方式に関する
ものである。
ア管理方式、特に入出力時における待ち時間を短
縮できるようになつたバツフア管理方式に関する
ものである。
C言語においては文字単位の処理を行つてお
り、このために待機アクセス法を採用することが
出来ず、C言語処理系では基本アクセス法を採用
している。基本アクセス法では、データの入力を
行いたい場合、ユーザ・プログラムはREADマ
クロを発行し、次にCHECKマクロを発行してい
る。READマクロが発行されると、OSが入力デ
ータセツトから1ブロツクのデータを取り出し、
これをREADマクロで指定されたバツフアに格
納し、CHECKマクロが発行されると、OSが入
力処理の完了をチエツクし、エラーがなければユ
ーザ・プログラムに制御を戻している。同様に、
データの出力を行いたい場合には、ユーザ・プロ
グラムはWRITEマクロを発行し、次いで
CHECKマクロを発行する。従来のC言語処理系
では入出力バツフアが1個であつたが、1個の入
出力バツフアを用意し、1個のブロツクの読み取
りを行う度にREADマクロとCHECKマクロを発
行していると、入出力待ち時間が多くなり、効率
的に処理を行うことが出来なくなる。
り、このために待機アクセス法を採用することが
出来ず、C言語処理系では基本アクセス法を採用
している。基本アクセス法では、データの入力を
行いたい場合、ユーザ・プログラムはREADマ
クロを発行し、次にCHECKマクロを発行してい
る。READマクロが発行されると、OSが入力デ
ータセツトから1ブロツクのデータを取り出し、
これをREADマクロで指定されたバツフアに格
納し、CHECKマクロが発行されると、OSが入
力処理の完了をチエツクし、エラーがなければユ
ーザ・プログラムに制御を戻している。同様に、
データの出力を行いたい場合には、ユーザ・プロ
グラムはWRITEマクロを発行し、次いで
CHECKマクロを発行する。従来のC言語処理系
では入出力バツフアが1個であつたが、1個の入
出力バツフアを用意し、1個のブロツクの読み取
りを行う度にREADマクロとCHECKマクロを発
行していると、入出力待ち時間が多くなり、効率
的に処理を行うことが出来なくなる。
本発明は、入出力時における待ち時間を短縮で
きるようになつたバツフア管理方式を提供するこ
とを目的としている。
きるようになつたバツフア管理方式を提供するこ
とを目的としている。
そしてそのため本発明のバツフア管理方式は、
入出力使用キユー、入出力待ちキユー、入出力ア
イドル・キユー及び入出力待ちキユー終端指定部
を用意し、 入出力制御ブロツク及びバツフアの確保と初期
化が要求された場合には、入出力制御ブロツク及
びバツフアを確保しバツフアと入出力制御ブロツ
クとを1対1に対応つけると共に入出力制御ブロ
ツクを上記入出力アイドル・キユーにつなぎ、 オープン時での入力処理では、上記入出力アイ
ドル・キユーから1個の入出力制御ブロツクを取
り出し当該入出力制御ブロツクの持つデータ事象
制御ブロツクでREADマクロを発行した後に当
該入出力制御ブロツクを上記入出力待ちキユーに
つなぐ作業を、上記入出力アイドル・キユーにつ
ながれている入出力制御ブロツクがなくなるまで
行い、上記作業が終了した後に上記入出力待ちキ
ユーの第1番目の入出力制御ブロツクを取り出
し、CHECKマクロを発行した後に、当該入出力
制御ブロツクを上記入出力使用キユーにつなぐ作
業を行い、 オープン時での出力処理では、上記入出力アイ
ドル・キユーから1個の入出力制御ブロツクを取
り出し、当該入出力制御ブロツクを上記入出力使
用キユーにつないだ後に当該入出力制御ブロツク
に対応するバツフアをクリアし、 通常の入力処理では、上記入出力使用キユーに
つながれている使用済みの入出力制御ブロツクを
取り出し、READマクロを発行した後、当該入
出力制御ブロツクを上記入出力待ちキユーにつな
ぎ、次ぎに、上記入出力待ちキユーにつながれて
いる第1番目の入出力制御ブロツクを取り出し、
CHECKマクロを発行して入力動作を完了させた
後に当該入出力制御ブロツクを上記入出力使用キ
ユーにつなぎ、 通常の出力処理では、入出力使用キユーにつな
がれて且つ対応するバツフアに出力情報が格納済
みの入出力制御ブロツクでWRITEマクロを発行
し、当該入出力制御ブロツクを上記入出力待ちキ
ユーにつなぎ、次に、上記入出力アイドル・キユ
ーにつながれている入出力制御ブロツクが存在す
れば当該入出力制御ブロツクを上記入出力使用キ
ユーにつなぎ、上記入出力アイドル・キユーが空
であれば上記入出力待ちキユーにつながつている
入出力制御ブロツクを取り出し、当該入出力制御
ブロツクを上記入出力使用キユーにつないだ後、
CHECKマクロを発行して出力動作を完了させる ことを特徴とするものである。
入出力使用キユー、入出力待ちキユー、入出力ア
イドル・キユー及び入出力待ちキユー終端指定部
を用意し、 入出力制御ブロツク及びバツフアの確保と初期
化が要求された場合には、入出力制御ブロツク及
びバツフアを確保しバツフアと入出力制御ブロツ
クとを1対1に対応つけると共に入出力制御ブロ
ツクを上記入出力アイドル・キユーにつなぎ、 オープン時での入力処理では、上記入出力アイ
ドル・キユーから1個の入出力制御ブロツクを取
り出し当該入出力制御ブロツクの持つデータ事象
制御ブロツクでREADマクロを発行した後に当
該入出力制御ブロツクを上記入出力待ちキユーに
つなぐ作業を、上記入出力アイドル・キユーにつ
ながれている入出力制御ブロツクがなくなるまで
行い、上記作業が終了した後に上記入出力待ちキ
ユーの第1番目の入出力制御ブロツクを取り出
し、CHECKマクロを発行した後に、当該入出力
制御ブロツクを上記入出力使用キユーにつなぐ作
業を行い、 オープン時での出力処理では、上記入出力アイ
ドル・キユーから1個の入出力制御ブロツクを取
り出し、当該入出力制御ブロツクを上記入出力使
用キユーにつないだ後に当該入出力制御ブロツク
に対応するバツフアをクリアし、 通常の入力処理では、上記入出力使用キユーに
つながれている使用済みの入出力制御ブロツクを
取り出し、READマクロを発行した後、当該入
出力制御ブロツクを上記入出力待ちキユーにつな
ぎ、次ぎに、上記入出力待ちキユーにつながれて
いる第1番目の入出力制御ブロツクを取り出し、
CHECKマクロを発行して入力動作を完了させた
後に当該入出力制御ブロツクを上記入出力使用キ
ユーにつなぎ、 通常の出力処理では、入出力使用キユーにつな
がれて且つ対応するバツフアに出力情報が格納済
みの入出力制御ブロツクでWRITEマクロを発行
し、当該入出力制御ブロツクを上記入出力待ちキ
ユーにつなぎ、次に、上記入出力アイドル・キユ
ーにつながれている入出力制御ブロツクが存在す
れば当該入出力制御ブロツクを上記入出力使用キ
ユーにつなぎ、上記入出力アイドル・キユーが空
であれば上記入出力待ちキユーにつながつている
入出力制御ブロツクを取り出し、当該入出力制御
ブロツクを上記入出力使用キユーにつないだ後、
CHECKマクロを発行して出力動作を完了させる ことを特徴とするものである。
本発明はIOCB(I/O Control Block:入出
力制御ブロツク)と呼ばれるブロツク群を操作す
ることにより実現している。一つ一つのIOCBは
DECB(Data Event Control Block)を有して
いる。即ち、そのDECBを使つて行われる事象を
IOCBで制御する方式であると言える。IOCBの
数は一つのチヤンネル機番毎にDCB(Data
Control Block)のBUFNOパラメータで与えら
れた個数分存在し、BSAMやBPAMではNCPの
数でもある。本発明では、IOCB群を3つの事象
(使用中、入出力完了待ち,未使用)データ管理
する。即ちIOCB群は3つの何れかの状態を示す
ポインタでチエーンされ、状態の変化につれてキ
ユーイングされる場所が変化する。これらのポイ
ンタはCCTBL(Channel Control Table:チヤ
ネル制御テーブル)中に存在する。
力制御ブロツク)と呼ばれるブロツク群を操作す
ることにより実現している。一つ一つのIOCBは
DECB(Data Event Control Block)を有して
いる。即ち、そのDECBを使つて行われる事象を
IOCBで制御する方式であると言える。IOCBの
数は一つのチヤンネル機番毎にDCB(Data
Control Block)のBUFNOパラメータで与えら
れた個数分存在し、BSAMやBPAMではNCPの
数でもある。本発明では、IOCB群を3つの事象
(使用中、入出力完了待ち,未使用)データ管理
する。即ちIOCB群は3つの何れかの状態を示す
ポインタでチエーンされ、状態の変化につれてキ
ユーイングされる場所が変化する。これらのポイ
ンタはCCTBL(Channel Control Table:チヤ
ネル制御テーブル)中に存在する。
第1図はIOUQ,IOWQ,IOIQ,IOWQTを説
明するための図である。これらは下記のような意
味を有している。
明するための図である。これらは下記のような意
味を有している。
IOUQ(I/O Used Que:入出力使用キユー)
現在使用中のIOCBがキユーイングされる場所
である。ここには複数個のIOCBが連なることは
ない。
である。ここには複数個のIOCBが連なることは
ない。
IOWQ(I/O Wait Que:入出力待ちキユー)
入出力動作の未完了のIOCBがキユーイングさ
れる場所である。
れる場所である。
IOIQ(I/O Idle Que:入出力アイドル・キユ
ー) 全く未使用のIOCBがキユーイングされる場所
である。
ー) 全く未使用のIOCBがキユーイングされる場所
である。
IOWQT(I/O Wait Que Terminal:入出力
待ちキユー終端) IOIQの終端のIOCBを指す。
待ちキユー終端) IOIQの終端のIOCBを指す。
<IOCBとバツフアの確保と初期化>
IOCBとバツフアの全領域を一度に確保する。
IOCBはバツフアと1対1に対応する。IOCBは
DECBとポインタとより構成され、DECBはバツ
フアをポイントしている。第2図はIOCB及びバ
ツフアの確保と初期化を説明するための図であ
る。
IOCBはバツフアと1対1に対応する。IOCBは
DECBとポインタとより構成され、DECBはバツ
フアをポイントしている。第2図はIOCB及びバ
ツフアの確保と初期化を説明するための図であ
る。
<オープン処理>
(a) オープン処理での入力バツフア処理
オープン処理では、オープン対象物が入力デー
タセツトの場合、入力処理でバツフア制御を行う
ための準備処理を行う。準備処理では、使用する
バツフアすべてに対し、READマクロを発行し
入力の前処理を行う。未使用状態にあるバツフア
はIOIQというキユーにキユーイングされている
ため、そこからバツフアを取り出し、READマ
クロを発行する。READマクロを発行したバツ
フアは入力動作未完了の状態となるため、IOWQ
という入出力待ちキユーにキユーイングしてお
く。
タセツトの場合、入力処理でバツフア制御を行う
ための準備処理を行う。準備処理では、使用する
バツフアすべてに対し、READマクロを発行し
入力の前処理を行う。未使用状態にあるバツフア
はIOIQというキユーにキユーイングされている
ため、そこからバツフアを取り出し、READマ
クロを発行する。READマクロを発行したバツ
フアは入力動作未完了の状態となるため、IOWQ
という入出力待ちキユーにキユーイングしてお
く。
IOWQにキユーイングされている先頭のバツフ
アに対し、CHECKマクロを発行し、入力完了状
態にしておく。このバツフアは入出力使用キユー
であるIOUQにつないでおく。これにより、以降
ユーザから入力要求があつた場合、Cライブラリ
は常にIOUQにつながつているバツフアの中身を
ユーザに返せばよくなる。その他のキユーは一切
見る必要はない。
アに対し、CHECKマクロを発行し、入力完了状
態にしておく。このバツフアは入出力使用キユー
であるIOUQにつないでおく。これにより、以降
ユーザから入力要求があつた場合、Cライブラリ
は常にIOUQにつながつているバツフアの中身を
ユーザに返せばよくなる。その他のキユーは一切
見る必要はない。
すべてのキユーは先入れ先出し方法を採つてい
る。これにより、FEADマクロを発行した順に
CHECKマクロを発行しなければならないという
OSの仕様を実現している。
る。これにより、FEADマクロを発行した順に
CHECKマクロを発行しなければならないという
OSの仕様を実現している。
第3図及び第4図はオープンでの入力に関する
バツフア管理処理を説明するための図である。オ
ープン処理における入力バツフアの詳細な処理を
以下に示す。
バツフア管理処理を説明するための図である。オ
ープン処理における入力バツフアの詳細な処理を
以下に示す。
IOIQから一つずつIOCBを取り出し、その
DECBでREADマクロを発行後、そのIOCBを
IOWQにキユーイングする作業をIOCBが尽き
るまで行う。第3図はこの処理を説明するため
の図である。
DECBでREADマクロを発行後、そのIOCBを
IOWQにキユーイングする作業をIOCBが尽き
るまで行う。第3図はこの処理を説明するため
の図である。
IOWQの第1番目のIOCBを取り出し、
CHECKマクロを発行した後、それをIOUQに
つなぐ。第4図はこの処理を説明するための図
である。
CHECKマクロを発行した後、それをIOUQに
つなぐ。第4図はこの処理を説明するための図
である。
(b) オープン処理での出力バツフア処理
オープン処理では、オープン対象物が出力デー
タセツトの場合、出力処理でバツフア制御を行う
ための準備処理を行う。準備処理では、未使用状
態にあるバツフアをIOIQから一つ取り出し、バ
ツフアのクリアを行つていつでも出力可能な状態
にしておく。このバツフアを入出力使用キユーで
あるIOUQにつないでおく。これにより、以降ユ
ーザから出力要求があつた場合、Cライブラリは
常にIOUQにつながつているバツフアに書込みを
行えばよくなる。その他のキユーは一切見る必要
はない。
タセツトの場合、出力処理でバツフア制御を行う
ための準備処理を行う。準備処理では、未使用状
態にあるバツフアをIOIQから一つ取り出し、バ
ツフアのクリアを行つていつでも出力可能な状態
にしておく。このバツフアを入出力使用キユーで
あるIOUQにつないでおく。これにより、以降ユ
ーザから出力要求があつた場合、Cライブラリは
常にIOUQにつながつているバツフアに書込みを
行えばよくなる。その他のキユーは一切見る必要
はない。
第5図はオープンでの出力に関するバツフア管
理処理を説明するための図である。オープン処理
における出力バツフアの詳細な処理を以下に示
す。
理処理を説明するための図である。オープン処理
における出力バツフアの詳細な処理を以下に示
す。
IOIQから一つのIOCBを取り出し、これを
IOUQにつなぐ。次にそのIOCBに対応するバ
ツフアをクリアする。
IOUQにつなぐ。次にそのIOCBに対応するバ
ツフアをクリアする。
<入力処理>
入出力使用キユーにつながつているバツフアの
内容がすべて取り出された時点(そのバツフアに
対しユーザが読み込みを完了した時点)で、本処
理が行われる。
内容がすべて取り出された時点(そのバツフアに
対しユーザが読み込みを完了した時点)で、本処
理が行われる。
読込みが完了したバツフアは次の読込みの準備
のために前もつてREADマクロを発行し、入出
力動作未完了キユーであるIOWQの最後尾にバツ
フアをつなぐ。
のために前もつてREADマクロを発行し、入出
力動作未完了キユーであるIOWQの最後尾にバツ
フアをつなぐ。
次に入出力動作未完了状態にあるバツフア
(IOWQにキユーイングされている先頭のバツフ
ア)をIOWQより取り出し、CHECKマクロを発
行し、IOUQにつないでおく。IOUQにつながつ
ているバツフアは、いつでも読込み可能な状態に
しておく。
(IOWQにキユーイングされている先頭のバツフ
ア)をIOWQより取り出し、CHECKマクロを発
行し、IOUQにつないでおく。IOUQにつながつ
ているバツフアは、いつでも読込み可能な状態に
しておく。
第6図及び第7図は入力処理におけるバツフア
管理に関する処理を説明する図である。入力処理
における詳細な処理を以下に示す。
管理に関する処理を説明する図である。入力処理
における詳細な処理を以下に示す。
IOUQのIOCB(使用済み)を取り出し、
READマクロを発行した後、これをIOWQにつ
なぐ。第6図はこの処理を説明するための図で
ある。
READマクロを発行した後、これをIOWQにつ
なぐ。第6図はこの処理を説明するための図で
ある。
IOWQの第1番目のIOCBを取り出し、
CHECKマクロを発行して入力動作を完了させ
た後、これをIOUQにつなぐ。第7図はこの処
理を説明するための図である。
CHECKマクロを発行して入力動作を完了させ
た後、これをIOUQにつなぐ。第7図はこの処
理を説明するための図である。
<出力処理>
入出力使用キユーにつながつているバツフアに
書込みが完了した時点(そのバツフアに対しユー
ザが書込みを完了した時点)で、本処理が行われ
る。
書込みが完了した時点(そのバツフアに対しユー
ザが書込みを完了した時点)で、本処理が行われ
る。
書込みが終了したバツフアは取り敢えず
WRITEマクロを発行し、入出力動作未完了の状
態にしておく。このバツフアはIOWQの最後尾に
つないでおく。
WRITEマクロを発行し、入出力動作未完了の状
態にしておく。このバツフアはIOWQの最後尾に
つないでおく。
次に書込み可能なバツフアを用意するため、入
出力動作未完了状態にあるバツフア(IOWQの先
頭バツフア)を一つだけ取り出し、出力完了状態
にし、これをIOUQにつなぐ。
出力動作未完了状態にあるバツフア(IOWQの先
頭バツフア)を一つだけ取り出し、出力完了状態
にし、これをIOUQにつなぐ。
第8図ないし第10図は出力処理におけるバツ
フア管理に関する処理を説明する図である。出力
処理における詳細な処理を以下に示す。
フア管理に関する処理を説明する図である。出力
処理における詳細な処理を以下に示す。
IOUQにつながつているIOCB(バツフアには
出力する情報が格納済み)でWRITEマクロを
発行し、それをIOWQにつなぐ。第8図はこの
処理を説明するためのものである。
出力する情報が格納済み)でWRITEマクロを
発行し、それをIOWQにつなぐ。第8図はこの
処理を説明するためのものである。
IOIQにつながつてIOCBがあれば、それを
IOUQにつなぐ(第9図参照)。IOIQが空であ
れば、IOIQにつながれているIOCBを取り出
し、IOUQにつないだ後、CHECKマクロを発
行してその出力動作を完了させる。
IOUQにつなぐ(第9図参照)。IOIQが空であ
れば、IOIQにつながれているIOCBを取り出
し、IOUQにつないだ後、CHECKマクロを発
行してその出力動作を完了させる。
(第10図参照)
<EOD出口処理>
本方式は先読みまたは後書きを行い非同期処理
を行つている。EOD出口処理に制御が渡つてく
るのは、そのデータセツトに対し入力処理が完了
(データ読込み完了)の状態である。したがつて、
使用中のバツフアおよび仕掛け中のバツフア(入
出力動作未完了状態にあるバツフア)を初期状態
に戻しておく必要がある(OSの仕様)。
を行つている。EOD出口処理に制御が渡つてく
るのは、そのデータセツトに対し入力処理が完了
(データ読込み完了)の状態である。したがつて、
使用中のバツフアおよび仕掛け中のバツフア(入
出力動作未完了状態にあるバツフア)を初期状態
に戻しておく必要がある(OSの仕様)。
そのために、IOUQとIOWQにキユーイングさ
れているバツフアをすべてIOIQにつなぐ。
れているバツフアをすべてIOIQにつなぐ。
<SYNAD出口処理>
SYNAD出口に制御が渡つてくるのは、そのデ
ータセツトに対し何らかの異常が発生した場合で
ある。その場合、使用中のバツフアおよび仕掛り
中のバツフア(入出力動作未完了状態にあるバツ
フア)を初期状態に戻しておく必要がある(後始
末の処理として)。
ータセツトに対し何らかの異常が発生した場合で
ある。その場合、使用中のバツフアおよび仕掛り
中のバツフア(入出力動作未完了状態にあるバツ
フア)を初期状態に戻しておく必要がある(後始
末の処理として)。
そのために、IOUQとIOWQにキユーイングさ
れているバツフアをすべてIOIQにつなぐ。
れているバツフアをすべてIOIQにつなぐ。
<クローズ処理>
クローズ処理は、そのデータセツトに対する入
出力が完了した時点で行われる。したがつて、使
用バツフアに対する後処理もここで行う。
出力が完了した時点で行われる。したがつて、使
用バツフアに対する後処理もここで行う。
後処理は入力データセツトに対する処理と出力
データセツトに対する処理で異なる。
データセツトに対する処理で異なる。
(a) クローズ処理での入力バツフア処理
使用中のバツフアおよび仕掛中のバツフア(入
出力動作未完了状態にあるバツフア)を初期状態
に戻すため、IOIQ,IOWQにキユーイングされ
ているすべてのバツフアをIOIQにつなぐ。
出力動作未完了状態にあるバツフア)を初期状態
に戻すため、IOIQ,IOWQにキユーイングされ
ているすべてのバツフアをIOIQにつなぐ。
(b) クローズ処理での出力バツフア処理
仕掛中のバツフア(入出力動作未完了状態にあ
るバツフア)すべてに対し、CHECKマクロを発
行し入出力動作完了状態にする。入出力完了状態
にした後、後処理としてすべてのバツフアを初期
状態に戻しておく。
るバツフア)すべてに対し、CHECKマクロを発
行し入出力動作完了状態にする。入出力完了状態
にした後、後処理としてすべてのバツフアを初期
状態に戻しておく。
クローズ処理における出力バツフアの詳細な処
理を以下に示す。
理を以下に示す。
出力処理中であつたならば、IOCBを一つずつ
IOUQに取り出し、CHECKマクロを発行した後、
そのIOCBをIOIQにつなぐ。この操作をIOWQが
空になるまで繰り返す。入力処理中であつたなら
ば、全キユーをIOIQにつなぐ。
IOUQに取り出し、CHECKマクロを発行した後、
そのIOCBをIOIQにつなぐ。この操作をIOWQが
空になるまで繰り返す。入力処理中であつたなら
ば、全キユーをIOIQにつなぐ。
第11図はCソース・プログラム、Cライブラ
リに於けるバツフア管理及びOSデータ管理ルー
チンの関係を示す図である。例えば、 f1=fopen(“A”,“r,bufno(3)); において、f1はフアイル・ポインタ、fopenは関
数、Aはフアイル、rは読込みのオープン・モー
ドを示すオプシヨン、bufnoはバツフア数をそれ
ぞれ示している。また、ptrはポインタ、szはサ
イズ、nは個数をそれぞれ示している。Cソー
ス・プログラムに対応するロード・モジユールを
作成する際に、例えばCソース・プログラムの中
にの文があると、Cライブラリの中のの文が
呼出され、リンクされる。また、READや
WRITE、CHECKマクロが発行されると、OSの
データ管理ルーチンに制御が渡り、OSが指示さ
れた処理を行う。
リに於けるバツフア管理及びOSデータ管理ルー
チンの関係を示す図である。例えば、 f1=fopen(“A”,“r,bufno(3)); において、f1はフアイル・ポインタ、fopenは関
数、Aはフアイル、rは読込みのオープン・モー
ドを示すオプシヨン、bufnoはバツフア数をそれ
ぞれ示している。また、ptrはポインタ、szはサ
イズ、nは個数をそれぞれ示している。Cソー
ス・プログラムに対応するロード・モジユールを
作成する際に、例えばCソース・プログラムの中
にの文があると、Cライブラリの中のの文が
呼出され、リンクされる。また、READや
WRITE、CHECKマクロが発行されると、OSの
データ管理ルーチンに制御が渡り、OSが指示さ
れた処理を行う。
以上の説明から明らかなように、本発明によれ
ば、入出力の待ち時間を短縮できること及び何個
のバツフアを使用しても個数によつて処理が変わ
ることがないこと等の効果を奏することが出来
る。
ば、入出力の待ち時間を短縮できること及び何個
のバツフアを使用しても個数によつて処理が変わ
ることがないこと等の効果を奏することが出来
る。
第1図はIOUQ,IOWQ,IOIQ,IOWQTを説
明するための図、第2図はIOCB及びバツフアの
確保と初期化を説明するための図、第3図及び第
4図はオープンでの入力処理を説明するための
図、第5図はオープンでの出力処理を説明するた
めの図、第6図及び第7図は入力処理を説明する
図、第8図ないし第10図は出力処理を説明する
図、第11図はCソース・プログラム、Cライブ
ラリに於けるバツフア管理及びOSデータ管理ル
ーチンの関係を示す図である。 IOCB…入出力制御ブロツク、CCTBL…チヤ
ネル制御テーブル、IOUQ…入出力使用キユー、
IOWQ…入出力待ちキユー、IOIQ…入出力アイ
ドル・キユー、IOWQT…入出力待ちキユー終
端。
明するための図、第2図はIOCB及びバツフアの
確保と初期化を説明するための図、第3図及び第
4図はオープンでの入力処理を説明するための
図、第5図はオープンでの出力処理を説明するた
めの図、第6図及び第7図は入力処理を説明する
図、第8図ないし第10図は出力処理を説明する
図、第11図はCソース・プログラム、Cライブ
ラリに於けるバツフア管理及びOSデータ管理ル
ーチンの関係を示す図である。 IOCB…入出力制御ブロツク、CCTBL…チヤ
ネル制御テーブル、IOUQ…入出力使用キユー、
IOWQ…入出力待ちキユー、IOIQ…入出力アイ
ドル・キユー、IOWQT…入出力待ちキユー終
端。
Claims (1)
- 【特許請求の範囲】 1 入出力使用キユー、入出力待ちキユー、入出
力アイドル・キユー及び入出力待ちキユー終端指
定部を用意し、 入出力制御ブロツク及びバツフアの確保と初期
化が要求された場合には、入出力制御ブロツク及
びバツフアを確保しバツフアと入出力制御ブロツ
クとを1対1に対応つけると共に入出力制御ブロ
ツクを上記入出力アイドル・キユーにつなぎ、 オープン時での入力処理では、上記入出力アイ
ドル・キユーから1個の入出力制御ブロツクを取
り出し当該入出力制御ブロツクの持つデータ事象
制御ブロツクでREADマクロを発行した後に当
該入出力制御ブロツクを上記入出力待ちキユーに
つなぐ作業を、上記入出力アイドル・キユーにつ
ながれている入出力制御ブロツクがなくなるまで
行い、上記作業が終了した後に上記入出力待ちキ
ユーの第1番目の入出力制御ブロツクを取り出
し、CHECKマクロを発行した後に、当該入出力
制御ブロツクを上記入出力使用キユーにつなぐ作
業を行い、 オープン時での出力処理では、上記入出力アイ
ドル・キユーから1個の入出力制ブロツクを取り
出し、当該入出力制御ブロツクを上記入出力使用
キユーにつないだ後に当該入出力制御ブロツクに
対応するバツフアをクリアし、 通常の入力処理では、上記入出力使用キユーに
つながれている使用済みの入出力制御ブロツクを
取り出し、READマクロを発行した後、当該入
出力制御ブロツクを上記入出力待ちキユーにつな
ぎ、次ぎに、上記入出力待ちキユーにつながれて
いる第1番目の入出力制御ブロツクを取り出し、
CHECKマクロを発行して入力動作を完了させた
後に当該入出力制御ブロツクを上記入出力使用キ
ユーにつなぎ、 通常の出力処理では、入出力使用キユーにつな
がれており且つ対応するバツフアに出力情報が格
納済みの入出力制御ブロツクでWRITEマクロを
発行し、当該入出力制御ブロツクを上記入出力待
ちキユーにつなぎ、次に、上記入出力アイドル・
キユーにつながれている入出力制御ブロツクが存
在すれば当該入出力制御ブロツクを上記入出力使
用キユーにつなぎ、上記入出力アイドル・キユー
が空であれば上記入出力待ちキユーにつながつて
いる入出力制御ブロツクを取り出し、当該入出力
制御ブロツクを上記入出力使用キユーにつないだ
後、CHECKマクロを発行して出力動作を完了さ
せる ことを特徴とするバツフア管理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21764385A JPS6277662A (ja) | 1985-09-30 | 1985-09-30 | バッファ管理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21764385A JPS6277662A (ja) | 1985-09-30 | 1985-09-30 | バッファ管理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6277662A JPS6277662A (ja) | 1987-04-09 |
JPH0481220B2 true JPH0481220B2 (ja) | 1992-12-22 |
Family
ID=16707472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21764385A Granted JPS6277662A (ja) | 1985-09-30 | 1985-09-30 | バッファ管理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6277662A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5321824A (en) * | 1991-04-22 | 1994-06-14 | International Business Machines Corporation | Accessing last recorded data in a continuation chain |
-
1985
- 1985-09-30 JP JP21764385A patent/JPS6277662A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS6277662A (ja) | 1987-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960003413B1 (ko) | 데이타 처리 시스템 | |
US7844752B2 (en) | Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions | |
US5892968A (en) | Multimedia data transferring method | |
JPS61190638A (ja) | 仮想計算機のフアイル制御方式 | |
JPS60176143A (ja) | プログラム呼び出し装置 | |
JPH0833799B2 (ja) | データ入出力制御方式 | |
US6222846B1 (en) | Method and system for employing a non-masking interrupt as an input-output processor interrupt | |
JPH0340868B2 (ja) | ||
JPH0481220B2 (ja) | ||
US20070216927A1 (en) | System and method for an improved merge utility | |
JPH0895810A (ja) | バッチジョブ実行方式 | |
JPH04355818A (ja) | データ入出力制御装置 | |
JP2615046B2 (ja) | レコード追加処理方法 | |
JP3182279B2 (ja) | データ転送方法 | |
Press | A concurrent PASCAL spooling program | |
JP2634908B2 (ja) | 情報処理装置 | |
Dawes | A simple network interacting programs' executive (SNIPE) | |
JPS62236061A (ja) | Cpu間通信方式 | |
JPS6237411B2 (ja) | ||
JPS59151242A (ja) | デ−タ駆動型計算機の待ち行列制御方式 | |
JPH01205359A (ja) | 入出力装置の制御方式 | |
JPS60254328A (ja) | デ−タ処理システムにおけるタスク処理方式 | |
Phipps | Modular application systems for hotels | |
JPS60100239A (ja) | 共用フアイル制御システム | |
JPH02232735A (ja) | トランザクションの待合せ方式 |