仕上げ知識 - 知識ネットワークIOの概要

  • UNIXシステムのI / Oモデルは、5を持っています

同期ブロッキングI / O、同期非ブロッキングI / O、I / Oマルチプレクサ、駆動信号I / Oおよび非同期I / O

  • I / Oとは何ですか

いわゆるI / Oは、コンピュータと外部メモリデバイスとの間でデータをコピーする処理です。私たちは、その後、処理され、CPU速度は、外部メモリアクセス装置よりもはるかに高い、CPUは外部メモリからデータを読み込むための最初のデバイスであることを知っています

  •  この問題を解決するためのI / Oモデル

多くの場合、ある程度の時間がかかり、この時CPUは何もしなかった、あなたのプログラムが他の人にCPUのイニシアチブであるデータがメモリに外部デバイスからコピーされ、あなたのプログラムがCPUを介して外部装置にリードコマンドを発行すると、このシナリオを考えてみましょう?あるいは、CPUは常にチェックしてみましょう:右のデータにデータを右に......

  • Java I/O 模型

  • ネットワークI / Oの通信プロセス

このようなネットワークデータの読み出しなどのネットワークI / O通信プロセスは、一つのユーザスレッドのこのI / Oオペレーションを呼び出して、2つのオブジェクトを含むことになるため、他のオペレーティング・システムのカーネルです。プロセスのアドレス空間は、直接カーネル空間にアクセスすることはできませんユーザ空間とカーネル空間とユーザスレッドに分割されています。

ユーザスレッドは、I / O操作を開始すると、ネットワークのデータ読み出し動作は、2つのステップを通過します。

  • ユーザカーネルスレッドはカーネル空間にカードからデータをコピーするために待っています。
  • ユーザ空間カーネルにカーネル空間からデータをコピーします。

様々なI / Oモデルを区別し、このです:彼らは、この2段階のアプローチは同じではありません実現。

  • 同期のブロッキングI / O

ユーザーが読み取りコールを遮断した後、スレッドを開始し、CPUをしましょう。カーネル空間にカードからデータをコピーし、カーネルデータカードの到着を待って、その後、その後、ユーザスレッドウェイクユーザ空間にデータをコピーします。

  • 同期のノンブロッキングI / O

ユーザーは、カーネル空間への読み取りスレッドの呼び出しではなく、データを開始していき、それぞれの時間は、カーネル空間へデータまで戻ることができなかったこの時間はユーザ空間にカーネル空間から今回のデータをコピーするのを待っている、コールを読んだ後、スレッドまたはブロック、および他のデータのユーザ空間にして、スレッドを覚まします。

  • I / Oマルチプレクサ

読み取り操作は、2段階のユーザーのスレッドに分割して、目的の準備ができてカーネルデータを依頼することです、スレッドは、第1の選択呼び出しを開始した(分割予告(ポーリングの場合を選択)、またはパラメータがある、例(障害物)ユーザー・プロセスをウェイクアップ)それは?他のコアデータの準備ができていると、ユーザーは再びスレッドを読むために通話を開始します。ユーザ空間にこの時間をカーネル空間からデータをコピーするのを待つ、スレッドがブロックされています。なぜそれは、I / Oの多重化、それと呼ばれていますか?内側に検証可能なデータチャネル(チャンネル)、いわゆる多重の複数の選択通話状態以来。

  • 异步 I/O

ユーザーはすぐに復帰し、コールバック関数を登録し、同時にスレッドを読んで読むために通話を開始し、他のカーネルデータの準備ができたら、その後、プロセスを完了するために、指定されたコールバック関数を呼び出します。このプロセスでは、ユーザスレッドがブロックされていません。

 

おすすめ

転載: www.cnblogs.com/ql211lin/p/11390245.html