1 / 17

オペレーティングシステム J/K

オペレーティングシステム J/K. 2004 年 11 月 8 日 酒居敬一 ( sakai.keiichi@kochi-tech.ac.jp ) http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS2004/. ネットワークと分散システム. ネットワークを介した通信機能 Endpoint 通信の確立 通信路 ソケット 同期 / 非同期入力について 分散システム. Endpoint( 端点 ). 変調装置や復調装置を含む場合もある 例:電話機(電話番号、電話線、音声)     住宅(郵便届け先、郵便局、小包).

dwayne
Download Presentation

オペレーティングシステム J/K

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. オペレーティングシステムJ/K 2004年11月8日 酒居敬一(sakai.keiichi@kochi-tech.ac.jp) http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS2004/

  2. ネットワークと分散システム • ネットワークを介した通信機能 • Endpoint • 通信の確立 • 通信路 • ソケット • 同期/非同期入力について • 分散システム

  3. Endpoint(端点) • 変調装置や復調装置を含む場合もある • 例:電話機(電話番号、電話線、音声)     住宅(郵便届け先、郵便局、小包) 端点 端点 通信路

  4. 通信の確立 • 回線交換網 • 例:電話網 • 受話器を上げ、電話機から交換機までの通信を確立 • 相手の電話番号を交換機に伝える • 交換機は相手の電話機までの通信を確立 • 相手が電話に出ると、人と人との通信が確立する • パケット交換網 • 例:郵便網 • 内容物を梱包する • 郵便局(最寄の集配局)に集められる • 局では相手の住所をもとに相手局まで運ぶ • 局から相手の住所地まで運ぶ • 相手が受け取り、開梱する

  5. 通信路 • 回線交換網 • 例:電話網 • 人と電話機は空気中を伝わる音声 • 電話機と交換機は電話線を伝わる電気信号 • 交換機から相手の交換機まで電磁波(光やマイクロウェーブ) • パケット交換網 • 例:郵便網 • 自宅からポストや最寄局までは人が徒歩で運ぶかもしれない • 局間はトラックや鉄道のような長距離大量輸送手段 • 相手の局からはバイクや軽トラで運ぶ

  6. 通信路の抽象化― ソケット ― ソケットは通信路のendpoint(端点)のこと。 OSは次のような通信を実現してくれる。 • 一対一通信(ストリーム型) • 実世界の例では電話 • プロセス間通信で使用するパイプ • 回線交換網における通信 • 多対多通信(データグラム型) • 実世界の例では郵便とか宅配便 • パケット交換網における通信

  7. 相手を特定するしくみが必要 • 相手と通信できなければいけない • 相手と同じプロトコルを話さないといけない • それらの情報を付加して端点を作成し使用 • 名前つきソケットはファイルシステム上の名前 • ポート番号とTCP or UDPの選択とIPアドレス • ソケットとそれら情報をくっつけること→バインド • ソケットへのバインドはTCP/IPに限らない

  8. アプリケーション TCP UDP IP  通信デバイス TCP/IPプロトコルスタックとの関係 ソケットはここで切り離してくれる。 例ではTCP/IPとバインドしている。 • TCP(伝送制御プロトコル) • ポート番号により接続プロトコルを限定 • エラーの無い1対1通信を実現 • UDP • ポート番号により接続プロトコルを限定 • ポート番号がある以外はIPとほぼ同じ • IP • IPアドレスにパケットを送るだけ • デバイスが取り扱えるパケット長に分断したり、再構成する

  9. 通信路 • ソケットは端点を抽象化して利用者に見せる • 一方で、通信路に関するところは隠蔽 • 実はOSの中で別に実装 • 通信経路の指定 • 動的ルーティング(RIPやOSPF) • 静的ルーティング(経路表) • ネットワークデバイスは通信経路により決定 • EthernetとCSMA/CD • シリアルポートとPPP

  10. アプリケーション TCP UDP IP  通信デバイス ネットワークインターフェース • 経路表ではインターフェースとネットワークを対応づけている。 • ネットワークインターフェースはIPパケットを送受信するしくみを提供する。 • IP層ではパケット通信しか定義されてない… ネットワークインターフェースはここで定義 デバイスを抽象化している

  11. ネットワークデバイス • Ethernetデバイス • CSMA/CDによりパケットを交換するものすべて • いわゆるイーサカードに対応 • PPPデバイス • OS内部の仮想的なデバイス • 実際にはEthernetやシリアルポートをバインド [sakai@sky sakai]$ netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface faw033.nw.wakwa * 255.255.255.255 UH 0 0 0 ppp0 192.168.192.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default faw033.nw.wakwa 0.0.0.0 UG 0 0 0 ppp0 [sakai@sky sakai]$

  12. プロセスの待ち状態について • ネットワークデバイスや入出力機器に起因 • 通常動作では要求を満たすまで待たされる • 複数のデバイスの動作完了を待てるだろうか? • 複数のデバイスへの要求はいつだすのだろうか? • 例: • パケットの到着を待ちながら • パケットの送出をしながら • キー入力を待ちたい、というとき

  13. 同期/非同期入出力 • 同期入出力(Blocking I/O) • 入出力処理の際、処理の完了まで待たされる • 待っている間は何もできない • 複数の入出力処理に関して待つしくみがある • UNIXではpollシステムコール • 非同期入出力(Non-Blocking I/O) • 入出力処理の際、処理の完了まで待たない • 定期的にポーリングする場合などに使われる

  14. 分散システムとは? • 通信リンクにより接続されたプロセスの集合 • 分散システムを実現するしくみはOSが持ってるが、 • コンピュータが単につながっているもの、ではない… • 人間の世界は分散システムである • 個人→プロセス • 言語→プロトコル • 通信リンク→空気中をつたわる音など

  15. なぜ分散システムをとりあげるか? • 分散システムのためのしくみはすでにある • プロセス • OSにより抽象化されている • JAVAを使えば同じプログラムが動く • 通信リンク • OSによりソケットとして抽象化されている • JAVAで実装したAPIがいろいろある • 世の中がそうであるように自然である • ただし、難しい ← これが問題か…

  16. なぜ難しいか? • 逐次アルゴリズムの呪縛 • 分散アルゴリズムは難しいのだろうか? • プロセスどおし同期していないこと • Hetero-genius 構成(異機種構成)であること • プロセスは対等であること • プロセスは増えたり減ったりする • プロセスは嘘つくかもしれないこと • 通信リンクは故障することがある • 通信には時間がかかる

  17. 分散OS • 分散システムを作るしくみは普通のOSにもある • ただし原始的である • 分散OSに必要なこと • 異機種間通信を実現するしくみ • データ形式を合わせるしくみ • 遠隔手続き呼び出しのしくみ • 分散した資源を割当てるしくみ • 分散した資源を置き換えるしくみ • 例: • 分散共有メモリ • タスクのマイグレーション(移送)

More Related