Linuxのパフォーマンスサーバプログラム(IX)--I / Oの多重化

第IX章I / Oの多重化

  I / Oの多重化は、スレッドを同時にプログラムのパフォーマンスを向上させる、複数のファイルディスクリプタを監視することができます。I / Oの多重化は、同時に複数のファイルディスクリプタを監視することができますが、それ自体がブロックされているが、複数のファイルディスクリプタは準備ができている場合は何の措置がとられていない場合、それはまだシリアル仕事です。それだけでマルチプロセス又はマルチスレッドによって処理することができます。Iは、Linux / O多重化は、主機構の3種類IO多重化されている投票ファイルディスクリプタを選択するために使用される実現しました。

  選択します。

    I / Oストリームが複数存在する場合は1)、それは、ポーリングはとても時間の複雑さを選択し、アクセスする方法を選択できるように()、読み取り、書き込みを実行する準備ができている1知らないで来るはO(n)は、そう、より多く流れ、ポーリング時間が長くなって長くています。

    数2)1つのプロセスがプログラムをリスニングしている選択は、ポート番号のサイズを聴きながら、それが制限され、制限されています。典型的には、関連するシステムメモリの数と大きさを監視する、デフォルトの32ビットマシンモニタのサイズが1024であり、モニタ部64のサイズは2048です。

    3)プログラムは、ユーザ空間とカーネル空間が比較的大きいオーバーヘッド転送構造をコピーするように、多量のFD(ファイル記述子)データ構造を格納するために使用維持する必要があります。それはユーザ空間とカーネルアドレス空間からコピーされたファイル識別子等の全体の配列ですので。

  世論調査:

    1)基本的にポーリングし、プログラムの選択の実装の間に違いはありません。それは、最大接続数を制限しないこと。彼はベースのチェーン店ですので。複雑さはO(N)であります

  ファイルディスクリプタ:

    1)それは、イベント・ポーリング及びポーリングとして理解することができ、選択は非常に異なっているファイルディスクリプタ。これは、特定のイベントが私たちにI / Oイベント通知をストリーミングします。だから、ファイルディスクリプタは、実際にイベントドリブン各イベントのFD(ファイルディスクリプタ)に関連しています。epollの複雑さはO(1)であるので、それは非常に高い効率です。

    2)は、最大同時接続制限をファイルディスクリプタない、1Gメモリに約100,000のポートを監視することができます。

    3)メモリコピー、ファイルの加速度とカーネル空間マッピングされたMMAP()メッセージパッシング、メモリ使用、すなわち使用のmmapファイルディスクリプタ複製オーバーヘッドの削減を。

 

  参考:https://www.cnblogs.com/lixiaoliuer/p/6735821.html

       https://www.cnblogs.com/aspirant/p/9166944.html

  

   

 

おすすめ

転載: www.cnblogs.com/dump/p/11202715.html