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