私が関わった数々のオウンコーディング(プロローグ)

By 岡田 - Posted: 2013/09/11 Last updated: 2013/09/18 - Leave a Comment
印刷用ページの表示 印刷用ページの表示
内容が前後致しましたが、私がオウンコーディングに関して記事を書く理由について初めにご説明致します

MVSも同様と思いますが、OSの出口をユーザ自身が加工できるオウンコーディングが存在している理由として私は2つあげられると考えます

1)OSの機能がユーザの期待不足の場合に応じるための加工
  (OSがユーザ側に歩み寄る)
2)ユーザの意識や環境がOSを含むシステムを使うときの段差を解消させる
  (ユーザの環境をOSに合わせていく)

コーディングする人間の立場がOS側として考えるか(1)、ユーザ側として考えるか(2)という風に思うと分かりやすいかもしれません

概念図を以下に示します
uoc概念図

今回はOSのオウンコーディングに限定していますが、オウンコーディングを提供しているアプリケーションもあります


こうして2つの理由を考えると、オウンコーディングは「ユーザとOS間の緩衝材」のようにも思えてくるのは私だけでしょうか?

オウンコーディングは原則、アセンブラでコーディングします。
オウンコーディングがCALLされる契機は用途によってさまざまですが、CALLされる毎にメモリにロードされCPUが仕事をする事になりますので、高級言語でコーディングをしていては、モジュールサイズが大きくなってしまうこと。
 そして、OSの一部としてコーディングする訳ですからOSが提供する各種マクロも意識する必要が出てきますが、OSが提供する各種マクロ(WTOやTPUTマクロなど)の説明(マニュアル)はアセンブラでコーディングされる事を前提に書かれている為です

*オウンコーディング間やユーザとオウンコーディングとの情報連絡
OSが用意しているオウンコーディング用の情報連絡領域として”OCPA”,”CVT”,”BCT”があります。それぞれについて説明致します

OCPA・・・オウンコーディングパラメタエリア
オウンコーディングがCALLされた時、引数として参照できる領域です
領域の大きさは144バイトと少ない半面、ほぼすべてのオウンコーディングがアクセス可能です
疎結合マルチプロセッサ、パラレルプロセッサの場合、ジョブの実行されるシステムと出力するシステムが異なる場合があります。OCPA自身はジョブが入力されたシステムで生成され、実行されたシステム、出力(SYSOUT)されたシステムへとジョブと一緒に転送されます


CVT・・・・コンバートテーブル
4バイトと非常に小さな領域ですが、オウンコーディング用作業領域として使うことを認可されています。
ここの領域は実メモリの特定バイトに確保されるため、ユーザ側で自由に活用ができます。4バイトの中に情報を詰めるよりは、OS起動後に別タスクでGETMAINして共通領域の先頭アドレスを格納しておくと、他のオウンコーディングが当該領域を使うことができるというとても自由度の高い領域です

但しOCPAとは異なり、システム固定です。他システムに転送する事はできません

私が関わったオウンコーディングでは、ここの領域にセンタニュース(TSSのLOGON時やプリンタ出力のセパレータに出力)の情報を格納したり、CONSOLEコマンドなど特権命令を許可する対象ユーザを格納して運用中でもシステム管理者が自由にユーザの追加、削除が行えるようにしていました

オウンコーディングは運用中に変更する事はできません。変更後、再IPLをしないと適用されません。また、OSの一部として動作するため、頻繁に修正をしたくないユーザも多いようです。
CVTを活用することで、メモリを通じてユーザがオウンコーディングに情報を伝えることが可能なので、積極的にCVTを使っていただきたいと思います。

上記2つの内容(センタニュース出力=JDJUTIMLとCONSOLEコマンド=JETUTCON)については後日掲載致します

BCT・・・予実算テーブル
予実算(課金)に関連した情報が格納される288バイトのテーブルで、一部のオウンコーディング(JDSUで始まるJSS3オウンコーディング)しか参照、更新できない領域です
Posted in 日立VOS3:オウンコーディングによるシステムのカスタマイズ • • Top Of Page