タグ

tlbとKernelに関するyassのブックマーク (2)

  • Webサーバのマルチスレッドでの実装における優位性をLinux Kernel 3.3のソースから読み解く

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 表題の通り、現行のカーネルの実装において、マルチスレッドとマルチプロセスでの実装の優位性はどういう所にあるのかを知りたい、というのが今回の調査の意図だ。 そのために、前提知識としてマルチスレッドとマルチプロセスの特徴について、カーネルのソースを見ていきたいと思う。カーネルの海に飛び込むには、やはり最新のLinux Kernel 3.3のソースを選択することにした。前置きの段階で少し長くなってしまいそうだ。ではカーネルの海に飛び込みたいと思う。 とはいっても、まずは最初の一歩が必要なので、当たりをつけようと思う。キーワードは、 マルチスレッド マルチプロセス コンテキストスイッチ メモリ空間の共有 TLB(トランスレーション・ルックアサイド・バ

    Webサーバのマルチスレッドでの実装における優位性をLinux Kernel 3.3のソースから読み解く
    yass
    yass 2014/03/10
    " スレッドをclone()する際にCLONE_VMフラグを渡すことでメモリ空間を共有している場合(つまりはマルチスレッド)は、コンテキストスイッチ時にTLBフラッシュがされないことになる "
  • Transparent Huge Page - 研究日誌。

    Transparent Huge Page という hugepage が Linux 2.6.37 から使用することができます。 とはいっても、Transparent Huge Page は default で always 設定(すべて hugepage 上に確保)になっているので、CentOS6, Fedora15 あたりの OS を使用している場合、知らず知らずのうちにその恩恵を授かっていると思われます。 Linux は 4KB のページと呼ばれる block でメモリを扱うことになっていますが、この場合 virtual address から 4 段階の変換テーブルを参照して目的の物理メモリにアクセスすることができます。この 4KB ごとの TLB miss を軽減するには、大きなサイズのページ hugepage を採用することが有効です。2MB の hugepage を採用す

    Transparent Huge Page - 研究日誌。
  • 1