System/360 オペレーティングシステム
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/08/12 02:29 UTC 版)
「IBMメインフレーム用オペレーティングシステムの歴史」の記事における「System/360 オペレーティングシステム」の解説
1960年代初頭までIBMのローエンドシステムとハイエンドシステムには互換性がなく、プログラムを別のシステムに移植するのは難しく、各システムはディスクドライブなどの周辺機器も異なっていることが多かった。このためIBMではハードとソフトの設計、開発、製造のコストが高騰し、顧客からのアップグレードの要望に応えきれなくなり、そのために売り上げが頭打ちになった。同社が1964年に発売したSystem/360は全てのマシンで共通の周辺機器を使用でき、プログラムもほぼ共有できることが売りとなった。 元々IBMはバッチ処理に特化したOSであるOS/360だけをSystem/360に提供するつもりだった。後によりシンプルなバッチ処理専用OSであるDOS/360を開発しており、これを開発した理由には主に以下の2つがあった。 System/360のモデルのうち、メモリが少ない小型モデルにはOS/360は大きすぎた。 OS/360の開発が予想以上に遅れており、System/360のハードウェアの売り上げが落ちて市場が崩壊することを防ぐため、隙間を埋めるラインナップの1つとしてDOS/360を提供した。別のラインナップとしてはBOS/360(小型機用のBasic Operating System)とTOS/360(テープドライブだけしか装備していない機種用のTape Operating System)があった。 System/360のOSはこれまでにIBMが開発したOSの中でも特に複雑で、それには以下のような理由があった。 マルチタスクのサポート。ディスクの読み込みなどのI/O処理が完了するのを現在のアプリケーションがブロック処理で待っている間に別の動作中のアプリケーションへ切り替える。マルチタスクに対応しなければこのクラスのCPUが持つ高い処理能力のほとんどを遅いI/O操作に対する待ち時間で浪費してしまう。従ってシステムを司る心臓部としてOSを位置づけ、アプリケーションに対する正当な要求に全て応じつつ、もしアプリケーションがクラッシュしたり永久ループなどの誤動作が生じた場合は、同時に動作している別のアプリケーションに影響を与えないよう対処することが求められた。 様々なクラスのマシンをサポート。メモリ搭載量が16KBの下位モデルから1MBの上位モデルに対応し、秒間1000命令から50万命令までの命令処理速度に対応した。 様々なアプリケーションの要求に応える。例えばあるアプリケーションではファイルを先頭から最後まで読むだけでよいが、別のアプリケーションでは巨大なファイルの特定のレコードに高速にランダムアクセスする必要があり、また別のアプリケーションでは処理時間のほとんどを計算に費やしておりディスクをほとんど読み書きしなかった。 こうした厳しい要求によりOS/360や他のSystem/360用ソフトウェアの開発は当時としては前人未到の大規模プロジェクトとなり、間もなくIBMは問題に直面し、膨大な時間と費用をかけて大量のバグに対処しなければならなくなった。PCがなくクロスコンパイラやエミュレーターもない当時の開発環境では、System/360のOSを実機上で開発してテストしなければならず、問題は大きくなる一方で、IBMはBasic Programming Support / 360 (BPS/360)を先に開発しなければならなくなった。BPSはDOS/360やOS/360を開発するのに必要なツールを開発するのに使われ、FORTRANとCOBOLのコンパイラやソートなどのユーティリティ及びこれら全てをビルドするのに必要だったアセンブラなどのツールがあり、これらのツールはDOS/360やOS/360にも含まれた。 IBMの競合他社はOS/360とSystem/360の開発が遅れたことを利用し、IBM市場の最大の弱点をシステムと捉え、各社ともOSを発表した。IBMはSystem/360のセールスが失敗するのを防ぐため4つの間に合わせのOSを繋ぎでリリースした。 Basic Operating System / 360 (BOS/360) - ディスクドライブまたはテープドライブから起動し、テープドライブと数種類のディスクドライブをサポートする。このシステムはベータテストのユーザーに提供されたもので、DOS/360の初期バージョンと考えることもできる。 TOS/360 - テープドライブを装備し、ディスクドライブを装備していないIBM 1401シリーズのコンピュータを持つユーザーへのアップグレードパスとして提供するべく開発された。 DOS/360 - BOS/360やTOS/360に向けたアプリケーションを開発していたIBMのスモールビジネスコンピュータ部門の開発者がビルドしたもので、その後広く普及して主力のOSとなったz/VSEの祖先。 Operating System/360 (OS/360)で、マルチタスクをサポートしないPrimary Control Program (PCP)の構成で固定されたもの。 IBMはS/360-67の発表と同時に、360/67の新しい仮想メモリ機能を活用したタイムシェアリングOSのTSS/360も発表した。TSS/360のリリースは遅れ、初期バージョンは遅くて不安定だった。当時既にIBMのケンブリッジ科学センターがCP-67を別途開発しており、タイムシェアリング機能としてIBMが一部の大口顧客向けに無保証ながら提供しているほどに上手く動作していた。CP-67はVM/370にアップグレードし、最終的にはz/VMとなった。IBMはTSS/360を導入したユーザーにアップグレードパスのTSS/370 PRPQを3度リリースした後にこれを放棄した。 System/360 OSを開発する際に得られた教訓からソフトウェア工学を学問的に整備しようとする機運が高まり、ソフトウェア開発やプロジェクトマネジメントを科学的に取り扱うようになった。System/360のプロジェクト全体を監督し、後にOS/360の特定パートの責任者となったシニアプロジェクトマネージャーのフレデリック・ブルックスは、プロジェクト中に遭遇した問題や学んだ教訓をもとにベストセラーとなった人月の神話を執筆した。その教訓とは主に次の2つである。 問題が発生しているプロジェクトに追加のリソース(主にスタッフ)を追加投入すると、コミュニケーションが困難になり、急に生産性が落ちて逆効果になることがある。これは書籍のタイトルでもある「人月の神話」症候群である。 成功したシステムの後継版は、元のシステムを使った人からの要望を全て取り込もうとして肥大化し、問題が生じやすい。ブルックスはこれを「セカンドシステム効果」と呼び、OS/360を悪い例として全体的に引用している。
※この「System/360 オペレーティングシステム」の解説は、「IBMメインフレーム用オペレーティングシステムの歴史」の解説の一部です。
「System/360 オペレーティングシステム」を含む「IBMメインフレーム用オペレーティングシステムの歴史」の記事については、「IBMメインフレーム用オペレーティングシステムの歴史」の概要を参照ください。
- System/360 オペレーティングシステムのページへのリンク