Linux順次ロック

  
 

読み取りがブロックされていない、読み取りと書き込みがブロックされていない、書き込みと書き込みのブロック、2つのフィールド1. spinlock_tフィールド、ブロックの書き込み2.シーケンスフィールド、書き込みの変更、読み取りチェック、値など。偶数ではなく、等しい値と古い値を再読み取りします。書き込みは等しくないが古い値は奇数:書き込み時に書き込み側はシーケンス値を読み取りますが、書き込みは等しくなく、古い値は偶数、新しい値は奇数です。ライターが読み取りを開始する前ですが、現在はすでに書き込み中で、古い値は偶数です。新しい値は偶数です。ライターの前では読み取りを開始しますが、ライターは完了し、古い値は奇数になります。新しい値は奇数です。発生しない場合、これは等しくなければならず、古い値は奇数です。新しい値は偶数です。ライターの起動後、読み取りが開始されますが、ライターも書き込み取得ロックを完了します。 Write_seqlock:シーケンス+ 1書き込み解放ロック:write_sequnlock:シーケンス+ 1読み取り構造:unsigned int seq; do {seq = read_seqbegin(& seqlock); /*クリティカルセクション* /} while(read_seqretry(& seqlock、seq) ))要件:ポインタリーダーの重要なセクションコードには適していません副作用

Copyright © Windowsの知識 All Rights Reserved