Lesson 02 — Tiến trình (Process)

Address space, PCB, máy trạng thái, fork() và context switch.

1. Không gian địa chỉ (Address Space)

Click vào từng vùng của address space để xem mô tả chi tiết. Thanh màu phản ánh kích thước tương đối và vị trí thực tế trong bộ nhớ.

Kernel Space 0xFFFF800000000000+ ← Không truy cập được từ user mode Stack ↓ biến cục bộ, return addr, args ~8 MB (default) Tăng xuống dưới [ vùng trống — OS cấp khi cần ] Heap ↑ malloc / new — cấp phát động Tăng lên trên brk / mmap syscall BSS Segment global/static chưa khởi tạo (= 0) int arr[10000]; // global Data Segment global/static đã khởi tạo int x = 42; // global Text Segment (Code) lệnh máy (machine code) read-only + executable Shared giữa các process cùng chạy 1 binary High Low
Click vào vùng nhớ bất kỳ ở trên để xem mô tả chi tiết.

2. Máy trạng thái — Vòng đời Tiến trình

Nhấn các nút để mô phỏng các chuyển trạng thái của tiến trình. Trạng thái hiện tại được tô sáng trong sơ đồ bên dưới.

New fork() Ready chờ CPU Running CPU đang thực thi Waiting chờ I/O / event Terminated zombie / xong admitted schedule preempt I/O wait I/O done exit()
Nhấn ① để bắt đầu mô phỏng vòng đời tiến trình...

3. Mô phỏng fork() — Cây tiến trình

Nhấn fork() để tạo tiến trình con. Mỗi nút hiển thị PID thực tế. Nhấn exec() để thay chương trình trong tiến trình được chọn.

Click vào tiến trình bất kỳ để chọn (cha của fork tiếp theo).
Cây tiến trình sẽ hiển thị ở đây...

4. PCB — Process Control Block

PCB là cấu trúc dữ liệu trong kernel lưu toàn bộ thông tin về một tiến trình. Khi context switch, kernel lưu CPU state vào PCB của process đang dừng và nạp CPU state từ PCB của process tiếp theo.