2022-04-16
日々メモまとめ 4/16
Synchronization Primitive
- Counting Semaphore
- V (Signal) = increment, release
- P (Wait) = decrement, get
- V操作でカウントが0以下なる場合は待ち状態になる
- P操作で0以上になったら、待ち状態の実行単位を解除する
- Binary Semaphore
- 0 or 1
- Mutex
- Lock or Unlock
- 所有権の考え方がある。ロックした実行単位でしか解放できない。
- Critical Section
- 実行単位がMutexをロックした状態で実行するコード区間
- 短い程良い
- Recursive Mutex
- ロックの所有権を0/1ではなく、ロックを行った階数で管理
- SpinLock Mutex
- 待つときにBusy Loopを行うMutex
- Fair Mutex
- 先にロック獲得要求を出した実行単位が先に獲得できることを保証したMutex
- Share-Exclusive Mutex
- 共有資源からの同時読み取りを可能にしたMutex
- Condition Variable
- Mutexで保護された共有資源がある条件を満たすまで待機する機構を助ける同期プリミティブ (例)FIFOが空なので、データが来るまで待つ
詳細: https://zenn.dev/yohhoy/articles/multithreading-toolbox
Writes
- glibc malloc
- quicksort
- LU / front back substitution
- Translation Lookup Buffer & Page Table
たわごと
- 息を吐くようにWindowsでLinuxを使いこなす (2019.04.21)