ウィキペディアから
THEマルチプログラミングシステム(THE multiprogramming system)は、エドガー・ダイクストラらが開発した初期のマルチタスクオペレーティングシステム (OS)。1965年から66年に論文に記され[1]、1968年に発表された[2]。ダイクストラはこのシステムを命名したことはない。"THE" とは "Technische Hogeschool Eindhoven" の略で、オランダ語でアイントホーフェン工科大学を意味する。THEシステムは基本的にマルチタスクをサポートしたバッチ処理システムである[3]。マルチユーザーOSとしては設計されていない。同時期の Project GENIE で開発された SDS 940 に似ているが、THEシステムでのプロセス群は静的だった[3]。
開発者 | アイントホーフェン工科大学 / エドガー・ダイクストラ他 |
---|---|
プログラミング言語 | アセンブリ言語 |
開発状況 | 歴史上のOS |
初版 | 1968年 |
プラットフォーム | Electrologica X8 |
THEシステムは初のソフトウェアベースのメモリセグメンテーションを導入し(Electrologica X8 はハードウェアでのメモリ管理をサポートしていなかった)[3]、プログラマは磁気ドラムメモリ上の物理的位置を気にする必要がなくなった。そのために修正を加えたALGOLコンパイラ(ダイクストラのシステムでサポートされた唯一のプログラミング言語)を使い、システムルーチン呼び出しを自動生成し、必要な情報が必要なときにスワップインされることを保証している[3]。
THEマルチプログラミングシステムの設計は階層構造となっている点が重要で、上位層は下位層にのみ依存している。
上位層が下位層にのみ依存するという制約を課したのは、(準形式手法的に)システムの挙動を推測しやすくし、システムを段階的に構築できるようにするためである。システムは Layer 0 から順に実装され、それぞれの層が提供する抽象化を順に試験していった。この形式手法的設計プロセスは大いに成功し、ダイクストラは次のように述べている。
我々は、論理的健全性が演繹的に証明できる方法で洗練されたマルチプログラミングシステムを設計可能であり、その実装が徹底的な評価に耐えることを見出した。評価中に見られた誤りは瑣末なコーディング上の誤りだけであり(500命令に1回の割合で発生した)、10分程度のマシンでの調査で個々の問題を検出でき、その対処も容易であった。[1]
このようにカーネルを階層化するという方式はMulticsのリングプロテクションモデルに似ている。その後のOSは何らかの階層化を導入していることが多く、例えば Windows NT や macOS がそうだが、階層の数はTHEシステムより少ない。
動作プラットフォームはオランダの Electrologica X8 コンピュータで、システム自体はアセンブリ言語で書かれている。このコンピュータは32キロワードの磁気コアメモリ(1ワードは27ビット[3])、LRU方式のバッキングストアを備えた512Kワードの磁気ドラムメモリ、紙テープリーダー・パンチャー、プリンターを備えていた。
Seamless Wikipedia browsing. On steroids.