260 likes | 348 Views
計算機システム概論・7回目. 本日のトピック:やや先進的な話題 OS の ネットワーク機能 について OS を 起動する仕組み 試験の実施方法について. アプリケーション. 高. OS. 入出力 管理 機構. プロセス 管理 機構. メモリ 管理 機構. 抽象レベル (論理性). 低. ネットワーク管理機構. OS のネットワーク機能について:歴史. 最初は ネットワーク機能なし 基本的に,コンピュータは単体で使用するもの ( スタンドアローン形態) peer-to-peer 接続 (1対1接続) の開始
E N D
計算機システム概論・7回目 本日のトピック:やや先進的な話題 • OSのネットワーク機能について • OSを起動する仕組み • 試験の実施方法について
アプリケーション 高 OS 入出力 管理 機構 プロセス 管理 機構 メモリ 管理 機構 抽象レベル (論理性) 低 ネットワーク管理機構 OSのネットワーク機能について:歴史 • 最初はネットワーク機能なし • 基本的に,コンピュータは単体で使用するもの (スタンドアローン形態) • peer-to-peer 接続 (1対1接続) の開始 • ネットワーク機能は,入出力装置の一種 • 低レベルの通信制御機能を提供
高 入出力 ネット ワーク プロセス 抽象レベル 低 高 入出力 ネット ワーク プロセス 抽象レベル 低 歴史的な流れ(2) • 多対多接続とサービスの拡大 • より抽象的で論理的なサービスの提供 • ネットを介した資源共用の窓口 • ファイルやプリンタなどの資源を,複数の計算機で 共用する機能を提供
高 入出力 ネット ワーク プロセス 入出力 プロセス 抽象レベル 低 ネットワーク 歴史的な流れ(3) • ネットを介した計算能力の提供窓口 • プログラムやサービスの一部を,ネットワーク上の 他の計算機にて実行 • クライアント・サーバ型サービスから分散型プロセスへ • (ネットワークの隠蔽) • ネットワークは,サービスを提供する「手段」の一部 • ネットワークを意識せずに操作ができる...
プロトコル ネットワークの利用 = 異なるコンピュータ間での「対話」 • 「対話」のための約束事をきめておく必要がある =「プロトコル(通信プロトコル)」 プロトコルのジレンマ: • 同じプロトコルを使わないと,対話ができない ⇒全員を縛るような標準化が必要 • ネットワーク技術は進歩が速い ⇒過去に縛られない柔軟性が必要
プロトコルの階層型設計 プロトコルのジレンマへの対処: ⇒ プロトコルを階層的に設計する • 下は,ハードウェアに依存する階層 • 上は,高度に論理的な階層 • 各階層の「部品」を交換すれば,柔軟に拡張可能 • 各部品の仕様(機能)だけを決めておけばよい
代表的な階層型モデル • どのように階層化するのが良いか • OSIの7階層モデル • デファクトスタンダードの5階層モデル(TCP/IPモデル) アプリケーション層 アプリケーション層 プレゼンテーション層 区別する意義 があまりない セッション層 L4 トランスポート層 トランスポート層 L3 ネットワーク層 インターネット層 L2 データリンク層 データリンク層 物理層 物理層 OSIの7階層モデル 5階層モデル(TCP/IPモデル)
TCP/IP • TCP/IP:元来はARPAネット,BSD版UNIXでの開発・実装 • インターネットの「事実上の標準(デファクトスタンダード)」 • TCP: 5階層モデルのトランスポート層に相当 • IP:5階層モデルのインターネット層に相当 応用プロトコル アプリケーション層 TCP, UDP トランスポート層 IP IP IP インターネット層 データリンク層 物理層 ルータ ルータ ホストA ホストB
階層モデルとOSの機能 プロトコル階層の全機能を,OSが提供するわけではない • 典型的な「切り分け」方 アプリケーションソフト アプリケーション層 トランスポート層 カーネル インターネット層 データリンク層 デバイスドライバ 物理層 機器のファームウェア • トランスポート層の機能が,ユーザにサービスを提供 • 「ソケット」と呼ばれるAPIを利用して, • 「ポート」と呼ばれる機構を提供
ポート • アプリケーション層:多くのアプリケーションプロセスが存在 • Web, telnet, ftp, …. • 情報の出入り口(インタフェイス):1~数個 受け取った情報を,アプリケーションに振分ける機構が必要 ⇒ ポート= 私書箱,のようなもの httpd 80 telnetd 23 「宛先は hostA の 23 番ポート」 ftpd 21 hostA
宛先:Sの 80番,発信元:Cの 3820番 要求内容:http://… の内容を送れ 宛先:Cの 3820番,発信元:Sの 80番 応答内容:<HTML><HEAD>… ポート管理とサービスの提供 • 標準的なサービスを提供するアプリケーション: あらかじめ特定のポート番号が割り振られている • http…80番,telnet…23番,ftp…21番,smtp…25番 • 一般のプロセス:「予約」されていない番号を利用する 予約済番号 未使用番号の一つ サーバS クライアントC httpd 80 3820 explorer 4719 firefox telnetd 23
1 2 79 ソケット ポートは,OSが提供する資源の一種 • プロセスがポートを使いたい時は,OSからポートを「借りる」 • プロセス内部に「ソケット」を準備する • ソケットとポートを接続する • (通信相手でも,同様の対応をしておいてもらう) プロセス プロセス
ソケットを利用した通信 ソケットに関して, OSが提供する機能(システムコール): • ソケットを新しく作る socket() • ソケットとポートを結びつける bind() • 情報を受け取れる状態にする listen() • ポートを介して,2個のソケットを結びつける connect() • 情報の送受信 read(), write() • ソケットを閉じる close() socket() bind() listen() read(), write() close() socket() bind() connect() write(), read() close() 受動側ホスト 能動側ホスト
プロセス ファイル 外部への接続の場合 プロセス プロセス 内部での接続の場合 ソケットについて,余談 ソケットは,同一ホストの他のソケットにも情報送受信可能 • 同一ホスト内で使用する場合,ポートは割り当てない • ファイル名を割り当てて,ソケットの住所代わりに プロセス間通信の道具にもなる
OS起動の仕組み • コンピュータは,メモリ上のプログラムしか実行できない • 電源投入直後は,メモリの内容は空 • OSを,どこかから持ってくる必要アリ • どこにあるのか,どうやって持ってくるのか.... ⇒ プログラムにより,コンピュータに指示する必要あり ⇒ ブートストラップのジレンマ http://www.devdrv.co.jp/hidaka/node/18 にあったイラストから
電源投入からOS起動まで • ブートストラップ処理は,時代によって変遷してきた • ここで紹介するのは,今日の典型的なPCの場合 基本的な流れ • ハードウェア的に固定されたBIOSが起動 • BIOSが,ブートに用いるデバイスを特定 • 特定されたデバイス内のブート用プログラムに制御が映る • ブート用プログラムがOSを読み込み,制御を渡す • OSが各種の処理を開始する BIOS ブート用 プログラム OS
BIOS Basic Input and Output System (基本入出力システム) • ROMやフラッシュメモリ等,不揮発性メモリに格納される • 電源起動直後にBIOSを読み込むよう,ハードウェアを構成 • 機器の相違を吸収し,基本的な入出力処理を可能に • モニタ解像度,キーボード配列,ディスク仕様... 提供する機能 • ハードウェア的な故障診断(セルフテスト) • ブート用デバイスの特定 BIOS CPU ROM メモリ RAM
ブート用デバイス • 一台の計算機には,複数の入力装置が存在 • (一般には複数の)ハードディスク装置 • CD-ROMドライブ,フロッピーディスクドライブ • USBメモリ etc... どの装置からOSを探し出すか? • 各装置の優先度を事前に決めておき,設定を保存しておく • 優先度の順で,ブートに利用できる装置を探していく ブートに利用できる装置が見つかれば... その装置に格納されたブート用プログラムに制御を渡す
BIOS とブート用プログラム • 異なる入力装置は,異なる仕組みで動いている • 「任意の入力装置を動かすための仕組み」を,すべて BIOSに持たせることは困難 • ROM容量は有限,新しい機器への対応ができない... • BIOSから,当該装置用プログラムにバトンタッチする • BIOS... 一次ブートローダ • 入力装置内のブート用プログラム...二次ブートローダ と呼ばれることも 二次 ブート ローダ BIOS
ハードディスクの二次ブートローダ • 一台の装置に,複数のボリューム(パーティション)が存在 • どのパーティションを使うのか,選択が必要 ... BIOS が直面していた問題と,ほぼ同じ構図 • ハードディスクでの二次ブート処理を,さらに二段階に分割 • ディスクの先頭部分に格納されたブートローダが • ボリュームの先頭部分に格納されたブートローダをロード hd0a hd0b hd0d hd0a
MBR MBR (Master Boot Record) • ディスクの先頭の,ブートローダを格納する部分 • ブートセクタ,ブートブロックとも • PC/AT互換機では,MBRは512バイト分(ディスクの1セクタ) • 0~445バイトにブートローダのプログラム • 446~509バイトにパーティション情報 • 510, 511バイトに固定シグネチャ(0x55, 0xAA) • MBRが壊れると,ディスクが読めなくなる • MBRがウィルスに汚染されると,コンピュータが乗っ取られる
OS起動の最終段階 • MBRに格納されたブートローダが,ブートパーティションを特定 • パーティションの先頭には,別のブートローダが待機 • ここまでくれば... 当該パーティションを,ファイルシステムとしてアクセス可能 • 特別な名前のファイルを OSと理解してロードする • vmunix, vmlinux, kernel ... • OS起動に関連する設定を,ファイルから読み込む • grub.conf ... • OSが展開され,起動される
まとめ 本日のまとめ • OSのネットワーク機能について • OSを起動する仕組み 講義全体(楫担当分)のまとめ • OSに関する基礎的な要素を紹介した • 今日実用に供されているOSには,あてはまらない部分も
試験の実施方法について • 5月30日(水)1限(通常の講義時間) • L3講義室(この部屋) • 中島先生の授業内容 + 楫の授業内容 • 講義資料(書き込み可)の持ち込みを認める
楫担当分の受験にあたって 【重要】 楫担当分の受験にあたって • 「クラウド化が進むと,OSは消えていく」という説がある • http://www.sekarasika.com/archives/2165 • http://www.gizmodo.jp/2011/10/icloud_2.html • http://mojix.org/2010/09/12/os-kieteiku そのような説に対する考え方を問うので,上記のページに 目を通しておくこと(プリントして持参することも可)