I/O, Lưu trữ & Tài nguyên
Course tier 4 đóng track Máy tính cho Lập trình viên. Dữ liệu nằm ở đâu khi tắt điện (HDD, SSD, NVMe, filesystem, page cache, fsync), đi đường nào để vào tới biến trong chương trình (MMIO, DMA, read() xuyên tầng, epoll, zero-copy, GPU), và tài nguyên máy được đo cùng giới hạn ra sao (top/htop, RSS vs VSZ, iostat, cgroups, OOM). Language-agnostic với công cụ Linux thật — nền để chẩn đoán một máy chậm bằng bằng chứng thay vì đoán.

Giảng viên
OLHub Team26 bài đã sẵn sàng · Đọc kỹ, không xem video
3 module
Học theo từng phần, không bị nhồi
Nâng cao
Cho dev đã có kinh nghiệm
26 bài
Text-first — đọc kỹ, không xem video
~5.3 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 một byte đi từ mặt đĩa tới biến trong chương trình qua những tầng nào — filesystem, page cache, block layer, driver, DMA — và mỗi tầng thêm bao nhiêu độ trễ
Choose kiểu lưu trữ và chế độ ghi (buffered, fsync, O_DIRECT; block, file, object) theo yêu cầu độ bền và độ trễ
Predict vì sao thêm thread không cứu được workload nghẽn I/O, và khi nào epoll hay zero-copy mới thật sự đổi cục diện
Diagnose một máy chậm là nghẽn CPU, RAM hay I/O bằng bằng chứng từ top, htop, iostat và /proc
Explain container bị chặn tài nguyên bằng cgroups thế nào và đọc được một lần OOM kill từ dmesg
Chương trình
Nội dung khoá học
3 module sẵn sàng · 26 bài. Mỗi bài 18-25 phút đọc kỹ — không xem video, không hype.
01
Lưu trữ & Filesystem
9 bài · ~108 phút
- 01Tổng quan module — Lưu trữ & Filesystem5p
- 02HDD, SSD, NVMe — ba cơ chế, ba thang độ trễ13p
- 03Tuần tự vs ngẫu nhiên — cùng 1 GB, chênh trăm lần12p
- 04Filesystem — từ tên file tới khối dữ liệu trên đĩa13p
- 05Page cache — vì sao lần đọc thứ hai nhanh gấp trăm lần14p
- 06fsync và độ bền — write() trả về chưa chắc đã ghi14p
- 07Lưu trữ mạng — block, file hay object?13p
- 08Mini-challenge — đo ổ đĩa của chính bạn18p
- 09Tổng kết module — Lưu trữ & Filesystem6p
02
Đường đi I/O & GPU
9 bài · ~108 phút
- 01Tổng quan module — Đường đi I/O & GPU5p
- 02Thiết bị nói chuyện với CPU — MMIO, thanh ghi, PCIe13p
- 03Polling, interrupt và DMA — ai tốn CPU khi chép dữ liệu13p
- 04Hành trình một lệnh read() — từ ứng dụng xuống mặt đĩa15p
- 05Chờ I/O thế nào — blocking, non-blocking và epoll15p
- 06Zero-copy — cắt bớt bản sao trên đường đi13p
- 07GPU về mặt kiến trúc — SIMT, băng thông, throughput14p
- 08Host và device — vì sao chép dữ liệu đắt hơn tính14p
- 09Tổng kết module — Đường đi I/O & GPU6p
03
Tài nguyên & Đo lường
8 bài · ~100 phút
- 01Tổng quan module — Tài nguyên & Đo lường5p
- 02top, htop và load average — đọc cho đúng13p
- 03RSS, VSZ — một tiến trình thật sự chiếm bao nhiêu RAM13p
- 04Đo I/O bằng iostat — và vì sao %util nói dối14p
- 05cgroups — trần CPU, RAM và I/O của một container13p
- 06OOM kill và ulimit — khi kernel ra tay14p
- 07Mini-challenge — máy chậm, nghẽn ở đâu?20p
- 08Tổng kết course & track — Máy tính cho Lập trình viên8p
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 →Gửi khoá này cho bạn học cùng?
Copy link đã gắn nguồn — dán group, chat, hoặc LinkedIn.
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ỹ.