第二回
第二回活動報告
日時・場所
2008/11/18 13:00〜15:00@電気系会議室1B
集合
2008/11/18 13:00 に東大工学部二号館サブウェイ前にて集合ですもちもの
- 出来るだけ各自PC
- もし持っていたら詳解Linuxカーネル
学習内容
とりあえずプレゼンを抜粋して書きなぐってみる。間違いあったらごめんなさい。詳解Linuxカーネルの8章にだいたい対応しているが、ページング機構については2章を参照のこと。
ページング機構
メモリをページサイズ(4KB単位)で管理。ページサイズぶんの実メモリをページフレームという。リニアなアドレス空間から実アドレス空間への変換はページテーブルを用いて行う。
バウンスバッファ
メモリが足りなくてページフレームを確保できないときは待てばいいが、割り込み処理のような他のメモリが解放されるのを待ってられない処理のときにはOSが緊急用に予約しているバッファを使う。バディシステム
ページフレームをサイズ別に管理。あるサイズのページフレームに空きがないときは大きい塊を崩して調達する。連続した空きができたときは大きい塊にまとめる。スラブアロケータ
カーネルでは同じような性質(サイズとか、属性とか)のメモリを繰り返し確保することが多いため、その都度ページフレームを確保し、属性を設定しているとロスが多い。バディシステムを仲介し、同じような属性のメモリをまとめて管理するのがスラブアロケータ。SLABとSLUB(とSLOB)
カーネルをコンパイルするときに選べる、3種類のスラブアロケータ。SLABはこれまでのもの。SLUBは新開発されたアロケータで、リスト構造を削減することでスケーラビリティを高めているらしい。2.6.22-rc1以降はこれがデフォルト。SLOBは組込み用。シンプルで小さい。ソースのサイズもSLABやSLUBと比べて10分の1くらい。文責:b_naka
2008年11月21日(金) 00:57:25 Modified by ID:B0kN4ozr7A