優先 | 分類 | 主題概述 |
---|---|---|
⭐️ 1 | OS 核心原理(OS Basics) | user/kernel mode、system calls、POSIX、CPU scheduling |
⭐️ 2 | 記憶體管理(Memory & Paging) | page fault、mmap、TLB、huge page、NUMA、cache |
⭐️ 3 | 排程與執行緒(Scheduler / Thread) | CFS、runqueue、mutex、futex、spinlock、semaphore、deadlock、atomic |
⭐️ 4 | I/O 模型與非同步處理(I/O & Async) | blocking vs non-blocking、epoll、io_uring、AIO、duplex |
⭐️ 5 | 中斷與非同步任務排程(Interrupt Scheduling) | IRQ、softirq、tasklet、workqueue、interrupt context vs process context |
⭐️ 6 | 執行緒與程序概念(Thread / Process) | pthread、process/thread 差異、Thread Pool、nice 值調度、critical section |
⭐️ 7 | IPC / 系統通訊(IPC & Shared Resources) | pipe、socket、shared memory、mmap、rpmsg jobs(SoC) |
⭐️ 8 | 效能分析工具(Profiling & Tracing) | perf、strace、uftrace、ftrace、microbenchmark、deterministic |
⭐️ 9 | Barrier 與協作排程技巧(Barrier & Coordination) | spin/yield barrier、do_spin、throttle、counter |
⭐️10 | 並行與 SIMD / 硬體加速(Parallelism & SIMD) | SIMD、SIMT、vectorization、混合核心調校(P-core/E-core) |
⭐️11 | 開機流程(Boot & Low-level) | bootrom、bootloader、kernel loading |
⭐️12 | 硬體 hazard(Hardware Pipeline Hazard) | data hazard、control hazard、pipeline stall 概念 |
學習階段 | 建議學習重點 | 工具/觀念搭配 |
---|---|---|
Phase 1 | OS 核心原理、記憶體、排程 | system call trace、strace |
Phase 2 | I/O 模型、執行緒與同步 | perf/uftrace 分析實驗 |
Phase 3 | 中斷 + 非同步任務排程 | kernel log + ftrace |
Phase 4 | IPC、shared memory、rpmsg | mmap 實作、SoC 環境驗證 |
Phase 5 | SIMD、hazard、硬體效能瓶頸分析 | vectorized loop、flamegraph、cache tuning |
Phase 6 | bootloader、platform bring-up | QEMU 或 ARM dev board 練習 |
API
單位定義
系統通訊與共享
並行運算與硬體加速
Thread / Process 管理與同步原語
管理概念
softirq
(interrupt context) vs workqueue
(process context) vs tasklet
(中間層)非同步任務排程
延遲執行任務
atomic context 限制