Linux kernel locking - 0 - 同步問題
繼之前 scheduling while atomic 之後,
最近繼續研究, 在 kernel hacking 這邊看到這篇
https://www.kernel.org/doc/html/latest/kernel-hacking/locking.html
想想再來紀錄一下最近的心得.
先從同步問題介紹起:
https://github.com/neojou/new_ldd/blob/master/scheduling/sched_atomic0.c
這兩個 thread 都會存取 sum 這個變數.
可以發現執行完後, sum 值並非 0.
處理sum 運算的是一個 critical section.
1. critical section
(1) no conflict: 一次只能讓一個 thread 進入
(2) no deadlock: 有空位時, 讓想進入的可以進入
(3) no starvation: 等待進入是 有限時間
最近繼續研究, 在 kernel hacking 這邊看到這篇
https://www.kernel.org/doc/html/latest/kernel-hacking/locking.html
想想再來紀錄一下最近的心得.
先從同步問題介紹起:
https://github.com/neojou/new_ldd/blob/master/scheduling/sched_atomic0.c
這兩個 thread 都會存取 sum 這個變數.
可以發現執行完後, sum 值並非 0.
處理sum 運算的是一個 critical section.
1. critical section
(1) no conflict: 一次只能讓一個 thread 進入
(2) no deadlock: 有空位時, 讓想進入的可以進入
(3) no starvation: 等待進入是 有限時間
留言
張貼留言