Definition of Done cho OS/JVM runtime
Không đạt full curriculum nếu chỉ đọc lệnh/tool; phải tái hiện failure, map resource scopes và chứng minh mitigation.
Tự đánh giá
Red flags
Process được định nghĩa chỉ là “program đang chạy”, thread chỉ là “process nhẹ”.
VSZ/RSS/heap/cgroup memory bị dùng thay nhau.
Load average/context switches cao tự động bị coi là root cause.
Tăng thread, stack, FD, PID, CPU/memory limit cùng lúc.
Signal handler làm complex cleanup hoặc kill -9 là shutdown plan.
Virtual threads được coi là unlimited DB/network concurrency.
Checklist kiến thức
- Tôi hiểu task/TGID/TID, fork/clone/exec/wait/zombie.
- Tôi đọc mappings/pages/COW/faults/RSS/PSS/reclaim/OOM.
- Tôi hiểu thread stack/TLS/lifecycle/signals/shared resources.
- Tôi phân tích scheduler states/class/affinity/NUMA/quota/PSI.
- Tôi thiết kế synchronization, futex/locks và IPC/backpressure.
- Tôi quản FD/open description/nonblocking/epoll/limits.
- Tôi dùng procfs/strace/perf/eBPF với scope/overhead/privacy.
- Tôi hiểu namespace/cgroup/PID1/capability/container OOM.
- Tôi map platform/virtual threads và JVM native memory sang OS.
- Tôi debug CPU/memory/hang/FD/PID/shutdown theo hypotheses.
Definition of Done
- Trả lời ít nhất 24/30 câu không mở đáp án.
- Hoàn thành ít nhất 6/8 labs; bắt buộc Labs 01, 02, 04, 06, 07 và 08.
- Có raw evidence cho process lifecycle, COW/memory, scheduling/quota, FD/signals và JVM TID mapping.
- Có một incident postmortem với regression drill và verified action.
- Mọi capture/profile/dump có privacy, overhead và cleanup controls.