Hệ điều hành & Tiến trình
Course tier 3 của track Máy tính cho Lập trình viên. Hiểu ranh giới kernel/user mode và system call (chương trình xin OS làm việc thế nào), vòng đời tiến trình từ fork/exec tới exit/zombie, signal, thread vs process, context switch tốn gì, scheduler chia CPU ra sao (time slice, priority, CPU-bound vs I/O-bound), và các bài toán phối hợp: race condition, mutex, deadlock, IPC. Language-agnostic với công cụ Linux thật (strace, ps, pstree) — nền tảng để debug service treo, process zombie và chọn đúng số thread.
Giảng viên
OLHub Team28bài đã sẵn sàng · Đọc kỹ, không xem video
4 module
Học theo từng phần, không bị nhồi
Nâng cao
Cho dev đã có kinh nghiệm
28 bài
Text-first — đọc kỹ, không xem video
~5.2 giờ
Tự nhịp, học theo tốc độ của bạn
Bạn sẽ học được gì
Sau khoá học, bạn sẽ:
Explain ranh giới kernel/user mode và trace đường đi một system call từ chương trình vào kernel rồi quay về
Trace vòng đời tiến trình qua fork/exec/wait/exit; diagnose zombie, orphan và signal bằng ps, pstree, strace
Compare thread và process; explain chi phí thật của context switch (register, cache, TLB)
Explain scheduler preemptive điều phối CPU: time slice, priority, và predict hành vi workload CPU-bound vs I/O-bound
Diagnose race condition và deadlock; choose cơ chế đồng bộ (atomic, mutex) và IPC (pipe, shared memory, socket) phù hợp
Kỹ năng
Bạn sẽ thành thạo
Chương trình
Nội dung khoá học
4 module · 28 bài. Mỗi bài 18-25 phút đọc kỹ — không xem video, không hype.
01
Kernel & System Call
7 bài · ~75 phút
- 01Tổng quan module — Kernel & System Call5p
- 02Kernel mode vs user mode — ranh giới bảo vệ phần cứng12p
- 03System call — cách chương trình xin kernel làm việc13p
- 04Interrupt, trap & exception — ba con đường vào kernel12p
- 05Đọc syscall bằng strace — nhìn chương trình gọi kernel12p
- 06Mini-challenge — mổ xẻ hai lệnh (cat vs curl) bằng strace15p
- 07Tổng kết module — Kernel & System Call6p
02
Tiến trình — sinh ra, sống, chết
7 bài · ~74 phút
- 01Tổng quan module Tiến trình — vòng đời, signal, zombie5p
- 02Tiến trình & PCB — chương trình đang chạy khác gì file đĩa12p
- 03fork, exec, wait — trace vòng đời một tiến trình Unix13p
- 04Zombie & orphan — khi tiến trình chết mà không ai thu xác11p
- 05Signal — SIGTERM, SIGKILL và Ctrl+C thật sự làm gì12p
- 06Mini-challenge — mổ xẻ cây tiến trình bằng ps, pstree, kill15p
- 07Tổng kết module Tiến trình — cheat sheet & self-assessment6p
03
Thread & Lập lịch CPU
7 bài · ~80 phút
- 01Tổng quan module — Thread & Lập lịch CPU5p
- 02Thread vs process — chia sẻ gì, riêng gì, chi phí tạo13p
- 03Ready, running, blocked — và giá của context switch13p
- 04Scheduler CPU — timer interrupt, time slice & CFS13p
- 05CPU-bound vs I/O-bound — chọn số thread pool thế nào12p
- 06Mini-challenge — bao nhiêu thread là đủ?18p
- 07Tổng kết module — Thread & Lập lịch CPU6p
04
Đồng bộ & Phối hợp
7 bài · ~80 phút
- 01Tổng quan module — Đồng bộ & Phối hợp6p
- 02Race condition — vì sao count++ sai khi hai luồng đua nhau12p
- 03Mutex & atomic (CAS) — bảo vệ critical section khỏi race13p
- 04Deadlock — bốn điều kiện Coffman và cách phá vòng chờ13p
- 05IPC — pipe, shared memory và socket giữa hai tiến trình12p
- 06Mini-challenge — săn race và deadlock18p
- 07Tổng kết module — Đồng bộ & Phối hợp6p
Giảng viên
Ai đứng sau khoá này
OLHub Team
Backend engineers
Backend engineers với kinh nghiệm thực tế trên Java/Spring, PostgreSQL, distributed systems. Tự build và maintain platform này, viết toàn bộ nội dung khoá học theo triết lý “hiểu bản chất, không học vẹt”.
Xem hồ sơ team →Sẵn sàng bắt đầu?
Học miễn phí, không cần thẻ, không thời hạn. Chỉ cần bạn ngồi xuống đọc kỹ.