計算機システム概論

計算機システム概論
コンピュータアーキテクチャの基本について学ぶ
前半部分(中島先生)...主としてハードウェアに関するお話
後半部分(楫)...オペレーティングシステム(OS)について
講義スケジュール
教科書は指定しない
楫担当分の講義資料(このPowerPointのファイル)
http://apal.naist.jp/~kaji/lecture/
月曜2限,水曜1限
5月
月
7
14
21
28
6月
水
9
16
23
30 試験
月
水
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 は「重すぎる」
機能をそぎ落とし,技術的に退化する動きも
Micro VAX 3900
第4世代のOS(1970年代後半~現在?)
自己完結するのではなく,「協調作業」を前提とする
仕組みの導入
プロセス間通信
ネットワーク対応
ユーザインタフェイスの充実
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