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
Application number
JP21764385A
Other languages
English (en)
Other versions
JPS6277662A (ja
Inventor
Hitomi Terada
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 JP21764385A priority Critical patent/JPS6277662A/ja
Publication of JPS6277662A publication Critical patent/JPS6277662A/ja
Publication of JPH0481220B2 publication Critical patent/JPH0481220B2/ja
Granted legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔概要〕 入出力制御ブロツク、入出力使用キユー、入出
力待ちキユー、入出力アイドル・キユー等を用い
てバツフアの管理を行い、これにより、入出力時
における待ち時間の短縮を計ることが出来るバツ
フアの管理方式である。
〔産業上の利用分野〕
本発明は、BSAM又はBPAMにおけるバツフ
ア管理方式、特に入出力時における待ち時間を短
縮できるようになつたバツフア管理方式に関する
ものである。
〔従来技術と問題点〕
C言語においては文字単位の処理を行つてお
り、このために待機アクセス法を採用することが
出来ず、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マクロを発行して出力動作を完了させる ことを特徴とするものである。
〔発明の実施例〕
本発明は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:チヤ
ネル制御テーブル)中に存在する。
第1図はIOUQ,IOWQ,IOIQ,IOWQTを説
明するための図である。これらは下記のような意
味を有している。
IOUQ(I/O Used Que:入出力使用キユー) 現在使用中のIOCBがキユーイングされる場所
である。ここには複数個のIOCBが連なることは
ない。
IOWQ(I/O Wait Que:入出力待ちキユー) 入出力動作の未完了のIOCBがキユーイングさ
れる場所である。
IOIQ(I/O Idle Que:入出力アイドル・キユ
ー) 全く未使用のIOCBがキユーイングされる場所
である。
IOWQT(I/O Wait Que Terminal:入出力
待ちキユー終端) IOIQの終端のIOCBを指す。
<IOCBとバツフアの確保と初期化> IOCBとバツフアの全領域を一度に確保する。
IOCBはバツフアと1対1に対応する。IOCBは
DECBとポインタとより構成され、DECBはバツ
フアをポイントしている。第2図はIOCB及びバ
ツフアの確保と初期化を説明するための図であ
る。
<オープン処理> (a) オープン処理での入力バツフア処理 オープン処理では、オープン対象物が入力デー
タセツトの場合、入力処理でバツフア制御を行う
ための準備処理を行う。準備処理では、使用する
バツフアすべてに対し、READマクロを発行し
入力の前処理を行う。未使用状態にあるバツフア
はIOIQというキユーにキユーイングされている
ため、そこからバツフアを取り出し、READマ
クロを発行する。READマクロを発行したバツ
フアは入力動作未完了の状態となるため、IOWQ
という入出力待ちキユーにキユーイングしてお
く。
IOWQにキユーイングされている先頭のバツフ
アに対し、CHECKマクロを発行し、入力完了状
態にしておく。このバツフアは入出力使用キユー
であるIOUQにつないでおく。これにより、以降
ユーザから入力要求があつた場合、Cライブラリ
は常にIOUQにつながつているバツフアの中身を
ユーザに返せばよくなる。その他のキユーは一切
見る必要はない。
すべてのキユーは先入れ先出し方法を採つてい
る。これにより、FEADマクロを発行した順に
CHECKマクロを発行しなければならないという
OSの仕様を実現している。
第3図及び第4図はオープンでの入力に関する
バツフア管理処理を説明するための図である。オ
ープン処理における入力バツフアの詳細な処理を
以下に示す。
IOIQから一つずつIOCBを取り出し、その
DECBでREADマクロを発行後、そのIOCBを
IOWQにキユーイングする作業をIOCBが尽き
るまで行う。第3図はこの処理を説明するため
の図である。
IOWQの第1番目のIOCBを取り出し、
CHECKマクロを発行した後、それをIOUQに
つなぐ。第4図はこの処理を説明するための図
である。
(b) オープン処理での出力バツフア処理 オープン処理では、オープン対象物が出力デー
タセツトの場合、出力処理でバツフア制御を行う
ための準備処理を行う。準備処理では、未使用状
態にあるバツフアをIOIQから一つ取り出し、バ
ツフアのクリアを行つていつでも出力可能な状態
にしておく。このバツフアを入出力使用キユーで
あるIOUQにつないでおく。これにより、以降ユ
ーザから出力要求があつた場合、Cライブラリは
常にIOUQにつながつているバツフアに書込みを
行えばよくなる。その他のキユーは一切見る必要
はない。
第5図はオープンでの出力に関するバツフア管
理処理を説明するための図である。オープン処理
における出力バツフアの詳細な処理を以下に示
す。
IOIQから一つのIOCBを取り出し、これを
IOUQにつなぐ。次にそのIOCBに対応するバ
ツフアをクリアする。
<入力処理> 入出力使用キユーにつながつているバツフアの
内容がすべて取り出された時点(そのバツフアに
対しユーザが読み込みを完了した時点)で、本処
理が行われる。
読込みが完了したバツフアは次の読込みの準備
のために前もつてREADマクロを発行し、入出
力動作未完了キユーであるIOWQの最後尾にバツ
フアをつなぐ。
次に入出力動作未完了状態にあるバツフア
(IOWQにキユーイングされている先頭のバツフ
ア)をIOWQより取り出し、CHECKマクロを発
行し、IOUQにつないでおく。IOUQにつながつ
ているバツフアは、いつでも読込み可能な状態に
しておく。
第6図及び第7図は入力処理におけるバツフア
管理に関する処理を説明する図である。入力処理
における詳細な処理を以下に示す。
IOUQのIOCB(使用済み)を取り出し、
READマクロを発行した後、これをIOWQにつ
なぐ。第6図はこの処理を説明するための図で
ある。
IOWQの第1番目のIOCBを取り出し、
CHECKマクロを発行して入力動作を完了させ
た後、これをIOUQにつなぐ。第7図はこの処
理を説明するための図である。
<出力処理> 入出力使用キユーにつながつているバツフアに
書込みが完了した時点(そのバツフアに対しユー
ザが書込みを完了した時点)で、本処理が行われ
る。
書込みが終了したバツフアは取り敢えず
WRITEマクロを発行し、入出力動作未完了の状
態にしておく。このバツフアはIOWQの最後尾に
つないでおく。
次に書込み可能なバツフアを用意するため、入
出力動作未完了状態にあるバツフア(IOWQの先
頭バツフア)を一つだけ取り出し、出力完了状態
にし、これをIOUQにつなぐ。
第8図ないし第10図は出力処理におけるバツ
フア管理に関する処理を説明する図である。出力
処理における詳細な処理を以下に示す。
IOUQにつながつているIOCB(バツフアには
出力する情報が格納済み)でWRITEマクロを
発行し、それをIOWQにつなぐ。第8図はこの
処理を説明するためのものである。
IOIQにつながつてIOCBがあれば、それを
IOUQにつなぐ(第9図参照)。IOIQが空であ
れば、IOIQにつながれているIOCBを取り出
し、IOUQにつないだ後、CHECKマクロを発
行してその出力動作を完了させる。
(第10図参照) <EOD出口処理> 本方式は先読みまたは後書きを行い非同期処理
を行つている。EOD出口処理に制御が渡つてく
るのは、そのデータセツトに対し入力処理が完了
(データ読込み完了)の状態である。したがつて、
使用中のバツフアおよび仕掛け中のバツフア(入
出力動作未完了状態にあるバツフア)を初期状態
に戻しておく必要がある(OSの仕様)。
そのために、IOUQとIOWQにキユーイングさ
れているバツフアをすべてIOIQにつなぐ。
<SYNAD出口処理> SYNAD出口に制御が渡つてくるのは、そのデ
ータセツトに対し何らかの異常が発生した場合で
ある。その場合、使用中のバツフアおよび仕掛り
中のバツフア(入出力動作未完了状態にあるバツ
フア)を初期状態に戻しておく必要がある(後始
末の処理として)。
そのために、IOUQとIOWQにキユーイングさ
れているバツフアをすべてIOIQにつなぐ。
<クローズ処理> クローズ処理は、そのデータセツトに対する入
出力が完了した時点で行われる。したがつて、使
用バツフアに対する後処理もここで行う。
後処理は入力データセツトに対する処理と出力
データセツトに対する処理で異なる。
(a) クローズ処理での入力バツフア処理 使用中のバツフアおよび仕掛中のバツフア(入
出力動作未完了状態にあるバツフア)を初期状態
に戻すため、IOIQ,IOWQにキユーイングされ
ているすべてのバツフアをIOIQにつなぐ。
(b) クローズ処理での出力バツフア処理 仕掛中のバツフア(入出力動作未完了状態にあ
るバツフア)すべてに対し、CHECKマクロを発
行し入出力動作完了状態にする。入出力完了状態
にした後、後処理としてすべてのバツフアを初期
状態に戻しておく。
クローズ処理における出力バツフアの詳細な処
理を以下に示す。
出力処理中であつたならば、IOCBを一つずつ
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が指示さ
れた処理を行う。
〔発明の効果〕
以上の説明から明らかなように、本発明によれ
ば、入出力の待ち時間を短縮できること及び何個
のバツフアを使用しても個数によつて処理が変わ
ることがないこと等の効果を奏することが出来
る。
【図面の簡単な説明】
第1図は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に対応つけると共に入出力制御ブロ
    ツクを上記入出力アイドル・キユーにつなぎ、 オープン時での入力処理では、上記入出力アイ
    ドル・キユーから1個の入出力制御ブロツクを取
    り出し当該入出力制御ブロツクの持つデータ事象
    制御ブロツクでREADマクロを発行した後に当
    該入出力制御ブロツクを上記入出力待ちキユーに
    つなぐ作業を、上記入出力アイドル・キユーにつ
    ながれている入出力制御ブロツクがなくなるまで
    行い、上記作業が終了した後に上記入出力待ちキ
    ユーの第1番目の入出力制御ブロツクを取り出
    し、CHECKマクロを発行した後に、当該入出力
    制御ブロツクを上記入出力使用キユーにつなぐ作
    業を行い、 オープン時での出力処理では、上記入出力アイ
    ドル・キユーから1個の入出力制ブロツクを取り
    出し、当該入出力制御ブロツクを上記入出力使用
    キユーにつないだ後に当該入出力制御ブロツクに
    対応するバツフアをクリアし、 通常の入力処理では、上記入出力使用キユーに
    つながれている使用済みの入出力制御ブロツクを
    取り出し、READマクロを発行した後、当該入
    出力制御ブロツクを上記入出力待ちキユーにつな
    ぎ、次ぎに、上記入出力待ちキユーにつながれて
    いる第1番目の入出力制御ブロツクを取り出し、
    CHECKマクロを発行して入力動作を完了させた
    後に当該入出力制御ブロツクを上記入出力使用キ
    ユーにつなぎ、 通常の出力処理では、入出力使用キユーにつな
    がれており且つ対応するバツフアに出力情報が格
    納済みの入出力制御ブロツクでWRITEマクロを
    発行し、当該入出力制御ブロツクを上記入出力待
    ちキユーにつなぎ、次に、上記入出力アイドル・
    キユーにつながれている入出力制御ブロツクが存
    在すれば当該入出力制御ブロツクを上記入出力使
    用キユーにつなぎ、上記入出力アイドル・キユー
    が空であれば上記入出力待ちキユーにつながつて
    いる入出力制御ブロツクを取り出し、当該入出力
    制御ブロツクを上記入出力使用キユーにつないだ
    後、CHECKマクロを発行して出力動作を完了さ
    せる ことを特徴とするバツフア管理方式。
JP21764385A 1985-09-30 1985-09-30 バッファ管理方式 Granted JPS6277662A (ja)

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)

* Cited by examiner, † Cited by third party
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

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) トランザクションの待合せ方式