Lions本読書会#11

Lions本読書会#11のtogetterまとめです。 http://atnd.org/events/19372
1
kotrit @kotrit

Lions 本読書会開始しました。よろしくお願いします。 ( #readLions live at http://t.co/BwCmOd3v)

2011-09-18 13:08:46
八丁堀マゴロク亭 @magoroku15

参加してます RT @kotrit: Lions 本読書会開始しました。よろしくお願いします。 ( #readLions live at http://t.co/ZABYBwed)

2011-09-18 13:11:06
Ryousei Takano @oraccha

遅れて参戦します。“@magoroku15: 参加してます RT @kotrit: Lions 本読書会開始しました。よろしくお願いします。 ( #readLions live at http://t.co/1cTiGXbC)”

2011-09-18 13:14:47
kotrit @kotrit

お待ちしてます。 RT @oraccha 遅れて参戦します。“@magoroku15: 参加してます RT @kotrit: Lions 本読書会開始しました。よろしくお願いします。 ( #readLions live at ustre.am/zaFV)”

2011-09-18 13:16:58
Yutaka Matsuzawa @alumican

Ustreamの「Lions' Commentary on UNIX 読書会」にチェックイン! http://t.co/BF0a7HPC

2011-09-18 13:23:01
Yutaka Matsuzawa @alumican

ひさびさに参加っ。ここは安定のWin率ですねw ( #readLions live at http://t.co/BF0a7HPC)

2011-09-18 13:23:56
takahiro(John Smith) @superhoge

まずは自分の書いた読書メモを読み直して、思い出すところから #readLions

2011-09-18 13:25:50
takahiro(John Smith) @superhoge

bufferはb-listとav-listの二つのリンクで管理されている。これは前回解説した #readLions

2011-09-18 13:33:17
takahiro(John Smith) @superhoge

processなど、いろんなものがただの配列で管理されている中、なぜbufferだけリンク構造を持っているのかという疑問。av-listをLRUで管理したいためと推測。詳しくは私の読書メモへ #readLions

2011-09-18 13:35:13
takahiro(John Smith) @superhoge

getblk( )はb-listから該当ブロックを取ってくる。b-listになければav-listから取ってくる。そのブロックが遅延書き込み状態だったら、このタイミングでデバイスに書き込み処理を行う #readLions

2011-09-18 13:38:41
takahiro(John Smith) @superhoge

brelese( )はbufferの解放。BUSYフラグをリセットし、av-listに突っ込む #readLions

2011-09-18 13:41:55
takahiro(John Smith) @superhoge

binit( )はbufferの初期化。起動時にmain( )から一度だけ呼ばれる。buf[ ](buffer header)とbuffers[ ](bufferデータ格納場所)を関連付ける。b-listのヘッダも初期化。 #readLions

2011-09-18 13:44:47
takahiro(John Smith) @superhoge

bread( )はブロックデバイスからデータを読み込んで、データの入ったbufferを返す。キャッシュが残っていたら(B_DONEフラグが立っていたら)デバイスまで読みにはいかない #readLions

2011-09-18 13:46:41
takahiro(John Smith) @superhoge

iowait( )はブロックデバイスの処理待ちを行う。終わるまで寝る。 rkstrategy( ) -> iodone( )で、iodone( )から起こされる #readLions

2011-09-18 13:48:29
takahiro(John Smith) @superhoge

breada( )は通常読み込みと平行して、先行読み込みも平行して実行する。breada( )が呼ばれうるのはreadi( )から。 #readLions

2011-09-18 13:52:41
takahiro(John Smith) @superhoge

bwrite( )はブロックデバイスへの書き込み。B_ASYNCフラグが立ってたら、デバイスの処理完了を待たない(非同期書き込み) #readLions

2011-09-18 13:55:01
takahiro(John Smith) @superhoge

非同期書き込みの場合は、エラーチェックをどのタイミングで行うんだっけ? #readLions

2011-09-18 13:55:59
takahiro(John Smith) @superhoge

bawrite( )は非同期書き込み。B_ASYNCフラグを立ててからbwrite( )を呼ぶだけ #readLions

2011-09-18 13:56:32
takahiro(John Smith) @superhoge

bdwrite( )は遅延書き込みを行う。B_DELWRIとB_DONEフラグを立ててbrelse( )で解放。実際の書き込みはupdate( )が呼ばれたときか、getblk( )でav-listから割り当てが行われるときに行われる #readLions

2011-09-18 13:57:46
takahiro(John Smith) @superhoge

遅延書き込みのエラーチェックはどのタイミングで行う? #readLions

2011-09-18 13:58:07
takahiro(John Smith) @superhoge

bflush( )はbufferのflush. 遅延書き込みで、まだ書き込まれていないやつを書き込む。bflush( )は定期的に実行されるupdate( )から呼ばれる #readLions

2011-09-18 13:59:40
1 ・・ 4 次へ