Linux 核心設計: PREEMPT_RT === :::warning 注意!這是上課筆記 ::: :::info 原始課程在這裡 - [影片 Part 1](https://www.youtube.com/watch?v=15-ZVimSHTs) - [影片 Part 2](https://www.youtube.com/watch?v=xUU0vo9PHh0) - [講義](https://hackmd.io/@sysprog/preempt-rt) Original by [jserv](http://wiki.csie.ncku.edu.tw/User/jserv) ::: --- # Part 1 | Section | Time| Description | | -------- | -------- | -------- | | 1 | [00:00:11](https://youtu.be/15-ZVimSHTs?si=RhSvrB0GEsz19P6v&t=11) | 1. 簡介。<br> 2. 數位馬達。<br> 3. Jserv 2013 轉折年。<br> 4. Real-time Linux: RTLinux.<br> 5. 新墨西哥歷史。 | | 2 | [00:22:27](https://youtu.be/15-ZVimSHTs?si=uNsPipQHJMQfQD7H&t=1347) | 1. POSIX.<br> 2. 經驗分享。| | 3 | [00:36:52](https://youtu.be/15-ZVimSHTs?si=tae5LpAJEKsUAPTr&t=2212) | ==Making Linux do Hard Real-time==<br> 1. hard real time v.s. soft real time.<br> 2. Standard Linux and Real Time. | | 4 | [01:02:30](https://youtu.be/15-ZVimSHTs?si=EXoVKqw_kHXdAjtm&t=3750) | 1. Throughput v.s. Determinism.<br> 2. Realtime Performance.<br> 3. Jitter.<br> 4. Approaches: preempt RT, realtime extension.<br> 5. Linux Scheduler: FIFO, round-robin.<br> 6. Earliest deadline first scheduling. | | 5 | [01:27:18](https://youtu.be/15-ZVimSHTs?si=9RxsuydDVV_lojfX&t=5238) | 1. Linux Scheduler Priority.<br> 2. Interrupt Handling.<br> 3. 複習中斷處理。<br> 4. 巴賽隆納被搶劫經驗分享。 | | 6 | [01:50:05](https://youtu.be/15-ZVimSHTs?si=tiBhwchKBcexuBIH&t=6605) | 1. Context switching.<br> 2. clock interrupt: event-based | | 7 | [02:14:38](https://youtu.be/15-ZVimSHTs?si=9ZlsK9hgNhaX9Qgt&t=8078) | 1. Latency in kernel.<br> 2. latency components.<br> 3. Interrupt Latency.<br> 4. Interrupt handler duration. | | 8 | [02:37:04](https://youtu.be/15-ZVimSHTs?si=bicwuxFv2csU53jq&t=9424) | 1. Kernel Preemption.<br> 2. Preemptive Kernel: preemption points. # Part 2 | Section | Time| Description | | -------- | -------- | -------- | | 1 | [00:00:11](https://youtu.be/xUU0vo9PHh0?si=WXVosOy3dojO0iW5&t=11) | 1. 前情提要。<br> 2. IRIX from SGI.<br> 3. Preemptive kernel 犧牲 throughput. | | 2 | [00:10:30](https://youtu.be/xUU0vo9PHh0?si=2IcQt29cKcJ7KZkx&t=630) | 1. Interrupt handler implementation.<br> 2. Scheduler latency.<br> 3. Scheduler duration.<br> 4. Other latency: demand paging, memory allocation.<br> 5. WCET: worst-case execution time. | | 3 | [00:31:40](https://youtu.be/xUU0vo9PHh0?si=WXW6Hr-x_AoR3s5C&t=1900) | 1. Other latency: system calls, device drivers.<br> 2. priority inversion -> priority inheritance.<br> 3. Interrupt inversion. | | 4 | [00:51:32](https://youtu.be/xUU0vo9PHh0?si=Me7p9yNDTs256gtV&t=3092) | 1. Linux features for real-time.<br> 2. 引入 CFS.<br> 3. Real-time API.<br> 4. Threaded interrupt.<br> 5. RT-mutexes for priority inversion.<br> 6. BKL-free. | | 5 | [01:01:11](https://youtu.be/xUU0vo9PHh0?si=TrcjvZ2JZ1axT1K7&t=3671) | 1. preemption options.<br> 2. Priority inheritance support: futex.<br> 3. High-resolution timers. | | 6 | [01:15:13](https://youtu.be/xUU0vo9PHh0?si=UDqF2HICY6jUQ7Tg&t=4513) | 1. Linux rt-preempt.<br> 2. Complete RT Preemption: spinlock convert to mutex. | | 7 | [01:36:08](https://youtu.be/xUU0vo9PHh0?si=FsJS5utlYI1G4pKT&t=5768) | 1. Threaded interrupt.<br> 2. vanilla kernel: 預設組態的 kernel.<br> 3. Timer frequency.<br> 4. High Resolution timers. | | 8 | [01:50:06](https://youtu.be/xUU0vo9PHh0?si=5SUuXSs0Y7YkhIRi&t=6606) | 1. Use POSIX Timer for periodical task.<br> 2. clock_nanosleep.<br> 3. Process v.s. Thread.<br> 4. Locking pages in RAM. | | 9 | [02:11:30](https://youtu.be/xUU0vo9PHh0?si=ofHdaqWnhmrLHMta&t=7890) | 1. Mutexes.<br> 2. Signals.<br> 3. Benchmark.<br> 4. Response time v.s. Throughput. | | 10 | [02:18:09](https://youtu.be/xUU0vo9PHh0?si=0YJZK157OIR6jDe3&t=8289) | 1. Linux hard real-time extensions.<br> 2. 王佑中 博士:<br>***寫一個 OS 是多麼美好的事,在有限的生命中千萬不要遺漏了它。***.<br> 3. Xenomai: 王牌開發者過世了。<br> 4. Conclusion. | | 11 | [02:30:57](https://youtu.be/xUU0vo9PHh0?si=Y0bv_kc1xGWzuKli&t=9057) | 1. Preemptible Kernel.<br> 2. 論文:The real-time linux kernel: A survey on Preempt_RT.<br> 3. “原有的問題”。<br> 4. "PREEMPT_RT 的手法"。<br> 5. 回顧 Linux Foundation.<br> 6. Earliest Deadline First scheduler. |
×
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