計算機システム概論 コンピュータアーキテクチャの基本について学ぶ 前半部分 ( 中島先生 )... 主としてハードウェアに関するお話 後半部分 ( 楫 )... オペレーティングシステム (OS) について
講義スケジュール 教科書は指定しない 楫担当分の講義資料 ( この PowerPoint のファイル ) http://apal.naist.jp/~kaji/lecture/ 月曜 2 限, 水曜 1 限 5 月月水 7 9 14 16 21 23 28 30 試験 6 月月水 4 ( 木曜授業の実施のため ) 2
本日の講義 オペレーティングシステムについて学ぶ 本日の講義内容 : オペレーティングシステム (OS) とは何か OSの役割とは OSが備えている機能について 本日は, あくまでも 概論 次回以降の講義で, 技術的な詳細について詳しく述べる 3
OS とは何か :OS のない計算機 昔のパソコン ( マイコン ): プログラムを実行するには, カセットテープからロード同時に一つのプログラムしかロードできないメインメモリのどの部分を使用するか, 強く意識入出力装置へのアクセスも直接的 ハードウェアとプログラムが直接的に結びついている シャープ MZ-80C,1980 年発売, 定価 268,000 円 CPU: Z-80 (2MHz), 4KB ROM + 48KB RAM 写真出典 http://www.itoi.co.jp/attic/time3.html 4
OS がないと何が困るか ハードウェアとプログラムが直接的に結びついていると... ハードウェアの性能を最大限に引き出せるハードウェアが変わると, ソフトが使えなくなる ソフトウェア ソフトウェア ハードウェア A ハードウェア B MZ-80C 日本電気 PC-8001 http://www.itoi.co.jp/attic/time41.html 5
OS のある世界 現在のパソコン : プログラムの格納場所やロード方法は意識不要ハードウェアを直接駆動する必要もない複数のプログラムを安全 同時に実行可能機器が多少変化しても, プログラムは共通利用可能 ハードウェアの仕組みは, 基本的に昔から変わっていない昔は人間が直接やっていたことを, オペレーティングシステム (OS) がサポートしてくれる OSは, 裏方仕事を引き受ける特別なプログラム 6
OS の役割 OS: 裏方仕事をひきうける特別なプログラム システムを使いやすくする 計算機資源を効率よく利用する 複数のサービスを同時かつ安全に提供する etc... 現在の OS: 非常に複雑で, 多様な役割を負う 昔はもっとシンプル : 歴史を追うことで, 実像が見えてくる 7
初期のコンピュータシステム 草創期のコンピュータ : パンチカードからプログラムやデータを入力プログラムは機械語で記述出力は紙テープやラインプリンタ別プログラムに切り替えるには, システムリセットプログラムの作成が面倒カードの取り扱いが大変プログラムの切り替えも面倒 パンチカード 高級言語, コンパイラ オペレーティングシステム 8
第 1 世代の OS 第 1 世代のOS(1950 年代 ) プロセッサの利用効率の向上が主目的バッチジョブの概念が登場 バッチジョブ : プログラムの読込と起動, データ投入, 出力結果の記録等, 一連の操作内容を一まとめにしたもの UNIVAC 1 ユーザがコンピュータを直接操作するのではなく, 操作内容 だけを伝え, 適当なタイミングでの処理を依頼する 9
第 1 世代 OS の処理の流れ 第 1 世代 OSが提供する機能バッチジョブの受付ユーザから投入されたジョブを受け付けるバッチジョブの切り替えジョブ実行環境を初期化し, 新しいジョブを開始する プロセッサ OS 結果出力 ジョブ切替 ジョブ受付 10
第 1 世代 OS の特徴 各ジョブが順番にプロセッサを占有するジョブの占有時間中に, プロセッサが遊んでしまうことも... プロセッサのスピード > 入出力装置のスピード プロセッサ 入出力装置 アクティブアイドルデータ送受信 プロセッサ処理と入出力操作を並列化する仕組みが出現 オフライン入出力, バッファリング, スプーリング etc. 補助的な仕組みと, メインのプロセッサとの調整が必要 OS の仕事 11
プロセッサと入出力処理について 直接駆動 プロセッサが出力装置の速度に 歩調をあわせる バッファリング ( キュー ) 出力装置がデータを一時保管し, プロセッサの処理中に裏で作業 一時保管場所 ( バッファ ) が使用中 ならば, プロセッサは待機 スプーリング バッファを, 高速大容量の磁気ディスクで実現 入出力の順序やタイミングの調整が可能 プロセッサ 入出力 プロセッサ 入出力 プロセッサ スプール入出力 12
第 2 世代の OS 第 1 世代 OS: 各ジョブが順番にプロセッサを占有する柔軟性の欠如... 急ぎの仕事 に対応できない応答性の悪さ... プログラムミスの発見が遅れる 第 2 世代のOS(1960 年代前半 ) ユーザの利便性を改善することが強く意識される 複数のプログラムが同時並行的に実行... されているように見せる仕組みの実現 GE-200 ユーザは, 自分が計算機を占有している ように使える 13
タイムシェアリングシステム タイムシェアリングシステム (TSS, 時分割処理 ) プロセッサが, 複数のプログラムを少しずつ実行する短い時間 ( タイムスライス ) で, プログラムを切替える 遂次処理 時分割処理 時間経過 時間経過 トータルの実行時間は変わらない ( 切替オーバヘッドのため, 効率は若干低下 ) ユーザの利便性は向上 生産性の著しい向上 将棋の多面指し 14
TSS と仮想計算機 時分割処理は, ユーザが計算機を独占しているように 錯覚 させるための仕組み 各ユーザに 独立した仮想計算機 を提供している 他ユーザのプログラムの影響を受けないように... ユーザのミスがシステム全体に影響しないように... 実際の計算機 仮想計算機 15
プロセスの概念の登場 独立した仮想計算機 : 個別のプログラム個別の計算環境 ( メモリやレジスタ等 ) を保有している プロセッサは, 時分割で, 各仮想計算機の動作をシミュレートする 実行中の計算環境まで含めた仮想計算機をプロセスと呼ぶ 16
第 3 世代の OS 第 2 世代 OS: TSS により, 仮想計算機 をユーザに提供 第 3 世代のOS(1960 年代後半 ~70 年代前半 ) 抽象性と汎用性の導入仮想計算機 : 論理的な存在で, 比較的自由に設計可能 ハードウェアが違っても, 同じ仮想計算機を... ハードウェア上の制約からの脱却 仮想記憶などの技術が確立 17
マイルストーン :IBM OS/360 IBM System/360: 1964 年発売の汎用計算機ファミリー 目的や用途に応じて, 自由度の高い組合わせが可能 IBM System/360 IBM の Web ページより IBM OS/360: IBM System/360で採用されたOS ハードウェアの差異を吸収し, 高い汎用性を実現仮想記憶等, 当時として最新の技術を導入 18
第 4 世代の OS 1970 年代後半... コンピュータの小型化, 利用者の小集団化コンピュータ単体の性能が 小粒 に大規模コンピュータ用の OS は 重すぎる 機能をそぎ落とし, 技術的に退化する動きも 第 4 世代のOS(1970 年代後半 ~ 現在?) 自己完結するのではなく, 協調作業 を前提とする仕組みの導入プロセス間通信ネットワーク対応ユーザインタフェイスの充実 Micro VAX 3900 19
プロセス間通信 プロセス = 仮想計算機 + 実行中の計算環境 元々は, 他のユーザの存在を意識させないための仕組み プロセス間通信の基本的な考え方 単純な機能を持つプロセスを, 必要に応じて稼働させる ある機能が必要なときは, それ専門のプロセスに照会する クライアントプロセス サーバプロセス 20
プロセス間通信の拡張 プロセス間通信... 一台のコンピュータ内に限定する必要はない 他のコンピュータで稼働しているプロセスとの通信 へ, 自然に拡張可能 ファイルサーバ, プリンタサーバ, メールサーバ etc... 21
UNIX オペレーティングシステム 元来はミニコン, ワークステーション用 OS 1970 年代初頭に誕生, 以降のOSに大きな影響を及ぼす機能のモジュール化 部品を付け足すように,OSの機能を拡張可能パイプ, ソケット等の概念 シンプルで使いやすいプロセス間通信機能を提供豊富なネットワーク機能 インターネットの礎を築く 高い移植性, 優れたパフォーマンス セキュリティ, 安定性, 堅牢性に優れた, 完成度の高い OS 22
UNIX の歴史 初期バージョンの開発は,AT&T ( ベル研究所 ) が主体独占禁止法の関係で, 当初は比較的自由に配布可能 急速な普及, 発展を遂げる BSD UNIX... カリフォルニア大バークレー校 AT&T 版をベースに, 大規模な機能改善を加えたもの 豊富なネットワーク機能の実現 AT&T が分割され,UNIX の商用利用が可能に 厳しいライセンス管理, 不毛な法廷闘争 開発は停滞, オープンソース UNIX へ 23
オープンソース UNIX UNIX と同様の機能, 操作性を提供する OS ソースコードが公開されており, 誰でも無料で利用可能 GNU/Linux: GNU のソフトウェア群と Linux カーネル カーネル : 自動車のエンジン, に相当 ソフトウェア群 : 自動車の他の部品, に相当 FreeBSD, NetBSD etc... 派生技術は, 他の OS にも取り込まれている Mac OS, Android... Linus Torvalds 24
パソコン由来の OS 初期のパソコン... 非常に機能が低く,OSによるオーバヘッドが無視できない極限まで機能を削ぎ落した OSもどき を採用 MS-DOS... Microsoft Disk Operating System 当初は, 基本的なファイル管理機能のみを提供 後に,UNIX ライクな機能を追加 Mac OS... Apple 社 Macintosh 向けの OS 革新的なユーザインタフェースの提供 技術革新への対応遅れ UNIX ベースの Mac OS X へ 25
現在の OS(1) 現在の OS: これまでの技術を蓄積, 多くの役割を背負っている 1. 計算資源の有効利用 プロセッサを遊ばせない 2. ハードウェアの差異の吸収 プログラムの再利用が可能となる 3. 論理的で使いやすい計算環境の提供 プログラミングが楽になる ユーザの負担を小さくする 26
現在の OS(2) 4. プロセスの独立性 安全性保障他のユーザに邪魔されない計算環境を実現あるユーザのミスが, 他のユーザやシステム全体に影響しないような仕組みを実現 5. 協調作業をサポートする仕組みの提供 同一計算機内でのプロセス間通信 ネットワーク機能等, 外部世界との架け橋 27
本日のまとめ OSとは何か歴史役割機能 28