Download presentation
Presentation is loading. Please wait.
1
オペレーティングシステムJ/K (ネットワークと分散システム)
2005年11月10日
2
ネットワークと分散システム ネットワークを介した通信機能 同期/非同期入力について 分散システム Endpoint 通信の確立 通信路
ソケット 同期/非同期入力について 分散システム
3
Endpoint(端点) 変調装置や復調装置を含む場合もある 例:電話機(電話番号、電話線、音声) 住宅(郵便届け先、郵便局、小包) 端点
通信路 変調装置や復調装置を含む場合もある 例:電話機(電話番号、電話線、音声) 住宅(郵便届け先、郵便局、小包)
4
通信の確立 回線交換網 パケット交換網 例:電話網 例:郵便網 受話器を上げ、電話機から交換機までの通信を確立
相手の電話番号を交換機に伝える 交換機は相手の電話機までの通信を確立 相手が電話に出ると、人と人との通信が確立する パケット交換網 例:郵便網 内容物を梱包する 郵便局(最寄の集配局)に集められる 局では相手の住所をもとに相手局まで運ぶ 局から相手の住所地まで運ぶ 相手が受け取り、開梱する
5
通信路 回線交換網 パケット交換網 例:電話網 例:郵便網 人と電話機は空気中を伝わる音声 電話機と交換機は電話線を伝わる電気信号
交換機から相手の交換機まで電磁波(光やマイクロウェーブ) パケット交換網 例:郵便網 自宅からポストや最寄局までは人が徒歩で運ぶかもしれない 局間はトラックや鉄道のような長距離大量輸送手段 相手の局からはバイクや軽トラで運ぶ
6
ソケットは通信路のendpoint(端点)のこと。 OSは次のような通信を実現してくれる。 一対一通信(ストリーム型)
通信路の抽象化 ― ソケット ― ソケットは通信路のendpoint(端点)のこと。 OSは次のような通信を実現してくれる。 一対一通信(ストリーム型) 実世界の例では電話 プロセス間通信で使用するパイプ 回線交換網における通信 多対多通信(データグラム型) 実世界の例では郵便とか宅配便 パケット交換網における通信
7
相手と同じプロトコルを話さないといけない
相手を特定するしくみが必要 相手と通信できなければいけない 相手と同じプロトコルを話さないといけない それらの情報を付加して端点を作成し使用 名前つきソケットはファイルシステム上の名前 ポート番号とTCP or UDPの選択とIPアドレス ソケットとそれら情報をくっつけること→バインド ソケットへのバインドはTCP/IPに限らない
8
TCP/IPプロトコルスタックとの関係 TCP(伝送制御プロトコル) UDP IP TCP UDP 通信デバイス IP アプリケーション
通信デバイス IP アプリケーション ソケットはここで切り離してくれる。 例ではTCP/IPとバインドしている。 TCP(伝送制御プロトコル) ポート番号により接続プロトコルを限定 エラーの無い1対1通信を実現 UDP ポート番号がある以外はIPとほぼ同じ IP IPアドレスにパケットを送るだけ デバイスが取り扱えるパケット長に分断したり、再構成する
9
ソケットは端点を抽象化して利用者に見せる 一方で、通信路に関するところは隠蔽 実はOSの中で別に実装 通信経路の指定
動的ルーティング(RIPやOSPF) 静的ルーティング(経路表) ネットワークデバイスは通信経路により決定 EthernetとCSMA/CD シリアルポートとPPP
10
経路表ではインターフェースとネットワークを対応づけている。 ネットワークインターフェースはIPパケットを送受信するしくみを提供する。
TCP UDP 通信デバイス IP アプリケーション ネットワークインターフェースはここで定義 デバイスを抽象化している 経路表ではインターフェースとネットワークを対応づけている。 ネットワークインターフェースはIPパケットを送受信するしくみを提供する。 IP層ではパケット通信しか定義されてない…
11
ネットワークデバイス Ethernetデバイス PPPデバイス CSMA/CDによりパケットを交換するものすべて いわゆるイーサカードに対応
OS内部の仮想的なデバイス 実際にはEthernetやシリアルポートをバインド sakai]$ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface faw033.nw.wakwa * UH ppp0 * U eth0 * U lo default faw033.nw.wakwa UG ppp0 sakai]$
12
プロセスの待ち状態について ネットワークデバイスや入出力機器に起因 例: 通常動作では要求を満たすまで待たされる
複数のデバイスの動作完了を待てるだろうか? 複数のデバイスへの要求はいつだすのだろうか? 例: パケットの到着を待ちながら パケットの送出をしながら キー入力を待ちたい、というとき
13
非同期入出力(Non-Blocking I/O)
同期/非同期入出力 同期入出力(Blocking I/O) 入出力処理の際、処理の完了まで待たされる 待っている間は何もできない 複数の入出力処理に関して待つしくみがある UNIXではpollシステムコール 非同期入出力(Non-Blocking I/O) 入出力処理の際、処理の完了まで待たない 定期的にポーリングする場合などに使われる
14
通信リンクにより接続されたプロセスの集合
分散システムとは? 通信リンクにより接続されたプロセスの集合 分散システムを実現するしくみはOSが持ってるが、 コンピュータが単につながっているもの、ではない… 人間の世界は分散システムである 個人→プロセス 言語→プロトコル 通信リンク→空気中をつたわる音など
15
なぜ分散システムをとりあげるか? 分散システムのためのしくみはすでにある 世の中がそうであるように自然である プロセス 通信リンク
OSにより抽象化されている JAVAを使えば同じプログラムが動く 通信リンク OSによりソケットとして抽象化されている JAVAで実装したAPIがいろいろある 世の中がそうであるように自然である ただし、難しい ← これが問題か…
16
Hetero-genius 構成(異機種構成)であること プロセスは対等であること プロセスは増えたり減ったりする
なぜ難しいか? 逐次アルゴリズムの呪縛 分散アルゴリズムは難しいのだろうか? プロセスどおし同期していないこと Hetero-genius 構成(異機種構成)であること プロセスは対等であること プロセスは増えたり減ったりする プロセスは嘘つくかもしれないこと 通信リンクは故障することがある 通信には時間がかかる
17
分散システムを作るしくみは普通のOSにもある 分散OSに必要なこと
ただし原始的である 分散OSに必要なこと 異機種間通信を実現するしくみ データ形式を合わせるしくみ 遠隔手続き呼び出しのしくみ 分散した資源を割当てるしくみ 分散した資源を置き換えるしくみ 例: 分散共有メモリ タスクのマイグレーション(移送)
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.