タグ

ブックマーク / mitsuki.engawa.org (1)

  • Mitsuki's Magic Laboratory - OSカーネルが高位メモリにある訳

    仕事がアレな感じでなかなか進まないながらも、 先日買った 悪魔を読んでるわけですが、「5.3 カーネルにおけるメモリ管理」を読んで長年(?)の疑問が氷塊。もとい氷解。 FreeBSDといいWindowsといい、ユーザープロセスで使えるメモリ空間を減らしてまで、カーネルがユーザープロセス空間の高位(アドレス値の大きい端)を占めているのかずっと不思議だったのですが、どうもシステムコールの際のユーザー-カーネル間のデータコピーのコストを下げるためらしい。 両者が同じアドレス空間にあれば単なるメモリブロックコピーで済むところが、両者が違うメモリ空間にあると特殊な転送を行う必要があって遅くなるため……とのこと。カーネル時間の1/3はこの手のデータコピーにわれているそうなので、そりゃたしかに影響大きそうだなあ……。 まあ、x86ならカーネル空間とプロセス空間でセグメントを分ければ(ラージモデル)、

  • 1