Linux 核心設計: 多核處理器和 spinlock === :::warning 注意!這是上課筆記 ::: :::info 原始課程在這裡 - [影片](https://www.youtube.com/watch?v=aYdQ4AtNVro) - [講義](https://hackmd.io/@sysprog/multicore-locks?type=view) Original by [jserv](http://wiki.csie.ncku.edu.tw/User/jserv) ::: --- | Section | Time| Description | | -------- | -------- | -------- | | 1 | [00:00:11](https://youtu.be/aYdQ4AtNVro?si=zh0VRyIxG-gJQQUK&t=11) | 1. 簡介。<br> 2. 議程之前的自我評估。<br> 3. recap “淺談同步機制”。 | | 2 | [00:14:!5](https://youtu.be/aYdQ4AtNVro?si=chEvsa5ZXq7jLKoz&t=855) | 1. semaphore and mutext 的差異。<br> 2. Priority Inversion on Mars.<br> 3. 面試小技巧。| | 3 | [00:37:45](https://youtu.be/aYdQ4AtNVro?si=PQw3K7YFsTpXmEJa&t=2265) | ==Concurrent Programming==<br> 1. Linux thread.<br> 2. Thread-based Server Execution Model.<br> 3. race data 實驗。<br> Event-based. | | 4 | [00:54:13](https://youtu.be/aYdQ4AtNVro?si=J9llDn1X_kNDh0Gu&t=3253) | ==Synchronization: Advanced==<br> 1. Critical sections.<br> 2. race elimination.<br> 3. Deadlock Visualized in Progress graph.<br> 4. semaphore 和 spinlock 是不同層次。<br> 5. spinlock 確保 atomics.<br> 6. semaphore 可以允許排程。 | | 5 | [01:16:00](https://youtu.be/aYdQ4AtNVro?si=SCMtU2lbG465rv7C&t=4560) | ==Thread-Level Parallelism==<br> 1. semaphore and mutex performance.<br> 2. False sharing. | | 6 | [01:26:10](https://youtu.be/aYdQ4AtNVro?si=KiI_T53emkKwoOos&t=5170) | 1. 核心同步機制從 spinlock 開始。<br> 2. interrupt disdabled.<br> 3. Big Kernel Lock(BKL)已被移除。| | 7 | [01:36:20](https://youtu.be/aYdQ4AtNVro?si=TdhAllAUUzvxdxLl&t=5780) | 1. Atomic Instructions.<br> 2. Waiting strategies.<br> 3. Why 2 loop? 減少 cache line 的成本。<br> 4. cache line bouncing.<br> 5. spinlock.<br> 6. Test and Set Lock. | | 8 | [01:59:45](https://youtu.be/aYdQ4AtNVro?si=VEKHr4D59jSu5iJP&t=7185) | 1. Linux spinlocks.<br> 2. ==Spin Locks & Other Forms of Mutual Exclusion.==<br> 3. local thread 意味綁定在某core.<br> 4. kernel object.<br> 5. ==Representation of spon lock object.== | | 9 | [02:22:45](https://youtu.be/aYdQ4AtNVro?si=uhFPQL1xyvoKHAZ7&t=8565) | ==Preemptable ticket spinlocks==| | 10 | [02:34:50](https://youtu.be/aYdQ4AtNVro?si=GCb9mDnNmFt9wB_O&t=9290) | ==從 CPU cache coherence 談 Linux spinlock 可擴展能力議題==<br> 1. ticket spinlock. | | 11 | [02:46:40](https://youtu.be/aYdQ4AtNVro?si=-WZ1rZX9cDCjAYFY&t=10000) | ==Symmetric Multi-Processing== : SMP 的衝擊。| | 12 | [03:00:45](https://youtu.be/aYdQ4AtNVro?si=ymcHqBLKww0K24K5&t=10845) | ==Basic x86 interrupts==<br> 1. sti: enable interrupt.<br> 2. cli: mask interrupt.<br>==Symmetric Multi-Processing==<br> 1. Process and Interrupt Context Synchronization. | | 13 | [03:14:20](https://youtu.be/aYdQ4AtNVro?si=eA0IjvwOOWOoH7ql&t=11660) | 1. kernel preemption.<br> 2. raw spin lock.<br> 3. Livelock.<br> 4. Avoid livelock: disable interrupt.
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up